📄 mips-opc.c
字号:
{"rem", "z,s,t", 0x0000001a, 0xfc00ffff, RD_s|RD_t|WR_HILO, I1 },{"rem", "d,v,t", 0, (int) M_REM_3, INSN_MACRO, I1 },{"rem", "d,v,I", 0, (int) M_REM_3I, INSN_MACRO, I1 },{"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HILO, I1 },{"remu", "d,v,t", 0, (int) M_REMU_3, INSN_MACRO, I1 },{"remu", "d,v,I", 0, (int) M_REMU_3I, INSN_MACRO, I1 },{"rfe", "", 0x42000010, 0xffffffff, 0, I1|T3 },{"rol", "d,v,t", 0, (int) M_ROL, INSN_MACRO, I1 },{"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, I1 },{"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, I1 },{"ror", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, I1 },{"round.l.d", "D,S", 0x46200008, 0xffff003f, WR_D|RD_S|FP_D, I3 },{"round.l.s", "D,S", 0x46000008, 0xffff003f, WR_D|RD_S|FP_S, I3 },{"round.w.d", "D,S", 0x4620000c, 0xffff003f, WR_D|RD_S|FP_D, I2 },{"round.w.s", "D,S", 0x4600000c, 0xffff003f, WR_D|RD_S|FP_S, I2 },{"rsqrt.d", "D,S", 0x46200016, 0xffff003f, WR_D|RD_S|FP_D, I4 },{"rsqrt.s", "D,S", 0x46000016, 0xffff003f, WR_D|RD_S|FP_S, I4 },{"sb", "t,o(b)", 0xa0000000, 0xfc000000, SM|RD_t|RD_b, I1 },{"sb", "t,A(b)", 0, (int) M_SB_AB, INSN_MACRO, I1 },{"sc", "t,o(b)", 0xe0000000, 0xfc000000, SM|RD_t|WR_t|RD_b, I2 },{"sc", "t,A(b)", 0, (int) M_SC_AB, INSN_MACRO, I2 },{"scd", "t,o(b)", 0xf0000000, 0xfc000000, SM|RD_t|WR_t|RD_b, I3 },{"scd", "t,A(b)", 0, (int) M_SCD_AB, INSN_MACRO, I3 },{"sd", "t,o(b)", 0xfc000000, 0xfc000000, SM|RD_t|RD_b, I3 },{"sd", "t,o(b)", 0, (int) M_SD_OB, INSN_MACRO, I1 },{"sd", "t,A(b)", 0, (int) M_SD_AB, INSN_MACRO, I1 },{"sdbbp", "", 0x0000000e, 0xffffffff, TRAP, G2 },{"sdbbp", "c", 0x0000000e, 0xfc00ffff, TRAP, G2 },{"sdbbp", "c,q", 0x0000000e, 0xfc00003f, TRAP, G2 },{"sdbbp", "", 0x7000003f, 0xffffffff, TRAP, I32 },{"sdbbp", "B", 0x7000003f, 0xfc00003f, TRAP, I32 },{"sdc1", "T,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },{"sdc1", "E,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },{"sdc1", "T,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, I2 },{"sdc1", "E,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, I2 },{"sdc2", "E,o(b)", 0xf8000000, 0xfc000000, SM|RD_C2|RD_b, I2 },{"sdc2", "E,A(b)", 0, (int) M_SDC2_AB, INSN_MACRO, I2 },{"sdc3", "E,o(b)", 0xfc000000, 0xfc000000, SM|RD_C3|RD_b, I2 },{"sdc3", "E,A(b)", 0, (int) M_SDC3_AB, INSN_MACRO, I2 },{"s.d", "T,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },{"s.d", "T,o(b)", 0, (int) M_S_DOB, INSN_MACRO, I1 },{"s.d", "T,A(b)", 0, (int) M_S_DAB, INSN_MACRO, I1 },{"sdl", "t,o(b)", 0xb0000000, 0xfc000000, SM|RD_t|RD_b, I3 },{"sdl", "t,A(b)", 0, (int) M_SDL_AB, INSN_MACRO, I3 },{"sdr", "t,o(b)", 0xb4000000, 0xfc000000, SM|RD_t|RD_b, I3 },{"sdr", "t,A(b)", 0, (int) M_SDR_AB, INSN_MACRO, I3 },{"sdxc1", "S,t(b)", 0x4c000009, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I4 },{"selsl", "d,v,t", 0x00000005, 0xfc0007ff, WR_d|RD_s|RD_t, L1 },{"selsr", "d,v,t", 0x00000001, 0xfc0007ff, WR_d|RD_s|RD_t, L1 },{"seq", "d,v,t", 0, (int) M_SEQ, INSN_MACRO, I1 },{"seq", "d,v,I", 0, (int) M_SEQ_I, INSN_MACRO, I1 },{"sge", "d,v,t", 0, (int) M_SGE, INSN_MACRO, I1 },{"sge", "d,v,I", 0, (int) M_SGE_I, INSN_MACRO, I1 },{"sgeu", "d,v,t", 0, (int) M_SGEU, INSN_MACRO, I1 },{"sgeu", "d,v,I", 0, (int) M_SGEU_I, INSN_MACRO, I1 },{"sgt", "d,v,t", 0, (int) M_SGT, INSN_MACRO, I1 },{"sgt", "d,v,I", 0, (int) M_SGT_I, INSN_MACRO, I1 },{"sgtu", "d,v,t", 0, (int) M_SGTU, INSN_MACRO, I1 },{"sgtu", "d,v,I", 0, (int) M_SGTU_I, INSN_MACRO, I1 },{"sh", "t,o(b)", 0xa4000000, 0xfc000000, SM|RD_t|RD_b, I1 },{"sh", "t,A(b)", 0, (int) M_SH_AB, INSN_MACRO, I1 },{"sle", "d,v,t", 0, (int) M_SLE, INSN_MACRO, I1 },{"sle", "d,v,I", 0, (int) M_SLE_I, INSN_MACRO, I1 },{"sleu", "d,v,t", 0, (int) M_SLEU, INSN_MACRO, I1 },{"sleu", "d,v,I", 0, (int) M_SLEU_I, INSN_MACRO, I1 },{"sllv", "d,t,s", 0x00000004, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },{"sll", "d,w,s", 0x00000004, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* sllv */{"sll", "d,w,<", 0x00000000, 0xffe0003f, WR_d|RD_t, I1 },{"slt", "d,v,t", 0x0000002a, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },{"slt", "d,v,I", 0, (int) M_SLT_I, INSN_MACRO, I1 },{"slti", "t,r,j", 0x28000000, 0xfc000000, WR_t|RD_s, I1 },{"sltiu", "t,r,j", 0x2c000000, 0xfc000000, WR_t|RD_s, I1 },{"sltu", "d,v,t", 0x0000002b, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },{"sltu", "d,v,I", 0, (int) M_SLTU_I, INSN_MACRO, I1 },{"sne", "d,v,t", 0, (int) M_SNE, INSN_MACRO, I1 },{"sne", "d,v,I", 0, (int) M_SNE_I, INSN_MACRO, I1 },{"sqrt.d", "D,S", 0x46200004, 0xffff003f, WR_D|RD_S|FP_D, I2 },{"sqrt.s", "D,S", 0x46000004, 0xffff003f, WR_D|RD_S|FP_S, I2 },{"srav", "d,t,s", 0x00000007, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },{"sra", "d,w,s", 0x00000007, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* srav */{"sra", "d,w,<", 0x00000003, 0xffe0003f, WR_d|RD_t, I1 },{"srlv", "d,t,s", 0x00000006, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },{"srl", "d,w,s", 0x00000006, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* srlv */{"srl", "d,w,<", 0x00000002, 0xffe0003f, WR_d|RD_t, I1 },/* ssnop is at the start of the table. */{"standby", "", 0x42000021, 0xffffffff, 0, V1 },{"sub", "d,v,t", 0x00000022, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },{"sub", "d,v,I", 0, (int) M_SUB_I, INSN_MACRO, I1 },{"sub.d", "D,V,T", 0x46200001, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 }, {"sub.s", "D,V,T", 0x46000001, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 },{"sub.ps", "D,V,T", 0x46c00001, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I5 },{"subu", "d,v,t", 0x00000023, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },{"subu", "d,v,I", 0, (int) M_SUBU_I, INSN_MACRO, I1 },{"suspend", "", 0x42000022, 0xffffffff, 0, V1 },{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I5 },{"sw", "t,o(b)", 0xac000000, 0xfc000000, SM|RD_t|RD_b, I1 },{"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, I1 },{"swc0", "E,o(b)", 0xe0000000, 0xfc000000, SM|RD_C0|RD_b, I1 },{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, I1 },{"swc1", "T,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 },{"swc1", "E,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 },{"swc1", "T,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },{"swc1", "E,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },{"s.s", "T,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 }, /* swc1 */{"s.s", "T,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },{"swc2", "E,o(b)", 0xe8000000, 0xfc000000, SM|RD_C2|RD_b, I1 },{"swc2", "E,A(b)", 0, (int) M_SWC2_AB, INSN_MACRO, I1 },{"swc3", "E,o(b)", 0xec000000, 0xfc000000, SM|RD_C3|RD_b, I1 },{"swc3", "E,A(b)", 0, (int) M_SWC3_AB, INSN_MACRO, I1 },{"swl", "t,o(b)", 0xa8000000, 0xfc000000, SM|RD_t|RD_b, I1 },{"swl", "t,A(b)", 0, (int) M_SWL_AB, INSN_MACRO, I1 },{"scache", "t,o(b)", 0xa8000000, 0xfc000000, RD_t|RD_b, I2 }, /* same */{"scache", "t,A(b)", 0, (int) M_SWL_AB, INSN_MACRO, I2 }, /* as swl */{"swr", "t,o(b)", 0xb8000000, 0xfc000000, SM|RD_t|RD_b, I1 },{"swr", "t,A(b)", 0, (int) M_SWR_AB, INSN_MACRO, I1 },{"invalidate", "t,o(b)",0xb8000000, 0xfc000000, RD_t|RD_b, I2 }, /* same */{"invalidate", "t,A(b)",0, (int) M_SWR_AB, INSN_MACRO, I2 }, /* as swr */{"swxc1", "S,t(b)", 0x4c000008, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I4 },{"sync", "", 0x0000000f, 0xffffffff, INSN_SYNC, I2|G1 },{"sync.p", "", 0x0000040f, 0xffffffff, INSN_SYNC, I2 },{"sync.l", "", 0x0000000f, 0xffffffff, INSN_SYNC, I2 },{"syscall", "", 0x0000000c, 0xffffffff, TRAP, I1 },{"syscall", "B", 0x0000000c, 0xfc00003f, TRAP, I1 },{"teqi", "s,j", 0x040c0000, 0xfc1f0000, RD_s|TRAP, I2 },{"teq", "s,t", 0x00000034, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"teq", "s,t,q", 0x00000034, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"teq", "s,j", 0x040c0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* teqi */{"teq", "s,I", 0, (int) M_TEQ_I, INSN_MACRO, I2 },{"tgei", "s,j", 0x04080000, 0xfc1f0000, RD_s|TRAP, I2 },{"tge", "s,t", 0x00000030, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"tge", "s,t,q", 0x00000030, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"tge", "s,j", 0x04080000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tgei */{"tge", "s,I", 0, (int) M_TGE_I, INSN_MACRO, I2 },{"tgeiu", "s,j", 0x04090000, 0xfc1f0000, RD_s|TRAP, I2 },{"tgeu", "s,t", 0x00000031, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"tgeu", "s,t,q", 0x00000031, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"tgeu", "s,j", 0x04090000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tgeiu */{"tgeu", "s,I", 0, (int) M_TGEU_I, INSN_MACRO, I2 },{"tlbp", "", 0x42000008, 0xffffffff, INSN_TLB, I1 },{"tlbr", "", 0x42000001, 0xffffffff, INSN_TLB, I1 },{"tlbwi", "", 0x42000002, 0xffffffff, INSN_TLB, I1 },{"tlbwr", "", 0x42000006, 0xffffffff, INSN_TLB, I1 },{"tlti", "s,j", 0x040a0000, 0xfc1f0000, RD_s|TRAP, I2 },{"tlt", "s,t", 0x00000032, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"tlt", "s,t,q", 0x00000032, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"tlt", "s,j", 0x040a0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tlti */{"tlt", "s,I", 0, (int) M_TLT_I, INSN_MACRO, I2 },{"tltiu", "s,j", 0x040b0000, 0xfc1f0000, RD_s|TRAP, I2 },{"tltu", "s,t", 0x00000033, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"tltu", "s,t,q", 0x00000033, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"tltu", "s,j", 0x040b0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tltiu */{"tltu", "s,I", 0, (int) M_TLTU_I, INSN_MACRO, I2 },{"tnei", "s,j", 0x040e0000, 0xfc1f0000, RD_s|TRAP, I2 },{"tne", "s,t", 0x00000036, 0xfc00ffff, RD_s|RD_t|TRAP, I2 },{"tne", "s,t,q", 0x00000036, 0xfc00003f, RD_s|RD_t|TRAP, I2 },{"tne", "s,j", 0x040e0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tnei */{"tne", "s,I", 0, (int) M_TNE_I, INSN_MACRO, I2 },{"trunc.l.d", "D,S", 0x46200009, 0xffff003f, WR_D|RD_S|FP_D, I3 },{"trunc.l.s", "D,S", 0x46000009, 0xffff003f, WR_D|RD_S|FP_S, I3 },{"trunc.w.d", "D,S", 0x4620000d, 0xffff003f, WR_D|RD_S|FP_D, I2 },{"trunc.w.d", "D,S,x", 0x4620000d, 0xffff003f, WR_D|RD_S|FP_D, I2 },{"trunc.w.d", "D,S,t", 0, (int) M_TRUNCWD, INSN_MACRO, I1 },{"trunc.w.s", "D,S", 0x4600000d, 0xffff003f, WR_D|RD_S|FP_S, I2 },{"trunc.w.s", "D,S,x", 0x4600000d, 0xffff003f, WR_D|RD_S|FP_S, I2 },{"trunc.w.s", "D,S,t", 0, (int) M_TRUNCWS, INSN_MACRO, I1 },{"uld", "t,o(b)", 0, (int) M_ULD, INSN_MACRO, I3 },{"uld", "t,A(b)", 0, (int) M_ULD_A, INSN_MACRO, I3 },{"ulh", "t,o(b)", 0, (int) M_ULH, INSN_MACRO, I1 },{"ulh", "t,A(b)", 0, (int) M_ULH_A, INSN_MACRO, I1 },{"ulhu", "t,o(b)", 0, (int) M_ULHU, INSN_MACRO, I1 },{"ulhu", "t,A(b)", 0, (int) M_ULHU_A, INSN_MACRO, I1 },{"ulw", "t,o(b)", 0, (int) M_ULW, INSN_MACRO, I1 },{"ulw", "t,A(b)", 0, (int) M_ULW_A, INSN_MACRO, I1 },{"usd", "t,o(b)", 0, (int) M_USD, INSN_MACRO, I3 },{"usd", "t,A(b)", 0, (int) M_USD_A, INSN_MACRO, I3 },{"ush", "t,o(b)", 0, (int) M_USH, INSN_MACRO, I1 },{"ush", "t,A(b)", 0, (int) M_USH_A, INSN_MACRO, I1 },{"usw", "t,o(b)", 0, (int) M_USW, INSN_MACRO, I1 },{"usw", "t,A(b)", 0, (int) M_USW_A, INSN_MACRO, I1 },{"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },{"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, I1 },{"xori", "t,r,i", 0x38000000, 0xfc000000, WR_t|RD_s, I1 },{"wait", "", 0x42000020, 0xffffffff, TRAP, I3|I32 },{"wait", "J", 0x42000020, 0xfe00003f, TRAP, I32 },{"waiti", "", 0x42000020, 0xffffffff, TRAP, L1 },{"wb", "o(b)", 0xbc040000, 0xfc1f0000, SM|RD_b, L1 },/* No hazard protection on coprocessor instructions--they shouldn't change the state of the processor and if they do it's up to the user to put in nops as necessary. These are at the end so that the disasembler recognizes more specific versions first. */{"c0", "C", 0x42000000, 0xfe000000, 0, I1 },{"c1", "C", 0x46000000, 0xfe000000, 0, I1 },{"c2", "C", 0x4a000000, 0xfe000000, 0, I1 },{"c3", "C", 0x4e000000, 0xfe000000, 0, I1 },{"cop0", "C", 0, (int) M_COP0, INSN_MACRO, I1 },{"cop1", "C", 0, (int) M_COP1, INSN_MACRO, I1 },{"cop2", "C", 0, (int) M_COP2, INSN_MACRO, I1 },{"cop3", "C", 0, (int) M_COP3, INSN_MACRO, I1 }, /* Conflicts with the 4650's "mul" instruction. Nobody's using the 4010 any more, so move this insn out of the way. If the object format gave us more info, we could do this right. */{"addciu", "t,r,j", 0x70000000, 0xfc000000, WR_t|RD_s, L1 },};#define MIPS_NUM_OPCODES \ ((sizeof mips_builtin_opcodes) / (sizeof (mips_builtin_opcodes[0])))const int bfd_mips_num_builtin_opcodes = MIPS_NUM_OPCODES;/* const removed from the following to allow for dynamic extensions to the * built-in instruction set. */struct mips_opcode *mips_opcodes = (struct mips_opcode *) mips_builtin_opcodes;int bfd_mips_num_opcodes = MIPS_NUM_OPCODES;#undef MIPS_NUM_OPCODES
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -