1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
"add" , RTYPE {txt="ADD" ; op=MIPSROpADD };
"addu" , RTYPE {txt="ADDU" ; op=MIPSROpADDU };
"and" , RTYPE {txt="AND" ; op=MIPSROpAND };
"dadd" , RTYPE {txt="DADD" ; op=MIPSROpDADD };
"daddu" , RTYPE {txt="DADDU" ; op=MIPSROpDADDU };
"dsub" , RTYPE {txt="DSUB" ; op=MIPSROpDSUB };
"dsubu" , RTYPE {txt="DSUBU" ; op=MIPSROpDSUBU };
"movn" , RTYPE {txt="MOVN" ; op=MIPSROpMOVN };
"movz" , RTYPE {txt="MOVZ" ; op=MIPSROpMOVZ };
"mul" , RTYPE {txt="MUL" ; op=MIPSROpMUL };
"nor" , RTYPE {txt="NOR" ; op=MIPSROpNOR };
"or" , RTYPE {txt="OR" ; op=MIPSROpOR };
"slt" , RTYPE {txt="SLT" ; op=MIPSROpSLT };
"sltu" , RTYPE {txt="SLTU" ; op=MIPSROpSLTU };
"sub" , RTYPE {txt="SUB" ; op=MIPSROpSUB };
"subu" , RTYPE {txt="SUBU" ; op=MIPSROpSUBU };
"xor" , RTYPE {txt="XOR" ; op=MIPSROpXOR };
"addi" , ITYPE {txt="ADDI" ; op=MIPSIOpADDI };
"addiu" , ITYPE {txt="ADDIU" ; op=MIPSIOpADDIU };
"andi" , ITYPE {txt="ANDI" ; op=MIPSIOpANDI };
"daddi" , ITYPE {txt="DADDI" ; op=MIPSIOpDADDI };
"daddiu", ITYPE {txt="DADDIU"; op=MIPSIOpDADDIU };
"ori" , ITYPE {txt="ORI" ; op=MIPSIOpORI };
"slti" , ITYPE {txt="SLTI" ; op=MIPSIOpSLTI };
"sltiu" , ITYPE {txt="SLTIU" ; op=MIPSIOpSLTIU };
"xori" , ITYPE {txt="XORI" ; op=MIPSIOpXORI };
"dsll" , SHIFTI {txt="DSLL" ; op=MIPSDSLL };
"dsll32" , SHIFTI {txt="DSLL32" ; op=MIPSDSLL32 };
"dsra" , SHIFTI {txt="DSRA" ; op=MIPSDSRA };
"dsra32" , SHIFTI {txt="DSRA32" ; op=MIPSDSRA32 };
"dsrl" , SHIFTI {txt="DSRL" ; op=MIPSDSRL };
"dsrl32" , SHIFTI {txt="DSRL32" ; op=MIPSDSRL32 };
"sll" , SHIFTI {txt="SLL" ; op=MIPSSLL };
"sra" , SHIFTI {txt="SRA" ; op=MIPSSRA };
"srl" , SHIFTI {txt="SRL" ; op=MIPSSRL };
"dsllv", SHIFTV {txt="DSLLV" ; op=MIPSDSLLV };
"dsrav", SHIFTV {txt="DSRAV" ; op=MIPSDSRAV };
"dsrlv", SHIFTV {txt="DSRLV" ; op=MIPSDSRLV };
"sllv" , SHIFTV {txt="SLLV" ; op=MIPSSLLV };
"srav" , SHIFTV {txt="SRAV" ; op=MIPSSRAV };
"srlv" , SHIFTV {txt="SRLV" ; op=MIPSSRLV };
"ddiv" , MULDIV {txt="DDIV" ; op=MIPSDDIV };
"ddivu" , MULDIV {txt="DDIVU" ; op=MIPSDDIVU };
"div" , MULDIV {txt="DIV" ; op=MIPSDIV };
"divu" , MULDIV {txt="DIVU" ; op=MIPSDIVU };
"dmult" , MULDIV {txt="DMULT" ; op=MIPSDMULT };
"dmultu", MULDIV {txt="DMULTU"; op=MIPSDMULTU };
"madd" , MULDIV {txt="MADD" ; op=MIPSMADD };
"maddu" , MULDIV {txt="MADDU" ; op=MIPSMADDU };
"msub" , MULDIV {txt="MSUB" ; op=MIPSMSUB };
"msubu" , MULDIV {txt="MSUBU" ; op=MIPSMSUBU };
"mult" , MULDIV {txt="MULT" ; op=MIPSMULT };
"multu" , MULDIV {txt="MULTU" ; op=MIPSMULTU };
"mfhi" , MFHILO {txt="MFHI" ; op=MIPSMFHI };
"mflo" , MFHILO {txt="MFLO" ; op=MIPSMFLO };
"mthi" , MFHILO {txt="MTHI" ; op=MIPSMTHI };
"mtlo" , MFHILO {txt="MTLO" ; op=MIPSMTLO };
"lui" , LUI {txt="LUI" };
"lb" , LOAD {txt="LB" ; width=MIPSByte ; signed=true; linked=false };
"lbu" , LOAD {txt="LBU" ; width=MIPSByte ; signed=false; linked=false };
"lh" , LOAD {txt="LH" ; width=MIPSHalf ; signed=true; linked=false };
"lhu" , LOAD {txt="LHU" ; width=MIPSHalf ; signed=false; linked=false };
"lw" , LOAD {txt="LW" ; width=MIPSWord ; signed=true; linked=false };
"lwu" , LOAD {txt="LWU" ; width=MIPSWord ; signed=false; linked=false };
"ld" , LOAD {txt="LD" ; width=MIPSDouble ; signed=false; linked=false };
"ll" , LOAD {txt="LL" ; width=MIPSWord ; signed=true; linked=true };
"lld" , LOAD {txt="LLD" ; width=MIPSDouble ; signed=false; linked=true };
"sb" , STORE {txt="SB" ; width=MIPSByte ; conditional=false };
"sh" , STORE {txt="SH" ; width=MIPSHalf ; conditional=false };
"sw" , STORE {txt="SW" ; width=MIPSWord ; conditional=false };
"sd" , STORE {txt="SD" ; width=MIPSDouble ; conditional=false };
"sc" , STORE {txt="SC" ; width=MIPSWord ; conditional=true };
"scd" , STORE {txt="SCD" ; width=MIPSDouble ; conditional=true };
"lwl" , LSLR {txt="LWL" ; store=false; double=false; left=true };
"lwr" , LSLR {txt="LWR" ; store=false; double=false; left=false};
"ldl" , LSLR {txt="LDL" ; store=false; double=true ; left=true };
"ldr" , LSLR {txt="LDR" ; store=false; double=true ; left=false};
"swl" , LSLR {txt="SWL" ; store=true ; double=false; left=true };
"swr" , LSLR {txt="SWR" ; store=true ; double=false; left=false};
"sdl" , LSLR {txt="SDL" ; store=true ; double=true ; left=true };
"sdr" , LSLR {txt="SDR" ; store=true ; double=true ; left=false};
"sync", SYNC {txt="SYNC"};
"beq", BEQ {txt="BEQ"; ne=false; likely=false };
"beql", BEQ {txt="BEQ"; ne=false; likely=true };
"bne", BEQ {txt="BEQ"; ne=true ; likely=false };
"bnel", BEQ {txt="BEQ"; ne=true ; likely=true };
"bltz", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=false; link=false };
"bltzal", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=false; link=true };
"bltzl", BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=true; link=false };
"bltzall",BCMPZ {txt="BCMPZ"; cmp=MIPS_LT; likely=true; link=true };
"bgez", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=false; link=false };
"bgezal", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=false; link=true };
"bgezl", BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=true; link=false };
"bgezall",BCMPZ {txt="BCMPZ"; cmp=MIPS_GE; likely=true; link=true };
"bgtz", BCMPZ {txt="BCMPZ"; cmp=MIPS_GT; likely=false; link=false };
"bgtzl", BCMPZ {txt="BCMPZ"; cmp=MIPS_GT; likely=true; link=false };
"blez", BCMPZ {txt="BCMPZ"; cmp=MIPS_LE; likely=false; link=false };
"blezl", BCMPZ {txt="BCMPZ"; cmp=MIPS_LE; likely=true; link=false };
"j", J {txt="J"};
"jal", JAL {txt="JAL"};
"jr", JR {txt="JR"};
"jalr", JALR {txt="JALR"};
|