1 # Miscellaneous instructions. 2 .data 3 foodata: .word 42 4 .text 5 footext: 6 7 # Multiply instructions. 8 .global macsb 9 macsb: 10 macsb r0 , r1 11 12 .global macub 13 macub: 14 macub r2 , r3 15 16 .global macqb 17 macqb: 18 macqb r4 , r5 19 20 .global macsw 21 macsw: 22 macsw r6 , r7 23 24 .global macuw 25 macuw: 26 macuw r8 , r9 27 28 .global macqw 29 macqw: 30 macqw r10 , r11 31 32 .global macsd 33 macsd: 34 macsd r12 , r13 35 36 .global macud 37 macud: 38 macud r14 , r15 39 40 .global macqd 41 macqd: 42 macqd ra , sp 43 44 .global mullsd 45 mullsd: 46 mullsd r0 , r2 47 48 .global mullud 49 mullud: 50 mullud r1 , r3 51 52 .global mulsbw 53 mulsbw: 54 mulsbw r4 , r6 55 56 .global mulubw 57 mulubw: 58 mulubw r5 , r7 59 60 .global mulswd 61 mulswd: 62 mulswd r8 , r10 63 64 .global muluwd 65 muluwd: 66 muluwd r9 , r11 67 68 # Signextend instructions. 69 .global sextbw 70 sextbw: 71 sextbw r12 , ra 72 73 .global sextbd 74 sextbd: 75 sextbd r13 , sp 76 77 .global sextwd 78 sextwd: 79 sextwd r14 , r15 80 81 .global zextbw 82 zextbw: 83 zextbw r5 , r0 84 85 .global zextbd 86 zextbd: 87 zextbd r10 , r6 88 89 .global zextwd 90 zextwd: 91 zextwd r7 , r15 92 93 # Misc. instructions. 94 95 .global getrfid 96 getrfid: 97 getrfid r14 98 99 .global setrfid 100 setrfid: 101 setrfid sp 102 103 .global bswap 104 bswap: 105 bswap r14 , r2 106 107 .global maxsb 108 maxsb: 109 maxsb r8 , r3 110 111 .global minsb 112 minsb: 113 minsb r15 , r14 114 115 .global maxub 116 maxub: 117 maxub r13 , r12 118 119 .global minub 120 minub: 121 minub r11 , r10 122 123 .global absb 124 absb: 125 absb r9 , r8 126 127 .global negb 128 negb: 129 negb r7 , r6 130 131 .global cntl0b 132 cntl0b: 133 cntl0b r5 , r4 134 135 .global cntl1b 136 cntl1b: 137 cntl1b r3 , r2 138 139 .global popcntb 140 popcntb: 141 popcntb r1 , r0 142 143 .global rotlb 144 rotlb: 145 rotlb r11 , r4 146 147 .global rotrb 148 rotrb: 149 rotrb r7 , r2 150 151 .global mulqb 152 mulqb: 153 mulqb r14 , ra 154 155 .global addqb 156 addqb: 157 addqb r15 , sp 158 159 .global subqb 160 subqb: 161 subqb r0 , r10 162 163 .global cntlsb 164 cntlsb: 165 cntlsb r2 , r12 166 167 .global maxsw 168 maxsw: 169 maxsw r8 , r3 170 171 .global minsw 172 minsw: 173 minsw r15 , r14 174 175 .global maxuw 176 maxuw: 177 maxuw r13 , r12 178 179 .global minuw 180 minuw: 181 minuw r11 , r10 182 183 .global absw 184 absw: 185 absw r9 , r8 186 187 .global negw 188 negw: 189 negw r7 , r6 190 191 .global cntl0w 192 cntl0w: 193 cntl0w r5 , r4 194 195 .global cntl1w 196 cntl1w: 197 cntl1w r3 , r2 198 199 .global popcntw 200 popcntw: 201 popcntw r1 , r0 202 203 .global rotlw 204 rotlw: 205 rotlw r11 , r4 206 207 .global rotrw 208 rotrw: 209 rotrw r7 , r2 210 211 .global mulqw 212 mulqw: 213 mulqw r14 , ra 214 215 .global addqw 216 addqw: 217 addqw r15 , sp 218 219 .global subqw 220 subqw: 221 subqw r0 , r10 222 223 .global cntlsw 224 cntlsw: 225 cntlsw r2 , r12 226 227 .global maxsd 228 maxsd: 229 maxsd r8 , r3 230 231 .global minsd 232 minsd: 233 minsd r15 , r14 234 235 .global maxud 236 maxud: 237 maxud r13 , r12 238 239 .global minud 240 minud: 241 minud r11 , r10 242 243 .global absd 244 absd: 245 absd r9 , r8 246 247 .global negd 248 negd: 249 negd r7 , r6 250 251 .global cntl0d 252 cntl0d: 253 cntl0d r5 , r4 254 255 .global cntl1d 256 cntl1d: 257 cntl1d r3 , r2 258 259 .global popcntd 260 popcntd: 261 popcntd r1 , r0 262 263 .global rotld 264 rotld: 265 rotld r11 , r4 266 267 .global rotrd 268 rotrd: 269 rotrd r7 , r2 270 271 .global mulqd 272 mulqd: 273 mulqd r14 , ra 274 275 .global addqd 276 addqd: 277 addqd r15 , sp 278 279 .global subqd 280 subqd: 281 subqd r0 , r10 282 283 .global cntlsd 284 cntlsd: 285 cntlsd r2 , r12 286 287 .global excp 288 excp: 289 excp BPT 290 excp svc 291 292 .global ram 293 ram: 294 ram $24, $9, $1, ra, r12 295 296 .global rim 297 rim: 298 rim $0x1f, $0xf, $0xe, r2, r1 299 300 .global rotb 301 rotb: 302 rotb $7, r1 303 304 .global rotw 305 rotw: 306 rotw $13, r3 307 308 .global rotd 309 rotd: 310 rotd $27, r2 311 312 313