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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
.set mips16
.set noreorder
foo:
addiu.e $16, $29, 0 # ADDIUSP
addu.e $16, $29, 0
.align 2
addiu.e $16, $pc, 0 # ADDIUPC
addu.e $16, $pc, 0
la.e $16, . - 1
b.e . + 2 # B
jal.e 0 # JAL(X)
nop
jalx.e 0
nop
beqz.e $16, . + 2 # BEQZ
bnez.e $16, . + 2 # BNEZ
sll.e $16, $16, 8 # SHIFT # SLL
dsll.e $16, $16, 8 # DSLL
srl.e $16, $16, 8 # SRL
sra.e $16, $16, 8 # SRA
ld.e $16, 0($16) # LD
addiu.e $16, $16, 0 # RRI-A # ADDIU
addu.e $16, $16, 0
daddiu.e $16, $16, 0 # DADDIU
daddu.e $16, $16, 0
addiu.e $16, 0 # ADDIU8
addu.e $16, 0
slti.e $16, 0 # SLTI
slt.e $16, 0
sltiu.e $16, 0 # SLTIU
sltu.e $16, 0
bteqz.e . + 2 # I8 # BTEQZ
btnez.e . + 2 # BTNEZ
sw.e $31, 0($29) # SWRASP
addiu.e $29, 0 # ADJSP
addiu.e $29, $29, 0
addu.e $29, 0
addu.e $29, $29, 0
restore.e 128 # SVRS # RESTORE
save.e 128 # SAVE
nop.e # MOV32R
move.e $0, $16
move.e $16, $0 # MOVR32
li.e $16, 0 # LI
cmpi.e $16, 0 # CMPI
cmp.e $16, 0
sd.e $16, 0($16) # SD
lb.e $16, 0($16) # LB
lh.e $16, 0($16) # LH
lw.e $16, 0($29) # LWSP
lw.e $16, 0($16) # LW
lbu.e $16, 0($16) # LBU
lhu.e $16, 0($16) # LHU
.align 2
lw.e $16, 0($pc) # LWPC
lw.e $16, . - 3
lwu.e $16, 0($16) # LWU
sb.e $16, 0($16) # SB
sh.e $16, 0($16) # SH
sw.e $16, 0($29) # SWSP
sw.e $16, 0($16) # SW
daddu.e $16, $16, $16 # RRR # DADDU
addu.e $16, $16, $16 # ADDU
dsubu.e $16, $16, $16 # DSUBU
subu.e $16, $16, $16 # SUBU
jr.e $16 # RR # J(AL)R(C) # JR rx
nop
j.e $16
nop
jr.e $31 # JR ra
nop
j.e $31
nop
jalr.e $16 # JALR
nop
jalr.e $31, $16
nop
jal.e $16
nop
jal.e $31, $16
nop
jrc.e $16 # JRC rx
jrc.e $31 # JRC ra
jalrc.e $16 # JALRC
jalrc.e $31, $16
sdbbp.e 0 # SDBBP
slt.e $16, $16 # SLT
sltu.e $16, $16 # SLTU
sllv.e $16, $16 # SLLV
sll.e $16, $16
break.e 0 # BREAK
srlv.e $16, $16 # SRLV
srl.e $16, $16
srav.e $16, $16 # SRAV
sra.e $16, $16
dsrl.e $16, 8 # DSRL
entry.e # ENTRY/EXIT
entry.e $31
exit.e $f0
exit.e
cmp.e $16, $16 # CMP
neg.e $16, $16 # NEG
and.e $16, $16 # AND
or.e $16, $16 # OR
xor.e $16, $16 # XOR
not.e $16, $16 # NOT
mfhi.e $16 # MFHI
zeb.e $16 # CNVT # ZEB
zeh.e $16 # ZEH
zew.e $16 # ZEW
seb.e $16 # SEB
seh.e $16 # SEH
sew.e $16 # SEW
mflo.e $16 # MFLO
dsra.e $16, 8 # DSRA
dsllv.e $16, $16 # DSLLV
dsll.e $16, $16
dsrlv.e $16, $16 # DSRLV
dsrl.e $16, $16
dsrav.e $16, $16 # DSRAV
dsra.e $16, $16
mult.e $16, $16 # MULT
multu.e $16, $16 # MULTU
div.e $0, $16, $16 # DIV
rem.e $0, $16, $16
divu.e $0, $16, $16 # DIVU
remu.e $0, $16, $16
dmult.e $16, $16 # DMULT
dmultu.e $16, $16 # DMULTU
ddiv.e $0, $16, $16 # DDIV
drem.e $0, $16, $16
ddivu.e $0, $16, $16 # DDIVU
dremu.e $0, $16, $16
extend.e 0 # EXTEND
ld.e $16, 0($29) # I64 # LDSP
sd.e $16, 0($29) # SDSP
sd.e $31, 0($29) # SDRASP
daddiu.e $29, 0 # DADJSP
daddiu.e $29, $29, 0
daddu.e $29, 0
daddu.e $29, $29, 0
.align 3
ld.e $16, 0($pc) # LDPC
ld.e $16, . - 3
daddiu.e $16, 0 # DADDIU5
daddu.e $16, 0
.align 2
daddiu.e $16, $pc, 0 # DADDIUPC
daddu.e $16, $pc, 0
dla.e $16, . - 1
daddiu.e $16, $sp, 0 # DADDIUSP
daddu.e $16, $sp, 0
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 4, 0
.space 16
|