.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