1 .macro RegReg insn 2 \insn r31, r0, r0 3 \insn r0, r31, r0 4 \insn r0, r0, r31 5 \insn r1, r2, r3 6 .endm 7 8 .macro RegImm insn 9 \insn r0, r0, 0 10 \insn r0, r0, -32768 11 \insn r0, r0, 32767 12 \insn r0, r31, 0 13 \insn r0, r31, -32768 14 \insn r0, r31, 32767 15 \insn r31, r0, 0 16 \insn r31, r0, -32768 17 \insn r31, r0, 32767 18 .endm 19 20 .macro RegUImm insn 21 \insn r0, r0, 0 22 \insn r0, r0, 65535 23 \insn r0, r31, 0 24 \insn r0, r31, 65535 25 \insn r31, r0, 0 26 \insn r31, r0, 65535 27 .endm 28 29 RegReg add 30 RegImm addi 31 RegReg and 32 RegUImm andi 33 RegUImm andhi 34 35 andhi r0, r0, hi(0x0000ffff) 36 andhi r0, r0, hi(0xffff0000) 37 38 bi label 39 b r0 40 b r31 41 42 be r0, r0, label 43 be r1, r2, label 44 bg r0, r0, label 45 bg r1, r2, label 46 bge r0, r0, label 47 bge r1, r2, label 48 bgeu r0, r0, label 49 bgeu r1, r2, label 50 bgu r0, r0, label 51 bgu r1, r2, label 52 bne r0, r0, label 53 bne r1, r2, label 54 55 calli label 56 call r0 57 call r31 58 59 RegReg cmpe 60 RegImm cmpei 61 RegReg cmpg 62 RegImm cmpgi 63 RegReg cmpge 64 RegImm cmpgei 65 RegReg cmpgeu 66 RegUImm cmpgeui 67 RegReg cmpgu 68 RegUImm cmpgui 69 RegReg cmpne 70 RegImm cmpnei 71 72 RegReg divu 73 RegReg modu 74 RegReg mul 75 RegImm muli 76 77 RegReg nor 78 RegUImm nori 79 RegReg or 80 RegUImm ori 81 ori r0, r0, lo(0xffff0000) 82 ori r0, r0, lo(0x0000ffff) 83 RegUImm orhi 84 orhi r0, r0, hi(0x0000ffff) 85 orhi r0, r0, hi(0xffff0000) 86 87 RegReg sl 88 RegReg sr 89 RegReg sru 90 91 sli r0, r0, 0 92 sli r0, r0, 31 93 sri r0, r0, 0 94 sri r0, r0, 31 95 srui r0, r0, 0 96 srui r0, r0, 31 97 98 RegReg sub 99 100 RegReg xnor 101 RegUImm xnori 102 RegReg xor 103 RegUImm xori 104 105 sextb r0, r0 106 sextb r31, r0 107 sextb r0, r31 108 sextb r2, r1 109 sexth r0, r0 110 sexth r31, r0 111 sexth r0, r31 112 sexth r2, r1 113 114 lb r0, (r0+0) 115 lb r1, (r2+3) 116 lbu r0, (r0+0) 117 lbu r1, (r2+3) 118 lh r0, (r0+0) 119 lh r1, (r2+3) 120 lhu r0, (r0+0) 121 lhu r1, (r2+3) 122 lw r0, (r0+0) 123 lw r1, (r2+3) 124 sb (r0+0), r0 125 sb (r1+2), r3 126 sh (r0+0), r0 127 sh (r1+2), r3 128 sw (r0+0), r0 129 sw (r1+2), r3 130 131 break 132 scall 133 134 eret 135 bret 136 137 ret 138 mvi r0, 0 139 mv r0, r0 140 mvhi r0, 0 141 mvhi r0, hi(0) 142 not r0, r0 143