.set mips16 .macro mem9pos op, ri, base \op \ri,0(\base) \op \ri,1(\base) \op \ri,2(\base) \op \ri,3(\base) \op \ri,4(\base) \op \ri,8(\base) \op \ri,16(\base) \op \ri,32(\base) \op \ri,64(\base) \op \ri,128(\base) \op \ri,255(\base) .endm .macro mem9neg op, ri, base \op \ri,-1(\base) \op \ri,-2(\base) \op \ri,-3(\base) \op \ri,-4(\base) \op \ri,-8(\base) \op \ri,-16(\base) \op \ri,-32(\base) \op \ri,-64(\base) \op \ri,-128(\base) \op \ri,-256(\base) .endm .macro mem9 op, ri, base mem9pos \op, \ri, \base mem9neg \op, \ri, \base .endm .macro mem op, ri, base mem9pos \op, \ri, \base \op \ri,256(\base) \op \ri,512(\base) \op \ri,1024(\base) \op \ri,2048(\base) \op \ri,4096(\base) \op \ri,8192(\base) \op \ri,16384(\base) \op \ri,32767(\base) mem9neg \op, \ri, \base \op \ri,-512(\base) \op \ri,-1024(\base) \op \ri,-2048(\base) \op \ri,-4096(\base) \op \ri,-8192(\base) \op \ri,-16384(\base) \op \ri,-32768(\base) .endm .macro alupos op, args:vararg \op \args, 0 \op \args, 1 \op \args, 2 \op \args, 4 \op \args, 8 \op \args, 16 \op \args, 32 \op \args, 64 \op \args, 128 \op \args, 256 \op \args, 512 \op \args, 1024 \op \args, 2048 \op \args, 4096 \op \args, 8192 \op \args, 16384 \op \args, 32767 .endm .macro aluneg op, args:vararg \op \args, -1 \op \args, -2 \op \args, -4 \op \args, -8 \op \args, -16 \op \args, -32 \op \args, -64 \op \args, -128 \op \args, -256 \op \args, -512 \op \args, -1024 \op \args, -2048 \op \args, -4096 \op \args, -8192 \op \args, -16384 \op \args, -32768 .endm .macro aluu op, args:vararg alupos \op, \args \op \args, 32768 \op \args, 65535 .endm .macro alu op, args:vararg alupos \op, \args aluneg \op, \args .endm .macro bit op, ry, rx \op \ry, \rx, 0, 32 \op \ry, \rx, 1, 25 \op \ry, \rx, 2, 17 \op \ry, \rx, 3, 13 \op \ry, \rx, 4, 9 \op \ry, \rx, 6, 7 \op \ry, \rx, 8, 5 \op \ry, \rx, 12, 4 \op \ry, \rx, 16, 3 \op \ry, \rx, 24, 2 \op \ry, \rx, 31, 1 .endm foo: mem lw, $2, $gp mem lh, $2, $gp mem lhu, $2, $gp mem lb, $2, $gp mem lbu, $2, $gp mem sw, $2, $gp mem sh, $2, $gp mem sb, $2, $gp mem9 ll, $2, $3 mem9 lwl, $2, $3 mem9 lwr, $2, $3 mem9 sc, $2, $3 mem9 swl, $2, $3 mem9 swr, $2, $3 mem9 cache, 2, $3 mem9 cache, 29, $3 mem9 pref, 8, $3 mem9 pref, 23, $3 alu addiu, $2, $gp alu addu, $2, $gp aluu lui, $2 aluu andi, $2 aluu ori, $2 aluu xori, $2 bit ext, $2, $3 bit ins, $2, $3 bit ins, $6, $0 movn $2, $3, $4 movn $4, $5, $2 movn $7, $6, $17 movn $2, $0, $4 movz $2, $3, $4 movz $4, $5, $2 movz $17, $6, $7 movz $2, $0, $4 movtn $2, $3 movtn $4, $5 movtn $7, $6 movtn $2, $0 movtz $2, $3 movtz $4, $5 movtz $17, $6 movtz $2, $0 ehb pause sync sync 1 sync 4 sync 13 sync 31 sync_wmb sync_mb sync_acquire sync_release sync_rmb rdhwr $2, $1 rdhwr $3, $5 rdhwr $4, $29 rdhwr $5, $31 di di $0 di $2 ei ei $0 ei $2 mfc0 $3, $5 mfc0 $5, $9, 0 mfc0 $7, $13, 3 mfc0 $17, $15, 1 mfc0 $2, $17, 7 mfc0 $6, $21 mtc0 $3, $5 mtc0 $5, $9, 0 mtc0 $7, $13, 3 mtc0 $17, $15, 1 mtc0 $2, $17, 7 mtc0 $6, $21 # Force some (non-delay-slot) zero bytes, to make 'objdump' print ... .space 16 .align 4, 0