1 @ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding < %s | FileCheck %s 2 .syntax unified 3 .globl _func 4 5 @ Check that the assembler can handle the documented syntax from the ARM ARM. 6 @ For complex constructs like shifter operands, check more thoroughly for them 7 @ once then spot check that following instructions accept the form generally. 8 @ This gives us good coverage while keeping the overall size of the test 9 @ more reasonable. 10 11 12 @ FIXME: Some 3-operand instructions have a 2-operand assembly syntax. 13 14 _func: 15 @ CHECK: _func 16 17 @------------------------------------------------------------------------------ 18 @ ADC (immediate) 19 @------------------------------------------------------------------------------ 20 adc r0, r1, #4 21 adcs r0, r1, #0 22 adc r1, r2, #255 23 adc r3, r7, #0x00550055 24 adc r8, r12, #0xaa00aa00 25 adc r9, r7, #0xa5a5a5a5 26 adc r5, r3, #0x87000000 27 adc r4, r2, #0x7f800000 28 adc r4, r2, #0x00000680 29 30 @ CHECK: adc r0, r1, #4 @ encoding: [0x41,0xf1,0x04,0x00] 31 @ CHECK: adcs r0, r1, #0 @ encoding: [0x51,0xf1,0x00,0x00] 32 @ CHECK: adc r1, r2, #255 @ encoding: [0x42,0xf1,0xff,0x01] 33 @ CHECK: adc r3, r7, #5570645 @ encoding: [0x47,0xf1,0x55,0x13] 34 @ CHECK: adc r8, r12, #2852170240 @ encoding: [0x4c,0xf1,0xaa,0x28] 35 @ CHECK: adc r9, r7, #2779096485 @ encoding: [0x47,0xf1,0xa5,0x39] 36 @ CHECK: adc r5, r3, #2264924160 @ encoding: [0x43,0xf1,0x07,0x45] 37 @ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44] 38 @ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64] 39 40 @------------------------------------------------------------------------------ 41 @ ADC (register) 42 @------------------------------------------------------------------------------ 43 adc r4, r5, r6 44 adcs r4, r5, r6 45 adc.w r9, r1, r3 46 adcs.w r9, r1, r3 47 adc r0, r1, r3, ror #4 48 adcs r0, r1, r3, lsl #7 49 adc.w r0, r1, r3, lsr #31 50 adcs.w r0, r1, r3, asr #32 51 52 @ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04] 53 @ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04] 54 @ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09] 55 @ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09] 56 @ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10] 57 @ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10] 58 @ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70] 59 @ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00] 60 61 62 @------------------------------------------------------------------------------ 63 @ ADD (immediate) 64 @------------------------------------------------------------------------------ 65 itet eq 66 addeq r1, r2, #4 67 addwne r5, r3, #1023 68 addeq r4, r5, #293 69 add r2, sp, #1024 70 add r2, r8, #0xff00 71 add r2, r3, #257 72 addw r2, r3, #257 73 add r12, r6, #0x100 74 addw r12, r6, #0x100 75 adds r1, r2, #0x1f0 76 add r2, #1 77 add r0, r0, #32 78 adds r2, r2, #56 79 adds r2, #56 80 81 @ CHECK: itet eq @ encoding: [0x0a,0xbf] 82 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 83 @ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35] 84 @ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14] 85 @ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62] 86 @ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42] 87 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 88 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 89 @ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c] 90 @ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c] 91 @ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71] 92 @ CHECK: add.w r2, r2, #1 @ encoding: [0x02,0xf1,0x01,0x02] 93 @ CHECK: add.w r0, r0, #32 @ encoding: [0x00,0xf1,0x20,0x00] 94 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32] 95 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32] 96 97 98 @------------------------------------------------------------------------------ 99 @ ADD (register) 100 @------------------------------------------------------------------------------ 101 add r1, r2, r8 102 add r5, r9, r2, asr #32 103 adds r7, r3, r1, lsl #31 104 adds.w r0, r3, r6, lsr #25 105 add.w r4, r8, r1, ror #12 106 add r10, r8 107 add r10, r10, r8 108 109 @ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01] 110 @ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05] 111 @ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77] 112 @ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60] 113 @ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34] 114 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44] 115 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44] 116 117 118 @------------------------------------------------------------------------------ 119 @ FIXME: ADR 120 @------------------------------------------------------------------------------ 121 122 subw r11, pc, #3270 123 adr.w r11, #-826 124 125 @ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b] 126 @ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b] 127 128 @------------------------------------------------------------------------------ 129 @ AND (immediate) 130 @------------------------------------------------------------------------------ 131 and r2, r5, #0xff000 132 ands r3, r12, #0xf 133 and r1, #0xff 134 and r1, r1, #0xff 135 136 @ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22] 137 @ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03] 138 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 139 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 140 141 142 @------------------------------------------------------------------------------ 143 @ AND (register) 144 @------------------------------------------------------------------------------ 145 and r4, r9, r8 146 and r1, r4, r8, asr #3 147 ands r2, r1, r7, lsl #1 148 ands.w r4, r5, r2, lsr #20 149 and.w r9, r12, r1, ror #17 150 151 @ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04] 152 @ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01] 153 @ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02] 154 @ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54] 155 @ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49] 156 157 @------------------------------------------------------------------------------ 158 @ ASR (immediate) 159 @------------------------------------------------------------------------------ 160 asr r2, r3, #12 161 asrs r8, r3, #32 162 asrs.w r2, r3, #1 163 asr r2, r3, #4 164 asrs r2, r12, #15 165 166 asr r3, #19 167 asrs r8, #2 168 asrs.w r7, #5 169 asr.w r12, #21 170 171 @ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32] 172 @ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08] 173 @ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02] 174 @ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12] 175 @ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32] 176 177 @ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43] 178 @ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08] 179 @ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17] 180 @ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c] 181 182 183 @------------------------------------------------------------------------------ 184 @ ASR (register) 185 @------------------------------------------------------------------------------ 186 asr r3, r4, r2 187 asr.w r1, r2 188 asrs r3, r4, r8 189 190 @ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3] 191 @ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1] 192 @ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3] 193 194 195 @------------------------------------------------------------------------------ 196 @ B 197 @------------------------------------------------------------------------------ 198 b.w _bar 199 beq.w _bar 200 it eq 201 beq.w _bar 202 bmi.w #-183396 203 204 @ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 205 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 206 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A'] 207 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch 208 @ CHECK: it eq @ encoding: [0x08,0xbf] 209 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 210 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 211 @ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9] 212 213 214 @------------------------------------------------------------------------------ 215 @ BFC 216 @------------------------------------------------------------------------------ 217 bfc r5, #3, #17 218 it lo 219 bfccc r5, #3, #17 220 221 @ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 222 @ CHECK: it lo @ encoding: [0x38,0xbf] 223 @ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 224 225 226 @------------------------------------------------------------------------------ 227 @ BFI 228 @------------------------------------------------------------------------------ 229 bfi r5, r2, #3, #17 230 it ne 231 bfine r5, r2, #3, #17 232 233 @ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 234 @ CHECK: it ne @ encoding: [0x18,0xbf] 235 @ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 236 237 238 @------------------------------------------------------------------------------ 239 @ BIC 240 @------------------------------------------------------------------------------ 241 bic r10, r1, #0xf 242 bic r12, r3, r6 243 bic r11, r2, r6, lsl #12 244 bic r8, r4, r1, lsr #11 245 bic r7, r5, r7, lsr #15 246 bic r6, r7, r9, asr #32 247 bic r5, r6, r8, ror #1 248 249 @ destination register is optional 250 bic r1, #0xf 251 bic r1, r1 252 bic r4, r2, lsl #31 253 bic r6, r3, lsr #12 254 bic r7, r4, lsr #7 255 bic r8, r5, asr #15 256 bic r12, r6, ror #29 257 258 @ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a] 259 @ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c] 260 @ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b] 261 @ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28] 262 @ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37] 263 @ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06] 264 @ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05] 265 266 @ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01] 267 @ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01] 268 @ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74] 269 @ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36] 270 @ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17] 271 @ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38] 272 @ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c] 273 274 @------------------------------------------------------------------------------ 275 @ BKPT 276 @------------------------------------------------------------------------------ 277 it pl 278 bkpt #234 279 280 @ CHECK: it pl @ encoding: [0x58,0xbf] 281 @ CHECK: bkpt #234 @ encoding: [0xea,0xbe] 282 283 @------------------------------------------------------------------------------ 284 @ BXJ 285 @------------------------------------------------------------------------------ 286 bxj r5 287 it ne 288 bxjne r7 289 290 @ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f] 291 @ CHECK: it ne @ encoding: [0x18,0xbf] 292 @ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f] 293 294 295 @------------------------------------------------------------------------------ 296 @ CBZ/CBNZ 297 @------------------------------------------------------------------------------ 298 cbnz r7, #6 299 cbnz r7, #12 300 cbz r6, _bar 301 cbnz r6, _bar 302 303 @ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9] 304 @ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9] 305 @ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A'] 306 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 307 @ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A'] 308 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 309 310 311 @------------------------------------------------------------------------------ 312 @ CDP/CDP2 313 @------------------------------------------------------------------------------ 314 cdp p7, #1, c1, c1, c1, #4 315 cdp2 p7, #1, c1, c1, c1, #4 316 317 @ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17] 318 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17] 319 320 321 @------------------------------------------------------------------------------ 322 @ CLREX 323 @------------------------------------------------------------------------------ 324 clrex 325 it ne 326 clrexne 327 328 @ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f] 329 @ CHECK: it ne @ encoding: [0x18,0xbf] 330 @ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f] 331 332 333 @------------------------------------------------------------------------------ 334 @ CLZ 335 @------------------------------------------------------------------------------ 336 clz r1, r2 337 it eq 338 clzeq r1, r2 339 340 @ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 341 @ CHECK: it eq @ encoding: [0x08,0xbf] 342 @ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 343 344 345 @------------------------------------------------------------------------------ 346 @ CMN 347 @------------------------------------------------------------------------------ 348 cmn r1, #0xf 349 cmn r8, r6 350 cmn r1, r6, lsl #10 351 cmn r1, r6, lsr #10 352 cmn sp, r6, lsr #10 353 cmn r1, r6, asr #10 354 cmn r1, r6, ror #10 355 356 @ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f] 357 @ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f] 358 @ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f] 359 @ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f] 360 @ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f] 361 @ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f] 362 @ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f] 363 364 365 @------------------------------------------------------------------------------ 366 @ CMP 367 @------------------------------------------------------------------------------ 368 cmp r5, #0xff00 369 cmp.w r4, r12 370 cmp r9, r6, lsl #12 371 cmp r3, r7, lsr #31 372 cmp sp, r6, lsr #1 373 cmp r2, r5, asr #24 374 cmp r1, r4, ror #15 375 cmp r2, #-2 376 cmp r9, #1 377 378 @ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f] 379 @ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f] 380 @ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f] 381 @ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f] 382 @ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f] 383 @ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f] 384 @ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f] 385 @ CHECK: cmn.w r2, #2 @ encoding: [0x12,0xf1,0x02,0x0f] 386 @ CHECK: cmp.w r9, #1 @ encoding: [0xb9,0xf1,0x01,0x0f] 387 388 389 @------------------------------------------------------------------------------ 390 @ DBG 391 @------------------------------------------------------------------------------ 392 dbg #5 393 dbg #0 394 dbg #15 395 396 @ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80] 397 @ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80] 398 @ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80] 399 400 401 @------------------------------------------------------------------------------ 402 @ DMB 403 @------------------------------------------------------------------------------ 404 dmb sy 405 dmb st 406 dmb sh 407 dmb ish 408 dmb shst 409 dmb ishst 410 dmb un 411 dmb nsh 412 dmb unst 413 dmb nshst 414 dmb osh 415 dmb oshst 416 dmb 417 418 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 419 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f] 420 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 421 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 422 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 423 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 424 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 425 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 426 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 427 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 428 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f] 429 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f] 430 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 431 432 433 @------------------------------------------------------------------------------ 434 @ DSB 435 @------------------------------------------------------------------------------ 436 dsb sy 437 dsb st 438 dsb sh 439 dsb ish 440 dsb shst 441 dsb ishst 442 dsb un 443 dsb nsh 444 dsb unst 445 dsb nshst 446 dsb osh 447 dsb oshst 448 dsb 449 450 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 451 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f] 452 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 453 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 454 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 455 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 456 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 457 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 458 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 459 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 460 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f] 461 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f] 462 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 463 464 465 @------------------------------------------------------------------------------ 466 @ EOR 467 @------------------------------------------------------------------------------ 468 eor r4, r5, #0xf000 469 eor r4, r5, r6 470 eor r4, r5, r6, lsl #5 471 eor r4, r5, r6, lsr #5 472 eor r4, r5, r6, lsr #5 473 eor r4, r5, r6, asr #5 474 eor r4, r5, r6, ror #5 475 476 @ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44] 477 @ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04] 478 @ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14] 479 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 480 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 481 @ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14] 482 @ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14] 483 484 485 @------------------------------------------------------------------------------ 486 @ ISB 487 @------------------------------------------------------------------------------ 488 isb sy 489 isb 490 491 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 492 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 493 494 495 @------------------------------------------------------------------------------ 496 @ IT 497 @------------------------------------------------------------------------------ 498 @ Test encodings of a few full IT blocks, not just the IT instruction 499 500 iteet eq 501 addeq r0, r1, r2 502 nopne 503 subne r5, r6, r7 504 addeq r1, r2, #4 505 506 @ CHECK: iteet eq @ encoding: [0x0d,0xbf] 507 @ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18] 508 @ CHECK: nopne @ encoding: [0x00,0xbf] 509 @ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b] 510 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 511 512 513 @------------------------------------------------------------------------------ 514 @ LDC{L}/LDC2{L} 515 @------------------------------------------------------------------------------ 516 ldc2 p0, c8, [r1, #4] 517 ldc2 p1, c7, [r2] 518 ldc2 p2, c6, [r3, #-224] 519 ldc2 p3, c5, [r4, #-120]! 520 ldc2 p4, c4, [r5], #16 521 ldc2 p5, c3, [r6], #-72 522 ldc2l p6, c2, [r7, #4] 523 ldc2l p7, c1, [r8] 524 ldc2l p8, c0, [r9, #-224] 525 ldc2l p9, c1, [r10, #-120]! 526 ldc2l p10, c2, [r11], #16 527 ldc2l p11, c3, [r12], #-72 528 529 ldc p12, c4, [r0, #4] 530 ldc p13, c5, [r1] 531 ldc p14, c6, [r2, #-224] 532 ldc p15, c7, [r3, #-120]! 533 ldc p5, c8, [r4], #16 534 ldc p4, c9, [r5], #-72 535 ldcl p3, c10, [r6, #4] 536 ldcl p2, c11, [r7] 537 ldcl p1, c12, [r8, #-224] 538 ldcl p0, c13, [r9, #-120]! 539 ldcl p6, c14, [r10], #16 540 ldcl p7, c15, [r11], #-72 541 542 ldc2 p2, c8, [r1], { 25 } 543 544 @ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x91,0xfd,0x01,0x80] 545 @ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x92,0xfd,0x00,0x71] 546 @ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x13,0xfd,0x38,0x62] 547 @ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x34,0xfd,0x1e,0x53] 548 @ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0xb5,0xfc,0x04,0x44] 549 @ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x36,0xfc,0x12,0x35] 550 @ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0xd7,0xfd,0x01,0x26] 551 @ CHECK: ldc2l p7, c1, [r8] @ encoding: [0xd8,0xfd,0x00,0x17] 552 @ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x59,0xfd,0x38,0x08] 553 @ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x7a,0xfd,0x1e,0x19] 554 @ CHECK: ldc2l p10, c2, [r11], #16 @ encoding: [0xfb,0xfc,0x04,0x2a] 555 @ CHECK: ldc2l p11, c3, [r12], #-72 @ encoding: [0x7c,0xfc,0x12,0x3b] 556 557 @ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x90,0xed,0x01,0x4c] 558 @ CHECK: ldc p13, c5, [r1] @ encoding: [0x91,0xed,0x00,0x5d] 559 @ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x12,0xed,0x38,0x6e] 560 @ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x33,0xed,0x1e,0x7f] 561 @ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0xb4,0xec,0x04,0x85] 562 @ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x35,0xec,0x12,0x94] 563 @ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0xd6,0xed,0x01,0xa3] 564 @ CHECK: ldcl p2, c11, [r7] @ encoding: [0xd7,0xed,0x00,0xb2] 565 @ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x58,0xed,0x38,0xc1] 566 @ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x79,0xed,0x1e,0xd0] 567 @ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0xfa,0xec,0x04,0xe6] 568 @ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x7b,0xec,0x12,0xf7] 569 570 @ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x91,0xfc,0x19,0x82] 571 572 573 @------------------------------------------------------------------------------ 574 @ LDMIA 575 @------------------------------------------------------------------------------ 576 ldmia.w r4, {r4, r5, r8, r9} 577 ldmia.w r4, {r5, r6} 578 ldmia.w r5!, {r3, r8} 579 ldm.w r4, {r4, r5, r8, r9} 580 ldm.w r4, {r5, r6} 581 ldm.w r5!, {r3, r8} 582 ldm.w r5!, {r1, r2} 583 ldm.w r2, {r1, r2} 584 585 ldmia r4, {r4, r5, r8, r9} 586 ldmia r4, {r5, r6} 587 ldmia r5!, {r3, r8} 588 ldm r4, {r4, r5, r8, r9} 589 ldm r4, {r5, r6} 590 ldm r5!, {r3, r8} 591 ldmfd r5!, {r3, r8} 592 ldmia sp!, {r4-r11, pc} 593 594 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 595 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 596 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 597 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 598 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 599 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 600 @ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00] 601 @ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00] 602 603 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 604 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 605 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 606 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 607 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 608 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 609 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 610 @ CHECK: pop.w {pc, r4, r5, r6, r7, r8, r9, r10, r11} @ encoding: [0xbd,0xe8,0xf0,0x8f] 611 612 613 @------------------------------------------------------------------------------ 614 @ LDMDB 615 @------------------------------------------------------------------------------ 616 ldmdb r4, {r4, r5, r8, r9} 617 ldmdb r4, {r5, r6} 618 ldmdb r5!, {r3, r8} 619 ldmea r5!, {r3, r8} 620 ldmdb.w r4, {r5, r6} 621 ldmdb.w r5!, {r3, r8} 622 623 @ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03] 624 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00] 625 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 626 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 627 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00] 628 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 629 630 631 @------------------------------------------------------------------------------ 632 @ LDR(immediate) 633 @------------------------------------------------------------------------------ 634 ldr r5, [r5, #-4] 635 ldr r5, [r6, #32] 636 ldr r5, [r6, #33] 637 ldr r5, [r6, #257] 638 ldr.w pc, [r7, #257] 639 ldr r2, [r4, #255]! 640 ldr r8, [sp, #4]! 641 ldr lr, [sp, #-4]! 642 ldr r2, [r4], #255 643 ldr r8, [sp], #4 644 ldr lr, [sp], #-4 645 646 @ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c] 647 @ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a] 648 @ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50] 649 @ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51] 650 @ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1] 651 @ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f] 652 @ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f] 653 @ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed] 654 @ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b] 655 @ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b] 656 @ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9] 657 658 659 @------------------------------------------------------------------------------ 660 @ LDR(literal) 661 @------------------------------------------------------------------------------ 662 ldr.w r5, _foo 663 ldr lr, (_strcmp-4) 664 665 @ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A'] 666 @ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 667 @ CHECK: ldr.w lr, _strcmp-4 @ encoding: [0x5f'A',0xf8'A',A,0xe0'A'] 668 @ CHECK: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12 669 670 671 @------------------------------------------------------------------------------ 672 @ LDR(register) 673 @------------------------------------------------------------------------------ 674 ldr r1, [r8, r1] 675 ldr.w r4, [r5, r2] 676 ldr r6, [r0, r2, lsl #3] 677 ldr r8, [r8, r2, lsl #2] 678 ldr r7, [sp, r2, lsl #1] 679 ldr r7, [sp, r2, lsl #0] 680 681 @ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10] 682 @ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40] 683 @ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60] 684 @ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80] 685 @ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70] 686 @ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70] 687 688 689 @------------------------------------------------------------------------------ 690 @ LDRB(immediate) 691 @------------------------------------------------------------------------------ 692 ldrb r5, [r5, #-4] 693 ldrb r5, [r6, #32] 694 ldrb r5, [r6, #33] 695 ldrb r5, [r6, #257] 696 ldrb.w lr, [r7, #257] 697 ldrb r5, [r8, #255]! 698 ldrb r2, [r5, #4]! 699 ldrb r1, [r4, #-4]! 700 ldrb lr, [r3], #255 701 ldrb r9, [r2], #4 702 ldrb r3, [sp], #-4 703 704 @ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c] 705 @ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50] 706 @ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50] 707 @ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51] 708 @ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1] 709 @ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f] 710 @ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f] 711 @ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d] 712 @ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb] 713 @ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b] 714 @ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39] 715 716 717 @------------------------------------------------------------------------------ 718 @ LDRB(register) 719 @------------------------------------------------------------------------------ 720 ldrb r1, [r8, r1] 721 ldrb.w r4, [r5, r2] 722 ldrb r6, [r0, r2, lsl #3] 723 ldrb r8, [r8, r2, lsl #2] 724 ldrb r7, [sp, r2, lsl #1] 725 ldrb r7, [sp, r2, lsl #0] 726 727 @ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10] 728 @ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40] 729 @ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60] 730 @ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80] 731 @ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70] 732 @ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70] 733 734 735 @------------------------------------------------------------------------------ 736 @ LDRBT 737 @------------------------------------------------------------------------------ 738 ldrbt r1, [r2] 739 ldrbt r1, [r8, #0] 740 ldrbt r1, [r8, #3] 741 ldrbt r1, [r8, #255] 742 743 @ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e] 744 @ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e] 745 @ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e] 746 @ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e] 747 748 749 @------------------------------------------------------------------------------ 750 @ LDRD 751 @------------------------------------------------------------------------------ 752 ldrd r3, r5, [r6, #24] 753 ldrd r3, r5, [r6, #24]! 754 ldrd r3, r5, [r6], #4 755 ldrd r3, r5, [r6], #-8 756 ldrd r3, r5, [r6] 757 ldrd r8, r1, [r3, #0] 758 759 @ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35] 760 @ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35] 761 @ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35] 762 @ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35] 763 @ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35] 764 @ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81] 765 766 767 @------------------------------------------------------------------------------ 768 @ FIXME: LDRD(literal) 769 @------------------------------------------------------------------------------ 770 771 772 @------------------------------------------------------------------------------ 773 @ LDREX/LDREXB/LDREXH/LDREXD 774 @------------------------------------------------------------------------------ 775 ldrex r1, [r4] 776 ldrex r8, [r4, #0] 777 ldrex r2, [sp, #128] 778 ldrexb r5, [r7] 779 ldrexh r9, [r12] 780 ldrexd r9, r3, [r4] 781 782 @ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f] 783 @ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f] 784 @ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f] 785 @ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f] 786 @ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f] 787 @ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93] 788 789 790 @------------------------------------------------------------------------------ 791 @ LDRH(immediate) 792 @------------------------------------------------------------------------------ 793 ldrh r5, [r5, #-4] 794 ldrh r5, [r6, #32] 795 ldrh r5, [r6, #33] 796 ldrh r5, [r6, #257] 797 ldrh.w lr, [r7, #257] 798 ldrh r5, [r8, #255]! 799 ldrh r2, [r5, #4]! 800 ldrh r1, [r4, #-4]! 801 ldrh lr, [r3], #255 802 ldrh r9, [r2], #4 803 ldrh r3, [sp], #-4 804 805 @ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c] 806 @ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c] 807 @ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50] 808 @ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51] 809 @ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1] 810 @ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f] 811 @ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f] 812 @ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d] 813 @ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb] 814 @ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b] 815 @ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39] 816 817 818 @------------------------------------------------------------------------------ 819 @ LDRH(register) 820 @------------------------------------------------------------------------------ 821 ldrh r1, [r8, r1] 822 ldrh.w r4, [r5, r2] 823 ldrh r6, [r0, r2, lsl #3] 824 ldrh r8, [r8, r2, lsl #2] 825 ldrh r7, [sp, r2, lsl #1] 826 ldrh r7, [sp, r2, lsl #0] 827 828 @ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10] 829 @ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40] 830 @ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60] 831 @ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80] 832 @ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70] 833 @ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70] 834 835 836 @------------------------------------------------------------------------------ 837 @ LDRH(literal) 838 @------------------------------------------------------------------------------ 839 ldrh r5, _bar 840 841 @ CHECK: ldrh.w r5, _bar @ encoding: [0x3f'A',0xf8'A',A,0x50'A'] 842 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 843 844 845 @------------------------------------------------------------------------------ 846 @ LDRHT 847 @------------------------------------------------------------------------------ 848 ldrht r1, [r2] 849 ldrht r1, [r8, #0] 850 ldrht r1, [r8, #3] 851 ldrht r1, [r8, #255] 852 853 @ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e] 854 @ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e] 855 @ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e] 856 @ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e] 857 858 859 @------------------------------------------------------------------------------ 860 @ LDRSB(immediate) 861 @------------------------------------------------------------------------------ 862 ldrsb r5, [r5, #-4] 863 ldrsb r5, [r6, #32] 864 ldrsb r5, [r6, #33] 865 ldrsb r5, [r6, #257] 866 ldrsb.w lr, [r7, #257] 867 868 @ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c] 869 @ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50] 870 @ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50] 871 @ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51] 872 @ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1] 873 874 875 @------------------------------------------------------------------------------ 876 @ LDRSB(register) 877 @------------------------------------------------------------------------------ 878 ldrsb r1, [r8, r1] 879 ldrsb.w r4, [r5, r2] 880 ldrsb r6, [r0, r2, lsl #3] 881 ldrsb r8, [r8, r2, lsl #2] 882 ldrsb r7, [sp, r2, lsl #1] 883 ldrsb r7, [sp, r2, lsl #0] 884 ldrsb r5, [r8, #255]! 885 ldrsb r2, [r5, #4]! 886 ldrsb r1, [r4, #-4]! 887 ldrsb lr, [r3], #255 888 ldrsb r9, [r2], #4 889 ldrsb r3, [sp], #-4 890 891 @ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10] 892 @ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40] 893 @ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60] 894 @ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80] 895 @ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70] 896 @ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70] 897 @ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f] 898 @ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f] 899 @ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d] 900 @ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb] 901 @ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b] 902 @ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39] 903 904 905 @------------------------------------------------------------------------------ 906 @ LDRSB(literal) 907 @------------------------------------------------------------------------------ 908 ldrsb r5, _bar 909 910 @ CHECK: ldrsb.w r5, _bar @ encoding: [0x1f'A',0xf9'A',A,0x50'A'] 911 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 912 913 914 @------------------------------------------------------------------------------ 915 @ LDRSBT 916 @------------------------------------------------------------------------------ 917 ldrsbt r1, [r2] 918 ldrsbt r1, [r8, #0] 919 ldrsbt r1, [r8, #3] 920 ldrsbt r1, [r8, #255] 921 922 @ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e] 923 @ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e] 924 @ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e] 925 @ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e] 926 927 928 @------------------------------------------------------------------------------ 929 @ LDRSH(immediate) 930 @------------------------------------------------------------------------------ 931 ldrsh r5, [r5, #-4] 932 ldrsh r5, [r6, #32] 933 ldrsh r5, [r6, #33] 934 ldrsh r5, [r6, #257] 935 ldrsh.w lr, [r7, #257] 936 937 @ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c] 938 @ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50] 939 @ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50] 940 @ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51] 941 @ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1] 942 943 944 @------------------------------------------------------------------------------ 945 @ LDRSH(register) 946 @------------------------------------------------------------------------------ 947 ldrsh r1, [r8, r1] 948 ldrsh.w r4, [r5, r2] 949 ldrsh r6, [r0, r2, lsl #3] 950 ldrsh r8, [r8, r2, lsl #2] 951 ldrsh r7, [sp, r2, lsl #1] 952 ldrsh r7, [sp, r2, lsl #0] 953 ldrsh r5, [r8, #255]! 954 ldrsh r2, [r5, #4]! 955 ldrsh r1, [r4, #-4]! 956 ldrsh lr, [r3], #255 957 ldrsh r9, [r2], #4 958 ldrsh r3, [sp], #-4 959 960 @ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10] 961 @ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40] 962 @ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60] 963 @ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80] 964 @ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70] 965 @ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70] 966 @ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f] 967 @ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f] 968 @ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d] 969 @ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb] 970 @ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b] 971 @ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39] 972 973 974 @------------------------------------------------------------------------------ 975 @ LDRSH(literal) 976 @------------------------------------------------------------------------------ 977 ldrsh r5, _bar 978 979 @ CHECK: ldrsh.w r5, _bar @ encoding: [0x3f'A',0xf9'A',A,0x50'A'] 980 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 981 982 @ TEMPORARILY DISABLED: 983 @ ldrsh.w r4, [pc, #1435] 984 @ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45] 985 986 @------------------------------------------------------------------------------ 987 @ LDRSHT 988 @------------------------------------------------------------------------------ 989 ldrsht r1, [r2] 990 ldrsht r1, [r8, #0] 991 ldrsht r1, [r8, #3] 992 ldrsht r1, [r8, #255] 993 994 @ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e] 995 @ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e] 996 @ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e] 997 @ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e] 998 999 1000 @------------------------------------------------------------------------------ 1001 @ LDRT 1002 @------------------------------------------------------------------------------ 1003 ldrt r1, [r2] 1004 ldrt r2, [r6, #0] 1005 ldrt r3, [r7, #3] 1006 ldrt r4, [r9, #255] 1007 1008 @ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e] 1009 @ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e] 1010 @ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e] 1011 @ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e] 1012 1013 1014 @------------------------------------------------------------------------------ 1015 @ LSL (immediate) 1016 @------------------------------------------------------------------------------ 1017 lsl r2, r3, #12 1018 lsls r8, r3, #31 1019 lsls.w r2, r3, #1 1020 lsl r2, r3, #4 1021 lsls r2, r12, #15 1022 1023 lsl r3, #19 1024 lsls r8, #2 1025 lsls.w r7, #5 1026 lsl.w r12, #21 1027 1028 @ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32] 1029 @ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78] 1030 @ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02] 1031 @ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12] 1032 @ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32] 1033 1034 @ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43] 1035 @ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08] 1036 @ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17] 1037 @ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c] 1038 1039 1040 @------------------------------------------------------------------------------ 1041 @ LSL (register) 1042 @------------------------------------------------------------------------------ 1043 lsl r3, r4, r2 1044 lsl.w r1, r2 1045 lsls r3, r4, r8 1046 1047 @ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3] 1048 @ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1] 1049 @ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3] 1050 1051 1052 @------------------------------------------------------------------------------ 1053 @ LSR (immediate) 1054 @------------------------------------------------------------------------------ 1055 lsr r2, r3, #12 1056 lsrs r8, r3, #32 1057 lsrs.w r2, r3, #1 1058 lsr r2, r3, #4 1059 lsrs r2, r12, #15 1060 1061 lsr r3, #19 1062 lsrs r8, #2 1063 lsrs.w r7, #5 1064 lsr.w r12, #21 1065 1066 @ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32] 1067 @ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08] 1068 @ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02] 1069 @ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12] 1070 @ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32] 1071 1072 @ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43] 1073 @ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08] 1074 @ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17] 1075 @ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c] 1076 1077 1078 @------------------------------------------------------------------------------ 1079 @ LSR (register) 1080 @------------------------------------------------------------------------------ 1081 lsr r3, r4, r2 1082 lsr.w r1, r2 1083 lsrs r3, r4, r8 1084 1085 @ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3] 1086 @ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1] 1087 @ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3] 1088 1089 @------------------------------------------------------------------------------ 1090 @ MCR/MCR2 1091 @------------------------------------------------------------------------------ 1092 mcr p7, #1, r5, c1, c1, #4 1093 mcr2 p7, #1, r5, c1, c1, #4 1094 mcr p14, #0, r4, c0, c5 1095 mcr2 p4, #2, r2, c1, c3 1096 1097 @ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57] 1098 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57] 1099 @ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e] 1100 @ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24] 1101 1102 1103 @------------------------------------------------------------------------------ 1104 @ MCRR/MCRR2 1105 @------------------------------------------------------------------------------ 1106 mcrr p7, #15, r5, r4, c1 1107 mcrr2 p7, #15, r5, r4, c1 1108 1109 @ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57] 1110 @ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57] 1111 1112 1113 @------------------------------------------------------------------------------ 1114 @ MLA/MLS 1115 @------------------------------------------------------------------------------ 1116 mla r1,r2,r3,r4 1117 mls r1,r2,r3,r4 1118 1119 @ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41] 1120 @ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41] 1121 1122 1123 @------------------------------------------------------------------------------ 1124 @ MOV(immediate) 1125 @------------------------------------------------------------------------------ 1126 movs r1, #21 1127 movs.w r1, #21 1128 movs r8, #21 1129 movw r0, #65535 1130 movw r1, #43777 1131 movw r1, #43792 1132 mov.w r0, #0x3fc0000 1133 mov r0, #0x3fc0000 1134 movs.w r0, #0x3fc0000 1135 itte eq 1136 movseq r1, #12 1137 moveq r1, #12 1138 movne.w r1, #12 1139 mov.w r6, #450 1140 it lo 1141 movlo r1, #-1 1142 1143 @ alias for mvn 1144 mov r3, #-3 1145 1146 1147 @ CHECK: movs r1, #21 @ encoding: [0x15,0x21] 1148 @ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01] 1149 @ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08] 1150 @ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70] 1151 @ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31] 1152 @ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31] 1153 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1154 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1155 @ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70] 1156 @ CHECK: itte eq @ encoding: [0x06,0xbf] 1157 @ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01] 1158 @ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21] 1159 @ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01] 1160 @ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76] 1161 @ CHECK: it lo @ encoding: [0x38,0xbf] 1162 @ CHECK: movlo.w r1, #-1 @ encoding: [0x4f,0xf0,0xff,0x31] 1163 @ CHECK: mvn r3, #2 @ encoding: [0x6f,0xf0,0x02,0x03] 1164 1165 @------------------------------------------------------------------------------ 1166 @ MOV(shifted register) 1167 @------------------------------------------------------------------------------ 1168 mov r6, r2, lsl #16 1169 mov r6, r2, lsr #16 1170 movs r6, r2, asr #32 1171 movs r6, r2, ror #5 1172 movs r4, r4, lsl r5 1173 movs r4, r4, lsr r5 1174 movs r4, r4, asr r5 1175 movs r4, r4, ror r5 1176 mov r4, r4, lsl r5 1177 movs r4, r4, ror r8 1178 movs r4, r5, lsr r6 1179 itttt eq 1180 moveq r4, r4, lsl r5 1181 moveq r4, r4, lsr r5 1182 moveq r4, r4, asr r5 1183 moveq r4, r4, ror r5 1184 mov r4, r4, rrx 1185 1186 @ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46] 1187 @ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46] 1188 @ CHECK: asrs r6, r2, #32 @ encoding: [0x16,0x10] 1189 @ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16] 1190 @ CHECK: lsls r4, r5 @ encoding: [0xac,0x40] 1191 @ CHECK: lsrs r4, r5 @ encoding: [0xec,0x40] 1192 @ CHECK: asrs r4, r5 @ encoding: [0x2c,0x41] 1193 @ CHECK: rors r4, r5 @ encoding: [0xec,0x41] 1194 @ CHECK: lsl.w r4, r4, r5 @ encoding: [0x04,0xfa,0x05,0xf4] 1195 @ CHECK: rors.w r4, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf4] 1196 @ CHECK: lsrs.w r4, r5, r6 @ encoding: [0x35,0xfa,0x06,0xf4] 1197 @ CHECK: itttt eq @ encoding: [0x01,0xbf] 1198 @ CHECK: lsleq r4, r5 @ encoding: [0xac,0x40] 1199 @ CHECK: lsreq r4, r5 @ encoding: [0xec,0x40] 1200 @ CHECK: asreq r4, r5 @ encoding: [0x2c,0x41] 1201 @ CHECK: roreq r4, r5 @ encoding: [0xec,0x41] 1202 @ CHECK: rrx r4, r4 @ encoding: [0x4f,0xea,0x34,0x04] 1203 1204 1205 @------------------------------------------------------------------------------ 1206 @ MOVT 1207 @------------------------------------------------------------------------------ 1208 movt r3, #7 1209 movt r6, #0xffff 1210 it eq 1211 movteq r4, #0xff0 1212 1213 @ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03] 1214 @ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76] 1215 @ CHECK: it eq @ encoding: [0x08,0xbf] 1216 @ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74] 1217 1218 @------------------------------------------------------------------------------ 1219 @ MRC/MRC2 1220 @------------------------------------------------------------------------------ 1221 mrc p14, #0, r1, c1, c2, #4 1222 mrc2 p14, #0, r1, c1, c2, #4 1223 mrc p11, #1, r1, c2, c2 1224 mrc2 p12, #3, r3, c3, c4 1225 1226 @ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e] 1227 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e] 1228 @ CHECK: mrc p11, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x1b] 1229 @ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c] 1230 1231 1232 @------------------------------------------------------------------------------ 1233 @ MRRC/MRRC2 1234 @------------------------------------------------------------------------------ 1235 mrrc p7, #1, r5, r4, c1 1236 mrrc2 p7, #1, r5, r4, c1 1237 1238 @ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57] 1239 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57] 1240 1241 1242 @------------------------------------------------------------------------------ 1243 @ MRS 1244 @------------------------------------------------------------------------------ 1245 mrs r8, apsr 1246 mrs r8, cpsr 1247 mrs r8, spsr 1248 1249 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1250 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1251 @ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88] 1252 1253 1254 @------------------------------------------------------------------------------ 1255 @ MSR 1256 @------------------------------------------------------------------------------ 1257 msr apsr, r1 1258 msr apsr_g, r2 1259 msr apsr_nzcvq, r3 1260 msr APSR_nzcvq, r4 1261 msr apsr_nzcvqg, r5 1262 msr cpsr_fc, r6 1263 msr cpsr_c, r7 1264 msr cpsr_x, r8 1265 msr cpsr_fc, r9 1266 msr cpsr_all, r11 1267 msr cpsr_fsx, r12 1268 msr spsr_fc, r0 1269 msr SPSR_fsxc, r5 1270 msr cpsr_fsxc, r8 1271 msr cpsr, r3 1272 1273 @ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88] 1274 @ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84] 1275 @ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88] 1276 @ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88] 1277 @ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c] 1278 @ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89] 1279 @ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81] 1280 @ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82] 1281 @ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89] 1282 @ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89] 1283 @ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e] 1284 @ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89] 1285 @ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f] 1286 @ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f] 1287 @ CHECK: msr CPSR_fc, r3 @ encoding: [0x83,0xf3,0x00,0x89] 1288 1289 1290 @------------------------------------------------------------------------------ 1291 @ MUL 1292 @------------------------------------------------------------------------------ 1293 muls r3, r4, r3 1294 mul r3, r4, r3 1295 mul r3, r4, r6 1296 it eq 1297 muleq r3, r4, r5 1298 it le 1299 mulle r4, r4, r8 1300 mul r5, r6 1301 1302 @ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43] 1303 @ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3] 1304 @ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3] 1305 @ CHECK: it eq @ encoding: [0x08,0xbf] 1306 @ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3] 1307 @ CHECK: it le @ encoding: [0xd8,0xbf] 1308 @ CHECK: mulle r4, r4, r8 @ encoding: [0x04,0xfb,0x08,0xf4] 1309 @ CHECK: mul r5, r6, r5 @ encoding: [0x06,0xfb,0x05,0xf5] 1310 1311 1312 @------------------------------------------------------------------------------ 1313 @ MVN(immediate) 1314 @------------------------------------------------------------------------------ 1315 mvns r8, #21 1316 mvn r0, #0x3fc0000 1317 mvns r0, #0x3fc0000 1318 itte eq 1319 mvnseq r1, #12 1320 mvneq.w r1, #12 1321 mvnne r1, #12 1322 1323 @ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08] 1324 @ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70] 1325 @ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70] 1326 @ CHECK: itte eq @ encoding: [0x06,0xbf] 1327 @ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01] 1328 @ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1329 @ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1330 1331 1332 @------------------------------------------------------------------------------ 1333 @ MVN(register) 1334 @------------------------------------------------------------------------------ 1335 mvn r2, r3 1336 mvns r2, r3 1337 mvn r5, r6, lsl #19 1338 mvn r5, r6, lsr #9 1339 mvn.w r5, r6, asr #4 1340 mvn r5, r6, ror #6 1341 mvn r5, r6, rrx 1342 it eq 1343 mvneq r2, r3 1344 1345 @ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02] 1346 @ CHECK: mvns r2, r3 @ encoding: [0xda,0x43] 1347 @ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45] 1348 @ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25] 1349 @ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15] 1350 @ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15] 1351 @ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05] 1352 @ CHECK: it eq @ encoding: [0x08,0xbf] 1353 @ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43] 1354 1355 @------------------------------------------------------------------------------ 1356 @ NEG 1357 @------------------------------------------------------------------------------ 1358 neg r5, r2 1359 neg r5, r8 1360 1361 @ CHECK: rsb.w r5, r2, #0 @ encoding: [0xc2,0xf1,0x00,0x05] 1362 @ CHECK: rsb.w r5, r8, #0 @ encoding: [0xc8,0xf1,0x00,0x05] 1363 1364 1365 @------------------------------------------------------------------------------ 1366 @ NOP 1367 @------------------------------------------------------------------------------ 1368 nop.w 1369 1370 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80] 1371 1372 1373 @------------------------------------------------------------------------------ 1374 @ ORN 1375 @------------------------------------------------------------------------------ 1376 orn r4, r5, #0xf000 1377 orn r4, r5, r6 1378 orns r4, r5, r6 1379 orn r4, r5, r6, lsl #5 1380 orns r4, r5, r6, lsr #5 1381 orn r4, r5, r6, lsr #5 1382 orns r4, r5, r6, asr #5 1383 orn r4, r5, r6, ror #5 1384 1385 @ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44] 1386 @ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04] 1387 @ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04] 1388 @ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14] 1389 @ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14] 1390 @ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14] 1391 @ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14] 1392 @ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14] 1393 1394 1395 @------------------------------------------------------------------------------ 1396 @ ORR 1397 @------------------------------------------------------------------------------ 1398 orr r4, r5, #0xf000 1399 orr r4, r5, r6 1400 orr r4, r5, r6, lsl #5 1401 orrs r4, r5, r6, lsr #5 1402 orr r4, r5, r6, lsr #5 1403 orrs r4, r5, r6, asr #5 1404 orr r4, r5, r6, ror #5 1405 1406 @ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44] 1407 @ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04] 1408 @ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14] 1409 @ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14] 1410 @ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14] 1411 @ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14] 1412 @ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14] 1413 1414 1415 @------------------------------------------------------------------------------ 1416 @ PKH 1417 @------------------------------------------------------------------------------ 1418 pkhbt r2, r2, r3 1419 pkhbt r2, r2, r3, lsl #31 1420 pkhbt r2, r2, r3, lsl #0 1421 pkhbt r2, r2, r3, lsl #15 1422 1423 pkhtb r2, r2, r3 1424 pkhtb r2, r2, r3, asr #31 1425 pkhtb r2, r2, r3, asr #15 1426 1427 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1428 @ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72] 1429 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1430 @ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32] 1431 1432 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1433 @ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72] 1434 @ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32] 1435 1436 1437 @------------------------------------------------------------------------------ 1438 @ PLD(immediate) 1439 @------------------------------------------------------------------------------ 1440 pld [r5, #-4] 1441 pld [r6, #32] 1442 pld [r6, #33] 1443 pld [r6, #257] 1444 pld [r7, #257] 1445 pld [r1, #0] 1446 pld [r1, #-0] 1447 1448 @ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc] 1449 @ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0] 1450 @ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0] 1451 @ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1] 1452 @ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1] 1453 @ CHECK: pld [r1] @ encoding: [0x91,0xf8,0x00,0xf0] 1454 @ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc] 1455 1456 1457 @------------------------------------------------------------------------------ 1458 @ PLD(literal) 1459 @------------------------------------------------------------------------------ 1460 @ pld _foo 1461 1462 @ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A'] 1463 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1464 1465 1466 @------------------------------------------------------------------------------ 1467 @ PLD(register) 1468 @------------------------------------------------------------------------------ 1469 pld [r8, r1] 1470 pld [r5, r2] 1471 pld [r0, r2, lsl #3] 1472 pld [r8, r2, lsl #2] 1473 pld [sp, r2, lsl #1] 1474 pld [sp, r2, lsl #0] 1475 1476 @ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0] 1477 @ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0] 1478 @ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0] 1479 @ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0] 1480 @ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0] 1481 @ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0] 1482 1483 @------------------------------------------------------------------------------ 1484 @ PLI(immediate) 1485 @------------------------------------------------------------------------------ 1486 pli [r5, #-4] 1487 pli [r6, #32] 1488 pli [r6, #33] 1489 pli [r6, #257] 1490 pli [r7, #257] 1491 1492 @ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc] 1493 @ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0] 1494 @ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0] 1495 @ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1] 1496 @ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1] 1497 1498 1499 @------------------------------------------------------------------------------ 1500 @ PLI(literal) 1501 @------------------------------------------------------------------------------ 1502 @ pli _foo 1503 1504 1505 @ FIXME: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A'] 1506 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1507 1508 1509 @------------------------------------------------------------------------------ 1510 @ PLI(register) 1511 @------------------------------------------------------------------------------ 1512 pli [r8, r1] 1513 pli [r5, r2] 1514 pli [r0, r2, lsl #3] 1515 pli [r8, r2, lsl #2] 1516 pli [sp, r2, lsl #1] 1517 pli [sp, r2, lsl #0] 1518 1519 @ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0] 1520 @ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0] 1521 @ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0] 1522 @ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0] 1523 @ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0] 1524 @ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0] 1525 1526 @------------------------------------------------------------------------------ 1527 @ POP (alias) 1528 @------------------------------------------------------------------------------ 1529 pop {r2, r9} 1530 1531 @ CHECK: pop.w {r2, r9} @ encoding: [0xbd,0xe8,0x04,0x02] 1532 1533 1534 @------------------------------------------------------------------------------ 1535 @ PUSH (alias) 1536 @------------------------------------------------------------------------------ 1537 push {r2, r9} 1538 1539 @ CHECK: push.w {r2, r9} @ encoding: [0x2d,0xe9,0x04,0x02] 1540 1541 1542 @------------------------------------------------------------------------------ 1543 @ QADD/QADD16/QADD8 1544 @------------------------------------------------------------------------------ 1545 qadd r1, r2, r3 1546 qadd16 r1, r2, r3 1547 qadd8 r1, r2, r3 1548 itte gt 1549 qaddgt r1, r2, r3 1550 qadd16gt r1, r2, r3 1551 qadd8le r1, r2, r3 1552 1553 @ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1554 @ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1555 @ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1556 @ CHECK: itte gt @ encoding: [0xc6,0xbf] 1557 @ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1558 @ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1559 @ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1560 1561 1562 @------------------------------------------------------------------------------ 1563 @ QDADD/QDSUB 1564 @------------------------------------------------------------------------------ 1565 qdadd r6, r7, r8 1566 qdsub r6, r7, r8 1567 itt hi 1568 qdaddhi r6, r7, r8 1569 qdsubhi r6, r7, r8 1570 1571 @ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1572 @ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1573 @ CHECK: itt hi @ encoding: [0x84,0xbf] 1574 @ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1575 @ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1576 1577 1578 @------------------------------------------------------------------------------ 1579 @ QSAX 1580 @------------------------------------------------------------------------------ 1581 qsax r9, r12, r0 1582 it eq 1583 qsaxeq r9, r12, r0 1584 1585 @ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1586 @ CHECK: it eq @ encoding: [0x08,0xbf] 1587 @ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1588 1589 1590 @------------------------------------------------------------------------------ 1591 @ QSUB/QSUB16/QSUB8 1592 @------------------------------------------------------------------------------ 1593 qsub r1, r2, r3 1594 qsub16 r1, r2, r3 1595 qsub8 r1, r2, r3 1596 itet le 1597 qsuble r1, r2, r3 1598 qsub16gt r1, r2, r3 1599 qsub8le r1, r2, r3 1600 1601 @ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1602 @ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1603 @ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1604 @ CHECK: itet le @ encoding: [0xd6,0xbf] 1605 @ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1606 @ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1607 @ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1608 1609 1610 @------------------------------------------------------------------------------ 1611 @ RBIT 1612 @------------------------------------------------------------------------------ 1613 rbit r1, r2 1614 it ne 1615 rbitne r1, r2 1616 1617 @ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1618 @ CHECK: it ne @ encoding: [0x18,0xbf] 1619 @ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1620 1621 1622 @------------------------------------------------------------------------------ 1623 @ REV 1624 @------------------------------------------------------------------------------ 1625 rev.w r1, r2 1626 rev r2, r8 1627 itt ne 1628 revne r1, r2 1629 revne r1, r8 1630 1631 @ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1] 1632 @ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2] 1633 @ CHECK: itt ne @ encoding: [0x1c,0xbf] 1634 @ CHECK: revne r1, r2 @ encoding: [0x11,0xba] 1635 @ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1] 1636 1637 1638 @------------------------------------------------------------------------------ 1639 @ REV16 1640 @------------------------------------------------------------------------------ 1641 rev16.w r1, r2 1642 rev16 r2, r8 1643 itt ne 1644 rev16ne r1, r2 1645 rev16ne r1, r8 1646 1647 @ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1] 1648 @ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2] 1649 @ CHECK: itt ne @ encoding: [0x1c,0xbf] 1650 @ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba] 1651 @ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1] 1652 1653 1654 @------------------------------------------------------------------------------ 1655 @ REVSH 1656 @------------------------------------------------------------------------------ 1657 revsh.w r1, r2 1658 revsh r2, r8 1659 itt ne 1660 revshne r1, r2 1661 revshne r1, r8 1662 1663 @ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1] 1664 @ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2] 1665 @ CHECK: itt ne @ encoding: [0x1c,0xbf] 1666 @ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba] 1667 @ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1] 1668 1669 1670 @------------------------------------------------------------------------------ 1671 @ ROR (immediate) 1672 @------------------------------------------------------------------------------ 1673 ror r2, r3, #12 1674 rors r8, r3, #31 1675 rors.w r2, r3, #1 1676 ror r2, r3, #4 1677 rors r2, r12, #15 1678 1679 ror r3, #19 1680 rors r8, #2 1681 rors.w r7, #5 1682 ror.w r12, #21 1683 1684 @ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32] 1685 @ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78] 1686 @ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02] 1687 @ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12] 1688 @ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32] 1689 1690 @ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43] 1691 @ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08] 1692 @ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17] 1693 @ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c] 1694 1695 1696 @------------------------------------------------------------------------------ 1697 @ ROR (register) 1698 @------------------------------------------------------------------------------ 1699 ror r3, r4, r2 1700 ror.w r1, r2 1701 rors r3, r4, r8 1702 1703 @ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3] 1704 @ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1] 1705 @ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3] 1706 1707 1708 @------------------------------------------------------------------------------ 1709 @ RRX 1710 @------------------------------------------------------------------------------ 1711 rrx r1, r2 1712 rrxs r1, r2 1713 ite lt 1714 rrxlt r9, r12 1715 rrxsge r8, r3 1716 1717 @ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01] 1718 @ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01] 1719 @ CHECK: ite lt @ encoding: [0xb4,0xbf] 1720 @ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09] 1721 @ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08] 1722 1723 @------------------------------------------------------------------------------ 1724 @ RSB (immediate) 1725 @------------------------------------------------------------------------------ 1726 rsb r2, r5, #0xff000 1727 rsbs r3, r12, #0xf 1728 rsb r1, #0xff 1729 rsb r1, r1, #0xff 1730 rsb r11, r11, #0 1731 rsb r9, #0 1732 rsbs r3, r1, #0 1733 rsb r3, r1, #0 1734 1735 @ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22] 1736 @ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03] 1737 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1738 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1739 @ CHECK: rsb.w r11, r11, #0 @ encoding: [0xcb,0xf1,0x00,0x0b] 1740 @ CHECK: rsb.w r9, r9, #0 @ encoding: [0xc9,0xf1,0x00,0x09] 1741 @ CHECK: rsbs r3, r1, #0 @ encoding: [0x4b,0x42] 1742 @ CHECK: rsb.w r3, r1, #0 @ encoding: [0xc1,0xf1,0x00,0x03] 1743 1744 1745 @------------------------------------------------------------------------------ 1746 @ RSB (register) 1747 @------------------------------------------------------------------------------ 1748 rsb r4, r8 1749 rsb r4, r9, r8 1750 rsb r1, r4, r8, asr #3 1751 rsbs r2, r1, r7, lsl #1 1752 1753 @ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04] 1754 @ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04] 1755 @ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01] 1756 @ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02] 1757 1758 1759 @------------------------------------------------------------------------------ 1760 @ SADD16 1761 @------------------------------------------------------------------------------ 1762 sadd16 r3, r4, r8 1763 it ne 1764 sadd16ne r3, r4, r8 1765 1766 @ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1767 @ CHECK: it ne @ encoding: [0x18,0xbf] 1768 @ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1769 1770 1771 @------------------------------------------------------------------------------ 1772 @ SADD8 1773 @------------------------------------------------------------------------------ 1774 sadd8 r3, r4, r8 1775 it ne 1776 sadd8ne r3, r4, r8 1777 1778 @ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1779 @ CHECK: it ne @ encoding: [0x18,0xbf] 1780 @ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1781 1782 1783 @------------------------------------------------------------------------------ 1784 @ SASX 1785 @------------------------------------------------------------------------------ 1786 saddsubx r9, r2, r7 1787 it ne 1788 saddsubxne r2, r5, r6 1789 sasx r9, r2, r7 1790 it ne 1791 sasxne r2, r5, r6 1792 1793 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1794 @ CHECK: it ne @ encoding: [0x18,0xbf] 1795 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1796 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1797 @ CHECK: it ne @ encoding: [0x18,0xbf] 1798 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1799 1800 1801 @------------------------------------------------------------------------------ 1802 @ SBC (immediate) 1803 @------------------------------------------------------------------------------ 1804 sbc r0, r1, #4 1805 sbcs r0, r1, #0 1806 sbc r1, r2, #255 1807 sbc r3, r7, #0x00550055 1808 sbc r8, r12, #0xaa00aa00 1809 sbc r9, r7, #0xa5a5a5a5 1810 sbc r5, r3, #0x87000000 1811 sbc r4, r2, #0x7f800000 1812 sbc r4, r2, #0x00000680 1813 1814 @ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00] 1815 @ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00] 1816 @ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01] 1817 @ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13] 1818 @ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28] 1819 @ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39] 1820 @ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45] 1821 @ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44] 1822 @ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64] 1823 1824 1825 @------------------------------------------------------------------------------ 1826 @ SBC (register) 1827 @------------------------------------------------------------------------------ 1828 sbc r4, r5, r6 1829 sbcs r4, r5, r6 1830 sbc.w r9, r1, r3 1831 sbcs.w r9, r1, r3 1832 sbc r0, r1, r3, ror #4 1833 sbcs r0, r1, r3, lsl #7 1834 sbc.w r0, r1, r3, lsr #31 1835 sbcs.w r0, r1, r3, asr #32 1836 1837 @ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04] 1838 @ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04] 1839 @ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09] 1840 @ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09] 1841 @ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10] 1842 @ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10] 1843 @ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70] 1844 @ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00] 1845 1846 1847 @------------------------------------------------------------------------------ 1848 @ SBFX 1849 @------------------------------------------------------------------------------ 1850 sbfx r4, r5, #16, #1 1851 it gt 1852 sbfxgt r4, r5, #16, #16 1853 1854 @ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44] 1855 @ CHECK: it gt @ encoding: [0xc8,0xbf] 1856 @ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44] 1857 1858 1859 @------------------------------------------------------------------------------ 1860 @ SEL 1861 @------------------------------------------------------------------------------ 1862 sel r5, r9, r2 1863 it le 1864 selle r5, r9, r2 1865 1866 @ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1867 @ CHECK: it le @ encoding: [0xd8,0xbf] 1868 @ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1869 1870 1871 @------------------------------------------------------------------------------ 1872 @ SEV 1873 @------------------------------------------------------------------------------ 1874 sev.w 1875 it eq 1876 seveq.w 1877 1878 @ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80] 1879 @ CHECK: it eq @ encoding: [0x08,0xbf] 1880 @ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80] 1881 1882 1883 @------------------------------------------------------------------------------ 1884 @ SADD16/SADD8 1885 @------------------------------------------------------------------------------ 1886 sadd16 r1, r2, r3 1887 sadd8 r1, r2, r3 1888 ite gt 1889 sadd16gt r1, r2, r3 1890 sadd8le r1, r2, r3 1891 1892 @ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1893 @ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 1894 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 1895 @ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1896 @ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 1897 1898 1899 @------------------------------------------------------------------------------ 1900 @ SHASX 1901 @------------------------------------------------------------------------------ 1902 shasx r4, r8, r2 1903 it gt 1904 shasxgt r4, r8, r2 1905 shaddsubx r4, r8, r2 1906 it gt 1907 shaddsubxgt r4, r8, r2 1908 1909 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1910 @ CHECK: it gt @ encoding: [0xc8,0xbf] 1911 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1912 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1913 @ CHECK: it gt @ encoding: [0xc8,0xbf] 1914 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1915 1916 1917 @------------------------------------------------------------------------------ 1918 @ SHASX 1919 @------------------------------------------------------------------------------ 1920 shsax r4, r8, r2 1921 it gt 1922 shsaxgt r4, r8, r2 1923 shsubaddx r4, r8, r2 1924 it gt 1925 shsubaddxgt r4, r8, r2 1926 1927 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1928 @ CHECK: it gt @ encoding: [0xc8,0xbf] 1929 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1930 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1931 @ CHECK: it gt @ encoding: [0xc8,0xbf] 1932 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1933 1934 1935 @------------------------------------------------------------------------------ 1936 @ SHSUB16/SHSUB8 1937 @------------------------------------------------------------------------------ 1938 shsub16 r4, r8, r2 1939 shsub8 r4, r8, r2 1940 itt gt 1941 shsub16gt r4, r8, r2 1942 shsub8gt r4, r8, r2 1943 1944 @ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 1945 @ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 1946 @ CHECK: itt gt @ encoding: [0xc4,0xbf] 1947 @ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 1948 @ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 1949 1950 1951 @------------------------------------------------------------------------------ 1952 @ SMLABB/SMLABT/SMLATB/SMLATT 1953 @------------------------------------------------------------------------------ 1954 smlabb r3, r1, r9, r0 1955 smlabt r5, r6, r4, r1 1956 smlatb r4, r2, r3, r2 1957 smlatt r8, r3, r8, r4 1958 itete gt 1959 smlabbgt r3, r1, r9, r0 1960 smlabtle r5, r6, r4, r1 1961 smlatbgt r4, r2, r3, r2 1962 smlattle r8, r3, r8, r4 1963 1964 @ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 1965 @ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 1966 @ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 1967 @ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 1968 @ CHECK: itete gt @ encoding: [0xcb,0xbf] 1969 @ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 1970 @ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 1971 @ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 1972 @ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 1973 1974 1975 @------------------------------------------------------------------------------ 1976 @ SMLAD/SMLADX 1977 @------------------------------------------------------------------------------ 1978 smlad r2, r3, r5, r8 1979 smladx r2, r3, r5, r8 1980 itt hi 1981 smladhi r2, r3, r5, r8 1982 smladxhi r2, r3, r5, r8 1983 1984 @ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 1985 @ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 1986 @ CHECK: itt hi @ encoding: [0x84,0xbf] 1987 @ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 1988 @ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 1989 1990 1991 @------------------------------------------------------------------------------ 1992 @ SMLAL 1993 @------------------------------------------------------------------------------ 1994 smlal r2, r3, r5, r8 1995 it eq 1996 smlaleq r2, r3, r5, r8 1997 1998 @ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 1999 @ CHECK: it eq @ encoding: [0x08,0xbf] 2000 @ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 2001 2002 2003 @------------------------------------------------------------------------------ 2004 @ SMLALBB/SMLALBT/SMLALTB/SMLALTT 2005 @------------------------------------------------------------------------------ 2006 smlalbb r3, r1, r9, r0 2007 smlalbt r5, r6, r4, r1 2008 smlaltb r4, r2, r3, r2 2009 smlaltt r8, r3, r8, r4 2010 iteet ge 2011 smlalbbge r3, r1, r9, r0 2012 smlalbtlt r5, r6, r4, r1 2013 smlaltblt r4, r2, r3, r2 2014 smlalttge r8, r3, r8, r4 2015 2016 @ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 2017 @ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 2018 @ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 2019 @ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 2020 @ CHECK: iteet ge @ encoding: [0xad,0xbf] 2021 @ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 2022 @ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 2023 @ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 2024 @ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 2025 2026 2027 @------------------------------------------------------------------------------ 2028 @ SMLALD/SMLALDX 2029 @------------------------------------------------------------------------------ 2030 smlald r2, r3, r5, r8 2031 smlaldx r2, r3, r5, r8 2032 ite eq 2033 smlaldeq r2, r3, r5, r8 2034 smlaldxne r2, r3, r5, r8 2035 2036 @ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 2037 @ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 2038 @ CHECK: ite eq @ encoding: [0x0c,0xbf] 2039 @ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 2040 @ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 2041 2042 2043 @------------------------------------------------------------------------------ 2044 @ SMLAWB/SMLAWT 2045 @------------------------------------------------------------------------------ 2046 smlawb r2, r3, r10, r8 2047 smlawt r8, r3, r5, r9 2048 ite eq 2049 smlawbeq r2, r7, r5, r8 2050 smlawtne r1, r3, r0, r8 2051 2052 @ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82] 2053 @ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98] 2054 @ CHECK: ite eq @ encoding: [0x0c,0xbf] 2055 @ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82] 2056 @ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81] 2057 2058 2059 @------------------------------------------------------------------------------ 2060 @ SMLSD/SMLSDX 2061 @------------------------------------------------------------------------------ 2062 smlsd r2, r3, r5, r8 2063 smlsdx r2, r3, r5, r8 2064 ite le 2065 smlsdle r2, r3, r5, r8 2066 smlsdxgt r2, r3, r5, r8 2067 2068 @ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 2069 @ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 2070 @ CHECK: ite le @ encoding: [0xd4,0xbf] 2071 @ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 2072 @ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 2073 2074 2075 @------------------------------------------------------------------------------ 2076 @ SMLSLD/SMLSLDX 2077 @------------------------------------------------------------------------------ 2078 smlsld r2, r9, r5, r1 2079 smlsldx r4, r11, r2, r8 2080 ite ge 2081 smlsldge r8, r2, r5, r6 2082 smlsldxlt r1, r0, r3, r8 2083 2084 @ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29] 2085 @ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b] 2086 @ CHECK: ite ge @ encoding: [0xac,0xbf] 2087 @ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82] 2088 @ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10] 2089 2090 2091 @------------------------------------------------------------------------------ 2092 @ SMMLA/SMMLAR 2093 @------------------------------------------------------------------------------ 2094 smmla r1, r2, r3, r4 2095 smmlar r4, r3, r2, r1 2096 ite lo 2097 smmlalo r1, r2, r3, r4 2098 smmlarcs r4, r3, r2, r1 2099 2100 @ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 2101 @ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 2102 @ CHECK: ite lo @ encoding: [0x34,0xbf] 2103 @ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 2104 @ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 2105 2106 2107 @------------------------------------------------------------------------------ 2108 @ SMMLS/SMMLSR 2109 @------------------------------------------------------------------------------ 2110 smmls r1, r2, r3, r4 2111 smmlsr r4, r3, r2, r1 2112 ite lo 2113 smmlslo r1, r2, r3, r4 2114 smmlsrcs r4, r3, r2, r1 2115 2116 @ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 2117 @ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 2118 @ CHECK: ite lo @ encoding: [0x34,0xbf] 2119 @ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 2120 @ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 2121 2122 2123 @------------------------------------------------------------------------------ 2124 @ SMMUL/SMMULR 2125 @------------------------------------------------------------------------------ 2126 smmul r2, r3, r4 2127 smmulr r3, r2, r1 2128 ite cc 2129 smmulcc r2, r3, r4 2130 smmulrhs r3, r2, r1 2131 2132 @ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 2133 @ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 2134 @ CHECK: ite lo @ encoding: [0x34,0xbf] 2135 @ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 2136 @ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 2137 2138 2139 @------------------------------------------------------------------------------ 2140 @ SMUAD/SMUADX 2141 @------------------------------------------------------------------------------ 2142 smuad r2, r3, r4 2143 smuadx r3, r2, r1 2144 ite lt 2145 smuadlt r2, r3, r4 2146 smuadxge r3, r2, r1 2147 2148 @ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 2149 @ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 2150 @ CHECK: ite lt @ encoding: [0xb4,0xbf] 2151 @ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 2152 @ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 2153 2154 2155 @------------------------------------------------------------------------------ 2156 @ SMULBB/SMULBT/SMULTB/SMULTT 2157 @------------------------------------------------------------------------------ 2158 smulbb r3, r9, r0 2159 smulbt r5, r4, r1 2160 smultb r4, r2, r2 2161 smultt r8, r3, r4 2162 itete ge 2163 smulbbge r1, r9, r0 2164 smulbtlt r5, r6, r4 2165 smultbge r2, r3, r2 2166 smulttlt r8, r3, r4 2167 2168 @ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3] 2169 @ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5] 2170 @ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4] 2171 @ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 2172 @ CHECK: itete ge @ encoding: [0xab,0xbf] 2173 @ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1] 2174 @ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5] 2175 @ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2] 2176 @ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 2177 2178 2179 @------------------------------------------------------------------------------ 2180 @ SMULL 2181 @------------------------------------------------------------------------------ 2182 smull r3, r9, r0, r1 2183 it eq 2184 smulleq r8, r3, r4, r5 2185 2186 @ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39] 2187 @ CHECK: it eq @ encoding: [0x08,0xbf] 2188 @ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83] 2189 2190 2191 @------------------------------------------------------------------------------ 2192 @ SMULWB/SMULWT 2193 @------------------------------------------------------------------------------ 2194 smulwb r3, r9, r0 2195 smulwt r3, r9, r2 2196 ite gt 2197 smulwbgt r3, r9, r0 2198 smulwtle r3, r9, r2 2199 2200 @ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2201 @ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2202 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 2203 @ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2204 @ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2205 2206 2207 @------------------------------------------------------------------------------ 2208 @ SMUSD/SMUSDX 2209 @------------------------------------------------------------------------------ 2210 smusd r3, r0, r1 2211 smusdx r3, r9, r2 2212 ite eq 2213 smusdeq r8, r3, r2 2214 smusdxne r7, r4, r3 2215 2216 @ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3] 2217 @ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3] 2218 @ CHECK: ite eq @ encoding: [0x0c,0xbf] 2219 @ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8] 2220 @ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7] 2221 2222 2223 @------------------------------------------------------------------------------ 2224 @ SRS 2225 @------------------------------------------------------------------------------ 2226 srsdb sp, #1 2227 srsia sp, #0 2228 2229 srsdb sp!, #19 2230 srsia sp!, #2 2231 2232 srsea sp, #10 2233 srsfd sp, #9 2234 2235 srsea sp!, #5 2236 srsfd sp!, #5 2237 2238 srs sp, #5 2239 srs sp!, #5 2240 2241 @ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0] 2242 @ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0] 2243 @ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0] 2244 @ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0] 2245 @ CHECK: srsdb sp, #10 @ encoding: [0x0d,0xe8,0x0a,0xc0] 2246 @ CHECK: srsia sp, #9 @ encoding: [0x8d,0xe9,0x09,0xc0] 2247 @ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0] 2248 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2249 @ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0] 2250 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2251 2252 2253 @------------------------------------------------------------------------------ 2254 @ SSAT 2255 @------------------------------------------------------------------------------ 2256 ssat r8, #1, r10 2257 ssat r8, #1, r10, lsl #0 2258 ssat r8, #1, r10, lsl #31 2259 ssat r8, #1, r10, asr #1 2260 2261 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2262 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2263 @ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78] 2264 @ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08] 2265 2266 2267 @------------------------------------------------------------------------------ 2268 @ SSAT16 2269 @------------------------------------------------------------------------------ 2270 ssat16 r2, #1, r7 2271 ssat16 r3, #16, r5 2272 2273 @ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02] 2274 @ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03] 2275 2276 2277 @------------------------------------------------------------------------------ 2278 @ SSAX 2279 @------------------------------------------------------------------------------ 2280 ssubaddx r2, r3, r4 2281 it lt 2282 ssubaddxlt r2, r3, r4 2283 ssax r2, r3, r4 2284 it lt 2285 ssaxlt r2, r3, r4 2286 2287 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2288 @ CHECK: it lt @ encoding: [0xb8,0xbf] 2289 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2290 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2291 @ CHECK: it lt @ encoding: [0xb8,0xbf] 2292 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2293 2294 2295 @------------------------------------------------------------------------------ 2296 @ SSUB16/SSUB8 2297 @------------------------------------------------------------------------------ 2298 ssub16 r1, r0, r6 2299 ssub8 r9, r2, r4 2300 ite ne 2301 ssub16ne r5, r3, r2 2302 ssub8eq r5, r1, r2 2303 2304 @ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1] 2305 @ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9] 2306 @ CHECK: ite ne @ encoding: [0x14,0xbf] 2307 @ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5] 2308 @ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5] 2309 2310 2311 @------------------------------------------------------------------------------ 2312 @ STC{L}/STC2{L} 2313 @------------------------------------------------------------------------------ 2314 stc2 p0, c8, [r1, #4] 2315 stc2 p1, c7, [r2] 2316 stc2 p2, c6, [r3, #-224] 2317 stc2 p3, c5, [r4, #-120]! 2318 stc2 p4, c4, [r5], #16 2319 stc2 p5, c3, [r6], #-72 2320 stc2l p6, c2, [r7, #4] 2321 stc2l p7, c1, [r8] 2322 stc2l p8, c0, [r9, #-224] 2323 stc2l p9, c1, [r10, #-120]! 2324 stc2l p10, c2, [r11], #16 2325 stc2l p11, c3, [r12], #-72 2326 2327 stc p12, c4, [r0, #4] 2328 stc p13, c5, [r1] 2329 stc p14, c6, [r2, #-224] 2330 stc p15, c7, [r3, #-120]! 2331 stc p5, c8, [r4], #16 2332 stc p4, c9, [r5], #-72 2333 stcl p3, c10, [r6, #4] 2334 stcl p2, c11, [r7] 2335 stcl p1, c12, [r8, #-224] 2336 stcl p0, c13, [r9, #-120]! 2337 stcl p6, c14, [r10], #16 2338 stcl p7, c15, [r11], #-72 2339 2340 stc2 p2, c8, [r1], { 25 } 2341 2342 @ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x81,0xfd,0x01,0x80] 2343 @ CHECK: stc2 p1, c7, [r2] @ encoding: [0x82,0xfd,0x00,0x71] 2344 @ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x03,0xfd,0x38,0x62] 2345 @ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x24,0xfd,0x1e,0x53] 2346 @ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0xa5,0xfc,0x04,0x44] 2347 @ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x26,0xfc,0x12,0x35] 2348 @ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0xc7,0xfd,0x01,0x26] 2349 @ CHECK: stc2l p7, c1, [r8] @ encoding: [0xc8,0xfd,0x00,0x17] 2350 @ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x49,0xfd,0x38,0x08] 2351 @ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x6a,0xfd,0x1e,0x19] 2352 @ CHECK: stc2l p10, c2, [r11], #16 @ encoding: [0xeb,0xfc,0x04,0x2a] 2353 @ CHECK: stc2l p11, c3, [r12], #-72 @ encoding: [0x6c,0xfc,0x12,0x3b] 2354 2355 @ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x80,0xed,0x01,0x4c] 2356 @ CHECK: stc p13, c5, [r1] @ encoding: [0x81,0xed,0x00,0x5d] 2357 @ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x02,0xed,0x38,0x6e] 2358 @ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x23,0xed,0x1e,0x7f] 2359 @ CHECK: stc p5, c8, [r4], #16 @ encoding: [0xa4,0xec,0x04,0x85] 2360 @ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x25,0xec,0x12,0x94] 2361 @ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0xc6,0xed,0x01,0xa3] 2362 @ CHECK: stcl p2, c11, [r7] @ encoding: [0xc7,0xed,0x00,0xb2] 2363 @ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x48,0xed,0x38,0xc1] 2364 @ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x69,0xed,0x1e,0xd0] 2365 @ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0xea,0xec,0x04,0xe6] 2366 @ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x6b,0xec,0x12,0xf7] 2367 2368 @ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x81,0xfc,0x19,0x82] 2369 2370 2371 @------------------------------------------------------------------------------ 2372 @ STMIA 2373 @------------------------------------------------------------------------------ 2374 stmia.w r4, {r4, r5, r8, r9} 2375 stmia.w r4, {r5, r6} 2376 stmia.w r5!, {r3, r8} 2377 stm.w r4, {r4, r5, r8, r9} 2378 stm.w r4, {r5, r6} 2379 stm.w r5!, {r3, r8} 2380 stm.w r5!, {r1, r2} 2381 stm.w r2, {r1, r2} 2382 2383 stmia r4, {r4, r5, r8, r9} 2384 stmia r4, {r5, r6} 2385 stmia r5!, {r3, r8} 2386 stm r4, {r4, r5, r8, r9} 2387 stm r4, {r5, r6} 2388 stm r5!, {r3, r8} 2389 stmea r5!, {r3, r8} 2390 2391 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2392 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2393 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2394 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2395 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2396 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2397 @ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00] 2398 @ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00] 2399 2400 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2401 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2402 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2403 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2404 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2405 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2406 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2407 2408 2409 @------------------------------------------------------------------------------ 2410 @ STMDB 2411 @------------------------------------------------------------------------------ 2412 stmdb r4, {r4, r5, r8, r9} 2413 stmdb r4, {r5, r6} 2414 stmdb r5!, {r3, r8} 2415 stmea r5!, {r3, r8} 2416 stmdb.w r5, {r0, r1} 2417 2418 @ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03] 2419 @ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00] 2420 @ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01] 2421 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2422 @ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00] 2423 2424 2425 @------------------------------------------------------------------------------ 2426 @ STR(immediate) 2427 @------------------------------------------------------------------------------ 2428 str r5, [r5, #-4] 2429 str r5, [r6, #32] 2430 str r5, [r6, #33] 2431 str r5, [r6, #257] 2432 str.w pc, [r7, #257] 2433 str r2, [r4, #255]! 2434 str r8, [sp, #4]! 2435 str lr, [sp, #-4]! 2436 str r2, [r4], #255 2437 str r8, [sp], #4 2438 str lr, [sp], #-4 2439 2440 @ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c] 2441 @ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62] 2442 @ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50] 2443 @ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51] 2444 @ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1] 2445 @ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f] 2446 @ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f] 2447 @ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed] 2448 @ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b] 2449 @ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b] 2450 @ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9] 2451 2452 2453 @------------------------------------------------------------------------------ 2454 @ STR(register) 2455 @------------------------------------------------------------------------------ 2456 str r1, [r8, r1] 2457 str.w r4, [r5, r2] 2458 str r6, [r0, r2, lsl #3] 2459 str r8, [r8, r2, lsl #2] 2460 str r7, [sp, r2, lsl #1] 2461 str r7, [sp, r2, lsl #0] 2462 2463 @ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10] 2464 @ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40] 2465 @ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60] 2466 @ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80] 2467 @ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70] 2468 @ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70] 2469 2470 2471 @------------------------------------------------------------------------------ 2472 @ STRB(immediate) 2473 @------------------------------------------------------------------------------ 2474 strb r5, [r5, #-4] 2475 strb r5, [r6, #32] 2476 strb r5, [r6, #33] 2477 strb r5, [r6, #257] 2478 strb.w lr, [r7, #257] 2479 strb r5, [r8, #255]! 2480 strb r2, [r5, #4]! 2481 strb r1, [r4, #-4]! 2482 strb lr, [r3], #255 2483 strb r9, [r2], #4 2484 strb r3, [sp], #-4 2485 strb r4, [r8, #-0]! 2486 2487 @ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c] 2488 @ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50] 2489 @ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50] 2490 @ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51] 2491 @ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1] 2492 @ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f] 2493 @ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f] 2494 @ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d] 2495 @ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb] 2496 @ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b] 2497 @ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39] 2498 @ CHECK: strb r4, [r8, #-0]! @ encoding: [0x08,0xf8,0x00,0x4d] 2499 2500 2501 @------------------------------------------------------------------------------ 2502 @ STRB(register) 2503 @------------------------------------------------------------------------------ 2504 strb r1, [r8, r1] 2505 strb.w r4, [r5, r2] 2506 strb r6, [r0, r2, lsl #3] 2507 strb r8, [r8, r2, lsl #2] 2508 strb r7, [sp, r2, lsl #1] 2509 strb r7, [sp, r2, lsl #0] 2510 2511 @ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10] 2512 @ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40] 2513 @ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60] 2514 @ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80] 2515 @ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70] 2516 @ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70] 2517 2518 2519 @------------------------------------------------------------------------------ 2520 @ STRBT 2521 @------------------------------------------------------------------------------ 2522 strbt r1, [r2] 2523 strbt r1, [r8, #0] 2524 strbt r1, [r8, #3] 2525 strbt r1, [r8, #255] 2526 2527 @ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e] 2528 @ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e] 2529 @ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e] 2530 @ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e] 2531 2532 2533 @------------------------------------------------------------------------------ 2534 @ STRD 2535 @------------------------------------------------------------------------------ 2536 strd r3, r5, [r6, #24] 2537 strd r3, r5, [r6, #24]! 2538 strd r3, r5, [r6], #4 2539 strd r3, r5, [r6], #-8 2540 strd r3, r5, [r6] 2541 strd r8, r1, [r3, #0] 2542 2543 @ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35] 2544 @ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35] 2545 @ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35] 2546 @ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35] 2547 @ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35] 2548 @ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81] 2549 2550 2551 @------------------------------------------------------------------------------ 2552 @ STREX/STREXB/STREXH/STREXD 2553 @------------------------------------------------------------------------------ 2554 strex r1, r8, [r4] 2555 strex r8, r2, [r4, #0] 2556 strex r2, r12, [sp, #128] 2557 strexb r5, r1, [r7] 2558 strexh r9, r7, [r12] 2559 strexd r9, r3, r6, [r4] 2560 2561 @ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81] 2562 @ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28] 2563 @ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2] 2564 @ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f] 2565 @ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f] 2566 @ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36] 2567 2568 2569 @------------------------------------------------------------------------------ 2570 @ STRH(immediate) 2571 @------------------------------------------------------------------------------ 2572 strh r5, [r5, #-4] 2573 strh r5, [r6, #32] 2574 strh r5, [r6, #33] 2575 strh r5, [r6, #257] 2576 strh.w lr, [r7, #257] 2577 strh r5, [r8, #255]! 2578 strh r2, [r5, #4]! 2579 strh r1, [r4, #-4]! 2580 strh lr, [r3], #255 2581 strh r9, [r2], #4 2582 strh r3, [sp], #-4 2583 2584 @ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c] 2585 @ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84] 2586 @ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50] 2587 @ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51] 2588 @ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1] 2589 @ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f] 2590 @ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f] 2591 @ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d] 2592 @ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb] 2593 @ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b] 2594 @ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39] 2595 2596 2597 @------------------------------------------------------------------------------ 2598 @ STRH(register) 2599 @------------------------------------------------------------------------------ 2600 strh r1, [r8, r1] 2601 strh.w r4, [r5, r2] 2602 strh r6, [r0, r2, lsl #3] 2603 strh r8, [r8, r2, lsl #2] 2604 strh r7, [sp, r2, lsl #1] 2605 strh r7, [sp, r2, lsl #0] 2606 2607 @ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10] 2608 @ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40] 2609 @ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60] 2610 @ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80] 2611 @ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70] 2612 @ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70] 2613 2614 2615 @------------------------------------------------------------------------------ 2616 @ STRHT 2617 @------------------------------------------------------------------------------ 2618 strht r1, [r2] 2619 strht r1, [r8, #0] 2620 strht r1, [r8, #3] 2621 strht r1, [r8, #255] 2622 2623 @ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e] 2624 @ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e] 2625 @ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e] 2626 @ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e] 2627 2628 2629 @------------------------------------------------------------------------------ 2630 @ STRT 2631 @------------------------------------------------------------------------------ 2632 strt r1, [r2] 2633 strt r1, [r8, #0] 2634 strt r1, [r8, #3] 2635 strt r1, [r8, #255] 2636 2637 @ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e] 2638 @ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e] 2639 @ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e] 2640 @ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e] 2641 2642 2643 @------------------------------------------------------------------------------ 2644 @ SUB (immediate) 2645 @------------------------------------------------------------------------------ 2646 itet eq 2647 subeq r1, r2, #4 2648 subwne r5, r3, #1023 2649 subeq r4, r5, #293 2650 sub r2, sp, #1024 2651 sub r2, r8, #0xff00 2652 sub r2, r3, #257 2653 subw r2, r3, #257 2654 sub r12, r6, #0x100 2655 subw r12, r6, #0x100 2656 subs r1, r2, #0x1f0 2657 sub r2, #1 2658 sub r0, r0, #32 2659 subs r2, r2, #56 2660 subs r2, #56 2661 2662 @ CHECK: itet eq @ encoding: [0x0a,0xbf] 2663 @ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f] 2664 @ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35] 2665 @ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14] 2666 @ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62] 2667 @ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42] 2668 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2669 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2670 @ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c] 2671 @ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c] 2672 @ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71] 2673 @ CHECK: sub.w r2, r2, #1 @ encoding: [0xa2,0xf1,0x01,0x02] 2674 @ CHECK: sub.w r0, r0, #32 @ encoding: [0xa0,0xf1,0x20,0x00] 2675 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a] 2676 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a] 2677 2678 2679 @------------------------------------------------------------------------------ 2680 @ SUB (register) 2681 @------------------------------------------------------------------------------ 2682 sub r4, r5, r6 2683 sub r4, r5, r6, lsl #5 2684 sub r4, r5, r6, lsr #5 2685 sub.w r4, r5, r6, lsr #5 2686 sub r4, r5, r6, asr #5 2687 sub r4, r5, r6, ror #5 2688 sub.w r5, r2, r12, rrx 2689 sub r2, sp, ip 2690 sub sp, sp, ip 2691 sub sp, ip 2692 sub.w r2, sp, ip 2693 sub.w sp, sp, ip 2694 sub.w sp, ip 2695 2696 @ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04] 2697 @ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14] 2698 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2699 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2700 @ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14] 2701 @ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14] 2702 @ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05] 2703 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02] 2704 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2705 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2706 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02] 2707 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2708 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2709 2710 2711 @------------------------------------------------------------------------------ 2712 @ SVC 2713 @------------------------------------------------------------------------------ 2714 svc #0 2715 ite eq 2716 svceq #255 2717 swine #33 2718 2719 @ CHECK: svc #0 @ encoding: [0x00,0xdf] 2720 @ CHECK: ite eq @ encoding: [0x0c,0xbf] 2721 @ CHECK: svceq #255 @ encoding: [0xff,0xdf] 2722 @ CHECK: svcne #33 @ encoding: [0x21,0xdf] 2723 2724 2725 @------------------------------------------------------------------------------ 2726 @ SXTAB 2727 @------------------------------------------------------------------------------ 2728 sxtab r2, r3, r4 2729 sxtab r4, r5, r6, ror #0 2730 it lt 2731 sxtablt r6, r2, r9, ror #8 2732 sxtab r5, r1, r4, ror #16 2733 sxtab r7, r8, r3, ror #24 2734 2735 @ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2] 2736 @ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4] 2737 @ CHECK: it lt @ encoding: [0xb8,0xbf] 2738 @ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6] 2739 @ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5] 2740 @ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7] 2741 2742 2743 @------------------------------------------------------------------------------ 2744 @ SXTAB16 2745 @------------------------------------------------------------------------------ 2746 sxtab16 r6, r2, r7, ror #0 2747 sxtab16 r3, r5, r8, ror #8 2748 sxtab16 r3, r2, r1, ror #16 2749 ite ne 2750 sxtab16ne r0, r1, r4 2751 sxtab16eq r1, r2, r3, ror #24 2752 2753 @ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6] 2754 @ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3] 2755 @ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3] 2756 @ CHECK: ite ne @ encoding: [0x14,0xbf] 2757 @ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0] 2758 @ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1] 2759 2760 2761 @------------------------------------------------------------------------------ 2762 @ SXTAH 2763 @------------------------------------------------------------------------------ 2764 sxtah r1, r3, r9 2765 sxtah r3, r8, r3, ror #8 2766 sxtah r9, r3, r3, ror #24 2767 ite hi 2768 sxtahhi r6, r1, r6, ror #0 2769 sxtahls r2, r2, r4, ror #16 2770 2771 @ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1] 2772 @ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3] 2773 @ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9] 2774 @ CHECK: ite hi @ encoding: [0x8c,0xbf] 2775 @ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6] 2776 @ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2] 2777 2778 2779 @------------------------------------------------------------------------------ 2780 @ SXTB 2781 @------------------------------------------------------------------------------ 2782 sxtb r5, r6, ror #0 2783 sxtb r6, r9, ror #8 2784 sxtb r8, r3, ror #24 2785 ite ge 2786 sxtbge r2, r4 2787 sxtblt r5, r1, ror #16 2788 sxtb.w r7, r8 2789 2790 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2791 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2792 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2793 @ CHECK: ite ge @ encoding: [0xac,0xbf] 2794 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2795 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2796 @ CHECK: sxtb.w r7, r8 @ encoding: [0x4f,0xfa,0x88,0xf7] 2797 2798 2799 @------------------------------------------------------------------------------ 2800 @ SXTB16 2801 @------------------------------------------------------------------------------ 2802 sxtb16 r1, r4 2803 sxtb16 r6, r7, ror #0 2804 sxtb16 r3, r1, ror #16 2805 ite cs 2806 sxtb16cs r3, r5, ror #8 2807 sxtb16lo r2, r3, ror #24 2808 2809 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2810 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2811 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2812 @ CHECK: ite hs @ encoding: [0x2c,0xbf] 2813 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2814 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2815 2816 2817 @------------------------------------------------------------------------------ 2818 @ SXTH 2819 @------------------------------------------------------------------------------ 2820 sxth r1, r6, ror #0 2821 sxth r3, r8, ror #8 2822 sxth r9, r3, ror #24 2823 itt ne 2824 sxthne r3, r9 2825 sxthne r2, r2, ror #16 2826 sxth.w r7, r8 2827 2828 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2829 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2830 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2831 @ CHECK: itt ne @ encoding: [0x1c,0xbf] 2832 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2833 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2834 @ CHECK: sxth.w r7, r8 @ encoding: [0x0f,0xfa,0x88,0xf7] 2835 2836 2837 @------------------------------------------------------------------------------ 2838 @ SXTB 2839 @------------------------------------------------------------------------------ 2840 sxtb r5, r6, ror #0 2841 sxtb.w r6, r9, ror #8 2842 sxtb r8, r3, ror #24 2843 ite ge 2844 sxtbge r2, r4 2845 sxtblt r5, r1, ror #16 2846 2847 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2848 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2849 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2850 @ CHECK: ite ge @ encoding: [0xac,0xbf] 2851 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2852 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2853 2854 2855 @------------------------------------------------------------------------------ 2856 @ SXTB16 2857 @------------------------------------------------------------------------------ 2858 sxtb16 r1, r4 2859 sxtb16 r6, r7, ror #0 2860 sxtb16 r3, r1, ror #16 2861 ite cs 2862 sxtb16cs r3, r5, ror #8 2863 sxtb16lo r2, r3, ror #24 2864 2865 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2866 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2867 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2868 @ CHECK: ite hs @ encoding: [0x2c,0xbf] 2869 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2870 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2871 2872 2873 @------------------------------------------------------------------------------ 2874 @ SXTH 2875 @------------------------------------------------------------------------------ 2876 sxth r1, r6, ror #0 2877 sxth.w r3, r8, ror #8 2878 sxth r9, r3, ror #24 2879 itt ne 2880 sxthne r3, r9 2881 sxthne r2, r2, ror #16 2882 2883 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2884 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2885 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2886 @ CHECK: itt ne @ encoding: [0x1c,0xbf] 2887 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2888 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2889 2890 2891 @------------------------------------------------------------------------------ 2892 @ TBB/TBH 2893 @------------------------------------------------------------------------------ 2894 tbb [r3, r8] 2895 tbh [r3, r8, lsl #1] 2896 it eq 2897 tbbeq [r3, r8] 2898 it cs 2899 tbhcs [r3, r8, lsl #1] 2900 2901 @ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 2902 @ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 2903 @ CHECK: it eq @ encoding: [0x08,0xbf] 2904 @ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 2905 @ CHECK: it hs @ encoding: [0x28,0xbf] 2906 @ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 2907 2908 2909 @------------------------------------------------------------------------------ 2910 @ TEQ 2911 @------------------------------------------------------------------------------ 2912 teq r5, #0xf000 2913 teq r4, r5 2914 teq r4, r5, lsl #5 2915 teq r4, r5, lsr #5 2916 teq r4, r5, lsr #5 2917 teq r4, r5, asr #5 2918 teq r4, r5, ror #5 2919 2920 @ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f] 2921 @ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f] 2922 @ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f] 2923 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 2924 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 2925 @ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f] 2926 @ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f] 2927 2928 2929 @------------------------------------------------------------------------------ 2930 @ TST 2931 @------------------------------------------------------------------------------ 2932 tst r5, #0xf000 2933 tst r2, r5 2934 tst r3, r12, lsl #5 2935 tst r4, r11, lsr #4 2936 tst r5, r10, lsr #12 2937 tst r6, r9, asr #30 2938 tst r7, r8, ror #2 2939 2940 @ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f] 2941 @ CHECK: tst r2, r5 @ encoding: [0x2a,0x42] 2942 @ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f] 2943 @ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f] 2944 @ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f] 2945 @ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f] 2946 @ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f] 2947 2948 2949 @------------------------------------------------------------------------------ 2950 @ UADD16/UADD8 2951 @------------------------------------------------------------------------------ 2952 uadd16 r1, r2, r3 2953 uadd8 r1, r2, r3 2954 ite gt 2955 uadd16gt r1, r2, r3 2956 uadd8le r1, r2, r3 2957 2958 @ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 2959 @ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 2960 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 2961 @ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 2962 @ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 2963 2964 2965 @------------------------------------------------------------------------------ 2966 @ UASX 2967 @------------------------------------------------------------------------------ 2968 uasx r9, r12, r0 2969 it eq 2970 uasxeq r9, r12, r0 2971 uaddsubx r9, r12, r0 2972 it eq 2973 uaddsubxeq r9, r12, r0 2974 2975 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 2976 @ CHECK: it eq @ encoding: [0x08,0xbf] 2977 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 2978 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 2979 @ CHECK: it eq @ encoding: [0x08,0xbf] 2980 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 2981 2982 2983 @------------------------------------------------------------------------------ 2984 @ UBFX 2985 @------------------------------------------------------------------------------ 2986 ubfx r4, r5, #16, #1 2987 it gt 2988 ubfxgt r4, r5, #16, #16 2989 2990 @ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0xc5,0xf3,0x00,0x44] 2991 @ CHECK: it gt @ encoding: [0xc8,0xbf] 2992 @ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0xc5,0xf3,0x0f,0x44] 2993 2994 2995 @------------------------------------------------------------------------------ 2996 @ UHADD16/UHADD8 2997 @------------------------------------------------------------------------------ 2998 uhadd16 r4, r8, r2 2999 uhadd8 r4, r8, r2 3000 itt gt 3001 uhadd16gt r4, r8, r2 3002 uhadd8gt r4, r8, r2 3003 3004 @ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4] 3005 @ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4] 3006 @ CHECK: itt gt @ encoding: [0xc4,0xbf] 3007 @ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4] 3008 @ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4] 3009 3010 3011 @------------------------------------------------------------------------------ 3012 @ UHASX/UHSAX 3013 @------------------------------------------------------------------------------ 3014 uhasx r4, r1, r5 3015 uhsax r5, r6, r6 3016 itt gt 3017 uhasxgt r6, r9, r8 3018 uhsaxgt r7, r8, r12 3019 uhaddsubx r4, r1, r5 3020 uhsubaddx r5, r6, r6 3021 itt gt 3022 uhaddsubxgt r6, r9, r8 3023 uhsubaddxgt r7, r8, r12 3024 3025 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4] 3026 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5] 3027 @ CHECK: itt gt @ encoding: [0xc4,0xbf] 3028 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6] 3029 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7] 3030 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4] 3031 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5] 3032 @ CHECK: itt gt @ encoding: [0xc4,0xbf] 3033 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6] 3034 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7] 3035 3036 3037 @------------------------------------------------------------------------------ 3038 @ UHSUB16/UHSUB8 3039 @------------------------------------------------------------------------------ 3040 uhsub16 r5, r8, r3 3041 uhsub8 r1, r7, r6 3042 itt lt 3043 uhsub16lt r4, r9, r12 3044 uhsub8lt r3, r1, r5 3045 3046 @ CHECK: uhsub16 r5, r8, r3 @ encoding: [0xd8,0xfa,0x63,0xf5] 3047 @ CHECK: uhsub8 r1, r7, r6 @ encoding: [0xc7,0xfa,0x66,0xf1] 3048 @ CHECK: itt lt @ encoding: [0xbc,0xbf] 3049 @ CHECK: uhsub16lt r4, r9, r12 @ encoding: [0xd9,0xfa,0x6c,0xf4] 3050 @ CHECK: uhsub8lt r3, r1, r5 @ encoding: [0xc1,0xfa,0x65,0xf3] 3051 3052 3053 @------------------------------------------------------------------------------ 3054 @ UMAAL 3055 @------------------------------------------------------------------------------ 3056 umaal r3, r4, r5, r6 3057 it lt 3058 umaallt r3, r4, r5, r6 3059 3060 @ CHECK: umaal r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34] 3061 @ CHECK: it lt @ encoding: [0xb8,0xbf] 3062 @ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34] 3063 3064 3065 @------------------------------------------------------------------------------ 3066 @ UMLAL 3067 @------------------------------------------------------------------------------ 3068 umlal r2, r4, r6, r8 3069 it gt 3070 umlalgt r6, r1, r2, r6 3071 3072 @ CHECK: umlal r2, r4, r6, r8 @ encoding: [0xe6,0xfb,0x08,0x24] 3073 @ CHECK: it gt @ encoding: [0xc8,0xbf] 3074 @ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0xe2,0xfb,0x06,0x61] 3075 3076 3077 @------------------------------------------------------------------------------ 3078 @ UMULL 3079 @------------------------------------------------------------------------------ 3080 umull r2, r4, r6, r8 3081 it gt 3082 umullgt r6, r1, r2, r6 3083 3084 @ CHECK: umull r2, r4, r6, r8 @ encoding: [0xa6,0xfb,0x08,0x24] 3085 @ CHECK: it gt @ encoding: [0xc8,0xbf] 3086 @ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0xa2,0xfb,0x06,0x61] 3087 3088 3089 @------------------------------------------------------------------------------ 3090 @ UQADD16/UQADD8 3091 @------------------------------------------------------------------------------ 3092 uqadd16 r1, r2, r3 3093 uqadd8 r3, r4, r8 3094 ite gt 3095 uqadd16gt r4, r7, r9 3096 uqadd8le r8, r1, r2 3097 3098 @ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x53,0xf1] 3099 @ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x58,0xf3] 3100 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 3101 @ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x97,0xfa,0x59,0xf4] 3102 @ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x81,0xfa,0x52,0xf8] 3103 3104 3105 @------------------------------------------------------------------------------ 3106 @ UQASX/UQSAX 3107 @------------------------------------------------------------------------------ 3108 uqasx r1, r2, r3 3109 uqsax r3, r4, r8 3110 ite gt 3111 uqasxgt r4, r7, r9 3112 uqsaxle r8, r1, r2 3113 3114 uqaddsubx r1, r2, r3 3115 uqsubaddx r3, r4, r8 3116 ite gt 3117 uqaddsubxgt r4, r7, r9 3118 uqsubaddxle r8, r1, r2 3119 3120 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1] 3121 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3] 3122 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 3123 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4] 3124 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8] 3125 3126 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1] 3127 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3] 3128 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 3129 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4] 3130 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8] 3131 3132 3133 @------------------------------------------------------------------------------ 3134 @ UQSUB16/UQSUB8 3135 @------------------------------------------------------------------------------ 3136 uqsub8 r8, r2, r9 3137 uqsub16 r1, r9, r7 3138 ite gt 3139 uqsub8gt r3, r1, r6 3140 uqsub16le r4, r6, r4 3141 3142 @ CHECK: uqsub8 r8, r2, r9 @ encoding: [0xc2,0xfa,0x59,0xf8] 3143 @ CHECK: uqsub16 r1, r9, r7 @ encoding: [0xd9,0xfa,0x57,0xf1] 3144 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 3145 @ CHECK: uqsub8gt r3, r1, r6 @ encoding: [0xc1,0xfa,0x56,0xf3] 3146 @ CHECK: uqsub16le r4, r6, r4 @ encoding: [0xd6,0xfa,0x54,0xf4] 3147 3148 3149 @------------------------------------------------------------------------------ 3150 @ UQSUB16/UQSUB8 3151 @------------------------------------------------------------------------------ 3152 usad8 r1, r9, r7 3153 usada8 r8, r2, r9, r12 3154 ite gt 3155 usada8gt r3, r1, r6, r9 3156 usad8le r4, r6, r4 3157 3158 @ CHECK: usad8 r1, r9, r7 @ encoding: [0x79,0xfb,0x07,0xf1] 3159 @ CHECK: usada8 r8, r2, r9, r12 @ encoding: [0x72,0xfb,0x09,0xc8] 3160 @ CHECK: ite gt @ encoding: [0xcc,0xbf] 3161 @ CHECK: usada8gt r3, r1, r6, r9 @ encoding: [0x71,0xfb,0x06,0x93] 3162 @ CHECK: usad8le r4, r6, r4 @ encoding: [0x76,0xfb,0x04,0xf4] 3163 3164 3165 @------------------------------------------------------------------------------ 3166 @ USAT 3167 @------------------------------------------------------------------------------ 3168 usat r8, #1, r10 3169 usat r8, #4, r10, lsl #0 3170 usat r8, #5, r10, lsl #31 3171 usat r8, #16, r10, asr #1 3172 3173 @ CHECK: usat r8, #1, r10 @ encoding: [0x8a,0xf3,0x01,0x08] 3174 @ CHECK: usat r8, #4, r10 @ encoding: [0x8a,0xf3,0x04,0x08] 3175 @ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x8a,0xf3,0xc5,0x78] 3176 @ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xaa,0xf3,0x50,0x08] 3177 3178 3179 @------------------------------------------------------------------------------ 3180 @ USAT16 3181 @------------------------------------------------------------------------------ 3182 usat16 r2, #2, r7 3183 usat16 r3, #15, r5 3184 3185 @ CHECK: usat16 r2, #2, r7 @ encoding: [0xa7,0xf3,0x02,0x02] 3186 @ CHECK: usat16 r3, #15, r5 @ encoding: [0xa5,0xf3,0x0f,0x03] 3187 3188 3189 @------------------------------------------------------------------------------ 3190 @ USAX 3191 @------------------------------------------------------------------------------ 3192 usax r2, r3, r4 3193 it ne 3194 usaxne r6, r1, r9 3195 usubaddx r2, r3, r4 3196 it ne 3197 usubaddxne r6, r1, r9 3198 3199 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2] 3200 @ CHECK: it ne @ encoding: [0x18,0xbf] 3201 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6] 3202 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2] 3203 @ CHECK: it ne @ encoding: [0x18,0xbf] 3204 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6] 3205 3206 3207 @------------------------------------------------------------------------------ 3208 @ USUB16/USUB8 3209 @------------------------------------------------------------------------------ 3210 usub16 r4, r2, r7 3211 usub8 r1, r8, r5 3212 ite hi 3213 usub16hi r1, r1, r3 3214 usub8ls r9, r2, r3 3215 3216 @ CHECK: usub16 r4, r2, r7 @ encoding: [0xd2,0xfa,0x47,0xf4] 3217 @ CHECK: usub8 r1, r8, r5 @ encoding: [0xc8,0xfa,0x45,0xf1] 3218 @ CHECK: ite hi @ encoding: [0x8c,0xbf] 3219 @ CHECK: usub16hi r1, r1, r3 @ encoding: [0xd1,0xfa,0x43,0xf1] 3220 @ CHECK: usub8ls r9, r2, r3 @ encoding: [0xc2,0xfa,0x43,0xf9] 3221 3222 3223 @------------------------------------------------------------------------------ 3224 @ UXTAB 3225 @------------------------------------------------------------------------------ 3226 uxtab r2, r3, r4 3227 uxtab r4, r5, r6, ror #0 3228 it lt 3229 uxtablt r6, r2, r9, ror #8 3230 uxtab r5, r1, r4, ror #16 3231 uxtab r7, r8, r3, ror #24 3232 3233 @ CHECK: uxtab r2, r3, r4 @ encoding: [0x53,0xfa,0x84,0xf2] 3234 @ CHECK: uxtab r4, r5, r6 @ encoding: [0x55,0xfa,0x86,0xf4] 3235 @ CHECK: it lt @ encoding: [0xb8,0xbf] 3236 @ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x52,0xfa,0x99,0xf6] 3237 @ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x51,0xfa,0xa4,0xf5] 3238 @ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x58,0xfa,0xb3,0xf7] 3239 3240 3241 @------------------------------------------------------------------------------ 3242 @ UXTAB16 3243 @------------------------------------------------------------------------------ 3244 it ge 3245 uxtab16ge r0, r1, r4 3246 uxtab16 r6, r2, r7, ror #0 3247 uxtab16 r3, r5, r8, ror #8 3248 uxtab16 r3, r2, r1, ror #16 3249 it eq 3250 uxtab16eq r1, r2, r3, ror #24 3251 3252 @ CHECK: it ge @ encoding: [0xa8,0xbf] 3253 @ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x31,0xfa,0x84,0xf0] 3254 @ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x32,0xfa,0x87,0xf6] 3255 @ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x35,0xfa,0x98,0xf3] 3256 @ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x32,0xfa,0xa1,0xf3] 3257 @ CHECK: it eq @ encoding: [0x08,0xbf] 3258 @ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x32,0xfa,0xb3,0xf1] 3259 3260 3261 @------------------------------------------------------------------------------ 3262 @ UXTAH 3263 @------------------------------------------------------------------------------ 3264 uxtah r1, r3, r9 3265 it hi 3266 uxtahhi r6, r1, r6, ror #0 3267 uxtah r3, r8, r3, ror #8 3268 it lo 3269 uxtahlo r2, r2, r4, ror #16 3270 uxtah r9, r3, r3, ror #24 3271 3272 @ CHECK: uxtah r1, r3, r9 @ encoding: [0x13,0xfa,0x89,0xf1] 3273 @ CHECK: it hi @ encoding: [0x88,0xbf] 3274 @ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x11,0xfa,0x86,0xf6] 3275 @ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x18,0xfa,0x93,0xf3] 3276 @ CHECK: it lo @ encoding: [0x38,0xbf] 3277 @ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x12,0xfa,0xa4,0xf2] 3278 @ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x13,0xfa,0xb3,0xf9] 3279 3280 3281 @------------------------------------------------------------------------------ 3282 @ UXTB 3283 @------------------------------------------------------------------------------ 3284 it ge 3285 uxtbge r2, r4 3286 uxtb r5, r6, ror #0 3287 uxtb r6, r9, ror #8 3288 it cc 3289 uxtbcc r5, r1, ror #16 3290 uxtb r8, r3, ror #24 3291 uxtb.w r7, r8 3292 3293 @ CHECK: it ge @ encoding: [0xa8,0xbf] 3294 @ CHECK: uxtbge r2, r4 @ encoding: [0xe2,0xb2] 3295 @ CHECK: uxtb r5, r6 @ encoding: [0xf5,0xb2] 3296 @ CHECK: uxtb.w r6, r9, ror #8 @ encoding: [0x5f,0xfa,0x99,0xf6] 3297 @ CHECK: it lo @ encoding: [0x38,0xbf] 3298 @ CHECK: uxtblo.w r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5] 3299 @ CHECK: uxtb.w r8, r3, ror #24 @ encoding: [0x5f,0xfa,0xb3,0xf8] 3300 @ CHECK: uxtb.w r7, r8 @ encoding: [0x5f,0xfa,0x88,0xf7] 3301 3302 3303 @------------------------------------------------------------------------------ 3304 @ UXTB16 3305 @------------------------------------------------------------------------------ 3306 uxtb16 r1, r4 3307 uxtb16 r6, r7, ror #0 3308 it cs 3309 uxtb16cs r3, r5, ror #8 3310 uxtb16 r3, r1, ror #16 3311 it ge 3312 uxtb16ge r2, r3, ror #24 3313 3314 @ CHECK: uxtb16 r1, r4 @ encoding: [0x3f,0xfa,0x84,0xf1] 3315 @ CHECK: uxtb16 r6, r7 @ encoding: [0x3f,0xfa,0x87,0xf6] 3316 @ CHECK: it hs @ encoding: [0x28,0xbf] 3317 @ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x3f,0xfa,0x95,0xf3] 3318 @ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x3f,0xfa,0xa1,0xf3] 3319 @ CHECK: it ge @ encoding: [0xa8,0xbf] 3320 @ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2] 3321 3322 3323 @------------------------------------------------------------------------------ 3324 @ UXTH 3325 @------------------------------------------------------------------------------ 3326 it ne 3327 uxthne r3, r9 3328 uxth r1, r6, ror #0 3329 uxth r3, r8, ror #8 3330 it le 3331 uxthle r2, r2, ror #16 3332 uxth r9, r3, ror #24 3333 uxth.w r7, r8 3334 3335 @ CHECK: it ne @ encoding: [0x18,0xbf] 3336 @ CHECK: uxthne.w r3, r9 @ encoding: [0x1f,0xfa,0x89,0xf3] 3337 @ CHECK: uxth r1, r6 @ encoding: [0xb1,0xb2] 3338 @ CHECK: uxth.w r3, r8, ror #8 @ encoding: [0x1f,0xfa,0x98,0xf3] 3339 @ CHECK: it le @ encoding: [0xd8,0xbf] 3340 @ CHECK: uxthle.w r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2] 3341 @ CHECK: uxth.w r9, r3, ror #24 @ encoding: [0x1f,0xfa,0xb3,0xf9] 3342 @ CHECK: uxth.w r7, r8 @ encoding: [0x1f,0xfa,0x88,0xf7] 3343 3344 @------------------------------------------------------------------------------ 3345 @ WFE/WFI/YIELD 3346 @------------------------------------------------------------------------------ 3347 wfe 3348 wfi 3349 yield 3350 itet lt 3351 wfelt 3352 wfige 3353 yieldlt 3354 3355 @ CHECK: wfe @ encoding: [0x20,0xbf] 3356 @ CHECK: wfi @ encoding: [0x30,0xbf] 3357 @ CHECK: yield @ encoding: [0x10,0xbf] 3358 @ CHECK: itet lt @ encoding: [0xb6,0xbf] 3359 @ CHECK: wfelt @ encoding: [0x20,0xbf] 3360 @ CHECK: wfige @ encoding: [0x30,0xbf] 3361 @ CHECK: yieldlt @ encoding: [0x10,0xbf] 3362 3363 3364 @------------------------------------------------------------------------------ 3365 @ Alternate syntax for LDR*(literal) encodings 3366 @------------------------------------------------------------------------------ 3367 ldr r11, [pc, #-22] 3368 ldrb r11, [pc, #-22] 3369 ldrh r11, [pc, #-22] 3370 ldrsb r11, [pc, #-22] 3371 ldrsh r11, [pc, #-22] 3372 3373 ldr.w r11, [pc, #-22] 3374 ldrb.w r11, [pc, #-22] 3375 ldrh.w r11, [pc, #-22] 3376 ldrsb.w r11, [pc, #-22] 3377 ldrsh.w r11, [pc, #-22] 3378 3379 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0] 3380 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0] 3381 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0] 3382 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0] 3383 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0] 3384 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0] 3385 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0] 3386 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0] 3387 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0] 3388 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0] 3389