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