1# RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s 2 3#------------------------------------------------------------------------------ 4# ADC (immediate) 5#------------------------------------------------------------------------------ 6# CHECK: adc r0, r1, #4 7# CHECK: adcs r0, r1, #0 8# CHECK: adc r1, r2, #255 9# CHECK: adc r3, r7, #5570645 10# CHECK: adc r8, r12, #2852170240 11# CHECK: adc r9, r7, #2779096485 12# CHECK: adc r5, r3, #2264924160 13# CHECK: adc r4, r2, #2139095040 14# CHECK: adc r4, r2, #1664 15# CHECK: adc r0, r0, #1 16# CHECK: adc r1, r1, #2139095040 17 180x41 0xf1 0x04 0x00 190x51 0xf1 0x00 0x00 200x42 0xf1 0xff 0x01 210x47 0xf1 0x55 0x13 220x4c 0xf1 0xaa 0x28 230x47 0xf1 0xa5 0x39 240x43 0xf1 0x07 0x45 250x42 0xf1 0xff 0x44 260x42 0xf5 0xd0 0x64 270x40 0xf1 0x01 0x00 280x41 0xf1 0xff 0x41 29 30#------------------------------------------------------------------------------ 31# ADC (register) 32#------------------------------------------------------------------------------ 33# CHECK: adc.w r4, r5, r6 34# CHECK: adcs.w r4, r5, r6 35# CHECK: adc.w r9, r1, r3 36# CHECK: adcs.w r9, r1, r3 37# CHECK: adc.w r0, r1, r3, ror #4 38# CHECK: adcs.w r0, r1, r3, lsl #7 39# CHECK: adc.w r0, r1, r3, lsr #31 40# CHECK: adcs.w r0, r1, r3, asr #32 41# CHECK: adc.w r4, r4, r5 42# CHECK: adc.w r9, r9, r1 43# CHECK: adc.w r0, r0, r1, ror #4 44# CHECK: adc.w r0, r0, r1, lsr #31 45 460x45 0xeb 0x06 0x04 470x55 0xeb 0x06 0x04 480x41 0xeb 0x03 0x09 490x51 0xeb 0x03 0x09 500x41 0xeb 0x33 0x10 510x51 0xeb 0xc3 0x10 520x41 0xeb 0xd3 0x70 530x51 0xeb 0x23 0x00 540x44 0xeb 0x05 0x04 550x49 0xeb 0x01 0x09 560x40 0xeb 0x31 0x10 570x40 0xeb 0xd1 0x70 58 59 60#------------------------------------------------------------------------------ 61# ADD (immediate) 62#------------------------------------------------------------------------------ 63# CHECK: itet eq 64# CHECK: addeq r1, r2, #4 65# CHECK: addwne r5, r3, #1023 66# CHECK: addweq r4, r5, #293 67# CHECK: add.w r2, sp, #1024 68# CHECK: add.w r2, r8, #65280 69# CHECK: addw r2, r3, #257 70# CHECK: add.w r12, r6, #256 71# CHECK: addw r12, r6, #256 72# CHECK: adds.w r1, r2, #496 73 740x0a 0xbf 750x11 0x1d 760x03 0xf2 0xff 0x35 770x05 0xf2 0x25 0x14 780x0d 0xf5 0x80 0x62 790x08 0xf5 0x7f 0x42 800x03 0xf2 0x01 0x12 810x06 0xf5 0x80 0x7c 820x06 0xf2 0x00 0x1c 830x12 0xf5 0xf8 0x71 84 85 86#------------------------------------------------------------------------------ 87# ADD (register) 88#------------------------------------------------------------------------------ 89# CHECK: add.w r1, r2, r8 90# CHECK: add.w r5, r9, r2, asr #32 91# CHECK: adds.w r7, r3, r1, lsl #31 92# CHECK: adds.w r0, r3, r6, lsr #25 93# CHECK: add.w r4, r8, r1, ror #12 94 950x02 0xeb 0x08 0x01 960x09 0xeb 0x22 0x05 970x13 0xeb 0xc1 0x77 980x13 0xeb 0x56 0x60 990x08 0xeb 0x31 0x34 100 101 102#------------------------------------------------------------------------------ 103# ADR 104#------------------------------------------------------------------------------ 105# CHECK: adr.w r11, #-3270 106# CHECK-NEXT: adr.w r11, #-826 107# CHECK-NEXT: subw r1, pc, #0 108# CHECK-NEXT: adr.w r0, #1024 1090xaf 0xf6 0xc6 0x4b 1100xaf 0xf2 0x3a 0x3b 1110xaf 0xf2 0x00 0x01 1120x0f,0xf2,0x00,0x40 113#------------------------------------------------------------------------------ 114# AND (immediate) 115#------------------------------------------------------------------------------ 116# CHECK: and r2, r5, #1044480 117# CHECK: ands r3, r12, #15 118# CHECK: and r1, r1, #255 119 1200x05 0xf4 0x7f 0x22 1210x1c 0xf0 0x0f 0x03 1220x01 0xf0 0xff 0x01 123 124 125#------------------------------------------------------------------------------ 126# AND (register) 127#------------------------------------------------------------------------------ 128# CHECK: and.w r4, r9, r8 129# CHECK: and.w r1, r4, r8, asr #3 130# CHECK: ands.w r2, r1, r7, lsl #1 131# CHECK: ands.w r4, r5, r2, lsr #20 132# CHECK: and.w r9, r12, r1, ror #17 133 1340x09 0xea 0x08 0x04 1350x04 0xea 0xe8 0x01 1360x11 0xea 0x47 0x02 1370x15 0xea 0x12 0x54 1380x0c 0xea 0x71 0x49 139 140#------------------------------------------------------------------------------ 141# ASR (immediate) 142#------------------------------------------------------------------------------ 143# CHECK: asr.w r2, r3, #12 144# CHECK: asrs.w r8, r3, #32 145# CHECK: asrs.w r2, r3, #1 146# CHECK: asr.w r2, r3, #4 147# CHECK: asrs.w r2, r12, #15 148 149# CHECK: asr.w r3, r3, #19 150# CHECK: asrs.w r8, r8, #2 151# CHECK: asrs.w r7, r7, #5 152# CHECK: asr.w r12, r12, #21 153 1540x4f 0xea 0x23 0x32 1550x5f 0xea 0x23 0x08 1560x5f 0xea 0x63 0x02 1570x4f 0xea 0x23 0x12 1580x5f 0xea 0xec 0x32 159 1600x4f 0xea 0xe3 0x43 1610x5f 0xea 0xa8 0x08 1620x5f 0xea 0x67 0x17 1630x4f 0xea 0x6c 0x5c 164 165 166#------------------------------------------------------------------------------ 167# ASR (register) 168#------------------------------------------------------------------------------ 169# CHECK: asr.w r3, r4, r2 170# CHECK: asr.w r1, r1, r2 171# CHECK: asrs.w r3, r4, r8 172 1730x44 0xfa 0x02 0xf3 1740x41 0xfa 0x02 0xf1 1750x54 0xfa 0x08 0xf3 176 177#------------------------------------------------------------------------------ 178# B 179#------------------------------------------------------------------------------ 180# CHECK: bmi.w #-183396 181 1820x13 0xf5 0xce 0xa9 183 184# CHECK: b.w #208962 185# CHECK: b.w #-16777216 186 1870x33 0xf0 0x21 0xb8 # rdar://12585795 1880x00 0xf4 0x00 0x90 189 190#------------------------------------------------------------------------------ 191# BFC 192#------------------------------------------------------------------------------ 193# CHECK: bfc r5, #3, #17 194# CHECK: it lo 195# CHECK: bfclo r5, #3, #17 196 1970x6f 0xf3 0xd3 0x05 1980x38 0xbf 1990x6f 0xf3 0xd3 0x05 200 201 202#------------------------------------------------------------------------------ 203# BFI 204#------------------------------------------------------------------------------ 205# CHECK: bfi r5, r2, #3, #17 206# CHECK: it ne 207# CHECK: bfine r5, r2, #3, #17 208# CHECK: bfi r6, r0, #0, #32 209# CHECK: bfi r6, r0, #31, #1 210 2110x62 0xf3 0xd3 0x05 2120x18 0xbf 2130x62 0xf3 0xd3 0x05 2140x60 0xf3 0x1f 0x06 2150x60 0xf3 0xdf 0x76 216 217 218#------------------------------------------------------------------------------ 219# BIC 220#------------------------------------------------------------------------------ 221# CHECK: bic r10, r1, #15 222# CHECK: bic.w r12, r3, r6 223# CHECK: bic.w r11, r2, r6, lsl #12 224# CHECK: bic.w r8, r4, r1, lsr #11 225# CHECK: bic.w r7, r5, r7, lsr #15 226# CHECK: bic.w r6, r7, r9, asr #32 227# CHECK: bic.w r5, r6, r8, ror #1 228 229# CHECK: bic r1, r1, #15 230# CHECK: bic.w r1, r1, r1 231# CHECK: bic.w r4, r4, r2, lsl #31 232# CHECK: bic.w r6, r6, r3, lsr #12 233# CHECK: bic.w r7, r7, r4, lsr #7 234# CHECK: bic.w r8, r8, r5, asr #15 235# CHECK: bic.w r12, r12, r6, ror #29 236 2370x21 0xf0 0x0f 0x0a 2380x23 0xea 0x06 0x0c 2390x22 0xea 0x06 0x3b 2400x24 0xea 0xd1 0x28 2410x25 0xea 0xd7 0x37 2420x27 0xea 0x29 0x06 2430x26 0xea 0x78 0x05 244 2450x21 0xf0 0x0f 0x01 2460x21 0xea 0x01 0x01 2470x24 0xea 0xc2 0x74 2480x26 0xea 0x13 0x36 2490x27 0xea 0xd4 0x17 2500x28 0xea 0xe5 0x38 2510x2c 0xea 0x76 0x7c 252 253 254#------------------------------------------------------------------------------ 255# BXJ 256#------------------------------------------------------------------------------ 257# CHECK: bxj r5 258# CHECK: it ne 259# CHECK: bxjne r7 260 2610xc5 0xf3 0x00 0x8f 2620x18 0xbf 2630xc7 0xf3 0x00 0x8f 264 265 266#------------------------------------------------------------------------------ 267# CBZ/CBNZ 268#------------------------------------------------------------------------------ 269# CHECK: cbnz r7, #6 270# CHECK: cbnz r7, #12 271# CHECK: cbz r4, #64 272 2730x1f 0xb9 2740x37 0xb9 2750x04 0xb3 276 277 278#------------------------------------------------------------------------------ 279# CDP/CDP2 280#------------------------------------------------------------------------------ 281# CHECK: cdp p7, #1, c1, c1, c1, #4 282# CHECK: cdp2 p7, #1, c1, c1, c1, #4 283 2840x11 0xee 0x81 0x17 2850x11 0xfe 0x81 0x17 286 287 288#------------------------------------------------------------------------------ 289# CLREX 290#------------------------------------------------------------------------------ 291#CHECK: clrex 292#CHECK: it ne 293#CHECK: clrexne 294 2950xbf 0xf3 0x2f 0x8f 2960x18 0xbf 2970xbf 0xf3 0x2f 0x8f 298 299 300#------------------------------------------------------------------------------ 301# CLZ 302#------------------------------------------------------------------------------ 303#CHECK: clz r1, r2 304#CHECK: it eq 305#CHECK: clzeq r1, r2 306 3070xb2 0xfa 0x82 0xf1 3080x08 0xbf 3090xb2 0xfa 0x82 0xf1 310 311 312#------------------------------------------------------------------------------ 313# CMN 314#------------------------------------------------------------------------------ 315#CHECK: cmn.w r1, #15 316#CHECK: cmn.w r8, r6 317#CHECK: cmn.w r1, r6, lsl #10 318#CHECK: cmn.w r1, r6, lsr #10 319#CHECK: cmn.w sp, r6, lsr #10 320#CHECK: cmn.w r1, r6, asr #10 321#CHECK: cmn.w r1, r6, ror #10 322 3230x11 0xf1 0x0f 0x0f 3240x18 0xeb 0x06 0x0f 3250x11 0xeb 0x86 0x2f 3260x11 0xeb 0x96 0x2f 3270x1d 0xeb 0x96 0x2f 3280x11 0xeb 0xa6 0x2f 3290x11 0xeb 0xb6 0x2f 330 331 332#------------------------------------------------------------------------------ 333# CMP 334#------------------------------------------------------------------------------ 335#CHECK: cmp.w r5, #65280 336#CHECK: cmp.w r4, r12 337#CHECK: cmp.w r9, r6, lsl #12 338#CHECK: cmp.w r3, r7, lsr #31 339#CHECK: cmp.w sp, r6, lsr #1 340#CHECK: cmp.w r2, r5, asr #24 341#CHECK: cmp.w r1, r4, ror #15 342 3430xb5 0xf5 0x7f 0x4f 3440xb4 0xeb 0x0c 0x0f 3450xb9 0xeb 0x06 0x3f 3460xb3 0xeb 0xd7 0x7f 3470xbd 0xeb 0x56 0x0f 3480xb2 0xeb 0x25 0x6f 3490xb1 0xeb 0xf4 0x3f 350 351 352#------------------------------------------------------------------------------ 353# DBG 354#------------------------------------------------------------------------------ 355#CHECK: dbg #5 356#CHECK: dbg #0 357#CHECK: dbg #15 358 3590xaf 0xf3 0xf5 0x80 3600xaf 0xf3 0xf0 0x80 3610xaf 0xf3 0xff 0x80 362 363 364#------------------------------------------------------------------------------ 365# DMB 366#------------------------------------------------------------------------------ 367#CHECK: dmb sy 368#CHECK: dmb st 369#CHECK: dmb #0xd 370#CHECK: dmb #0xc 371#CHECK: dmb ish 372#CHECK: dmb ishst 373#CHECK: dmb #0x9 374#CHECK: dmb #0x8 375#CHECK: dmb nsh 376#CHECK: dmb nshst 377#CHECK: dmb #0x5 378#CHECK: dmb #0x4 379#CHECK: dmb osh 380#CHECK: dmb oshst 381#CHECK: dmb #0x1 382#CHECK: dmb #0x0 383 3840xbf 0xf3 0x5f 0x8f 3850xbf 0xf3 0x5e 0x8f 3860xbf 0xf3 0x5d 0x8f 3870xbf 0xf3 0x5c 0x8f 3880xbf 0xf3 0x5b 0x8f 3890xbf 0xf3 0x5a 0x8f 3900xbf 0xf3 0x59 0x8f 3910xbf 0xf3 0x58 0x8f 3920xbf 0xf3 0x57 0x8f 3930xbf 0xf3 0x56 0x8f 3940xbf 0xf3 0x55 0x8f 3950xbf 0xf3 0x54 0x8f 3960xbf 0xf3 0x53 0x8f 3970xbf 0xf3 0x52 0x8f 3980xbf 0xf3 0x51 0x8f 3990xbf 0xf3 0x50 0x8f 400 401 402#------------------------------------------------------------------------------ 403# DSB 404#------------------------------------------------------------------------------ 405#CHECK: dsb sy 406#CHECK: dsb st 407#CHECK: dsb #0xd 408#CHECK: dsb #0xc 409#CHECK: dsb ish 410#CHECK: dsb ishst 411#CHECK: dsb #0x9 412#CHECK: dsb #0x8 413#CHECK: dsb nsh 414#CHECK: dsb nshst 415#CHECK: dsb #0x5 416#CHECK: pssbb 417#CHECK: dsb osh 418#CHECK: dsb oshst 419#CHECK: dsb #0x1 420#CHECK: ssbb 421 4220xbf 0xf3 0x4f 0x8f 4230xbf 0xf3 0x4e 0x8f 4240xbf 0xf3 0x4d 0x8f 4250xbf 0xf3 0x4c 0x8f 4260xbf 0xf3 0x4b 0x8f 4270xbf 0xf3 0x4a 0x8f 4280xbf 0xf3 0x49 0x8f 4290xbf 0xf3 0x48 0x8f 4300xbf 0xf3 0x47 0x8f 4310xbf 0xf3 0x46 0x8f 4320xbf 0xf3 0x45 0x8f 4330xbf 0xf3 0x44 0x8f 4340xbf 0xf3 0x43 0x8f 4350xbf 0xf3 0x42 0x8f 4360xbf 0xf3 0x41 0x8f 4370xbf 0xf3 0x40 0x8f 438 439 440#------------------------------------------------------------------------------ 441# EOR 442#------------------------------------------------------------------------------ 443#CHECK: eor r4, r5, #61440 444#CHECK: eor.w r4, r5, r6 445#CHECK: eor.w r4, r5, r6, lsl #5 446#CHECK: eor.w r4, r5, r6, lsr #5 447#CHECK: eor.w r4, r5, r6, lsr #5 448#CHECK: eor.w r4, r5, r6, asr #5 449#CHECK: eor.w r4, r5, r6, ror #5 450 4510x85 0xf4 0x70 0x44 4520x85 0xea 0x06 0x04 4530x85 0xea 0x46 0x14 4540x85 0xea 0x56 0x14 4550x85 0xea 0x56 0x14 4560x85 0xea 0x66 0x14 4570x85 0xea 0x76 0x14 458 459 460#------------------------------------------------------------------------------ 461# ISB 462#------------------------------------------------------------------------------ 463#CHECK: isb sy 464#CHECK: isb #0xa 465 4660xbf 0xf3 0x6f 0x8f 4670xbf 0xf3 0x6a 0x8f 468 469#------------------------------------------------------------------------------ 470# IT 471#------------------------------------------------------------------------------ 472# Test encodings of a few full IT blocks, not just the IT instruction 473 474# CHECK: iteet eq 475# CHECK: addeq r0, r1, r2 476# CHECK: nopne 477# CHECK: subne r5, r6, r7 478# CHECK: addeq r1, r2, #4 479 4800x0d 0xbf 4810x88 0x18 4820x00 0xbf 4830xf5 0x1b 4840x11 0x1d 485 486# CHECK: ittee ls 487# CHECK: addls r0, r1, r2 488# CHECK: nopls 489# CHECK: subhi r5, r6, r7 490# CHECK: addhi r1, r2, #4 491 4920x99 0xbf 4930x88 0x18 4940x00 0xbf 4950xf5 0x1b 4960x11 0x1d 497 498 499#------------------------------------------------------------------------------ 500# LDMIA 501#------------------------------------------------------------------------------ 502# CHECK: ldm.w r4, {r4, r5, r8, r9} 503# CHECK: ldm.w r4, {r5, r6} 504# CHECK: ldm.w r5!, {r3, r8} 505# CHECK: ldm.w r4, {r4, r5, r8, r9} 506# CHECK: ldm.w r4, {r5, r6} 507# CHECK: ldm.w r5!, {r3, r8} 508# CHECK: ldm.w r5!, {r1, r2} 509# CHECK: ldm.w r2, {r1, r2} 510 511# CHECK: ldm.w r4, {r4, r5, r8, r9} 512# CHECK: ldm.w r4, {r5, r6} 513# CHECK: ldm.w r5!, {r3, r8} 514# CHECK: ldm.w r4, {r4, r5, r8, r9} 515# CHECK: ldm.w r4, {r5, r6} 516# CHECK: ldm.w r5!, {r3, r8} 517# CHECK: ldm.w r5!, {r3, r8} 518 5190x94 0xe8 0x30 0x03 5200x94 0xe8 0x60 0x00 5210xb5 0xe8 0x08 0x01 5220x94 0xe8 0x30 0x03 5230x94 0xe8 0x60 0x00 5240xb5 0xe8 0x08 0x01 5250xb5 0xe8 0x06 0x00 5260x92 0xe8 0x06 0x00 527 5280x94 0xe8 0x30 0x03 5290x94 0xe8 0x60 0x00 5300xb5 0xe8 0x08 0x01 5310x94 0xe8 0x30 0x03 5320x94 0xe8 0x60 0x00 5330xb5 0xe8 0x08 0x01 5340xb5 0xe8 0x08 0x01 535 536 537#------------------------------------------------------------------------------ 538# LDMDB 539#------------------------------------------------------------------------------ 540# CHECK: ldmdb r4, {r4, r5, r8, r9} 541# CHECK: ldmdb r4, {r5, r6} 542# CHECK: ldmdb r5!, {r3, r8} 543# CHECK: ldmdb r5!, {r3, r8} 544 5450x14 0xe9 0x30 0x03 5460x14 0xe9 0x60 0x00 5470x35 0xe9 0x08 0x01 5480x35 0xe9 0x08 0x01 549 550 551#------------------------------------------------------------------------------ 552# LDR(immediate) 553#------------------------------------------------------------------------------ 554# CHECK: ldr r5, [r5, #-4] 555# CHECK: ldr r5, [r6, #32] 556# CHECK: ldr.w r5, [r6, #33] 557# CHECK: ldr.w r5, [r6, #257] 558# CHECK: ldr.w pc, [r7, #257] 559 5600x55 0xf8 0x04 0x5c 5610x35 0x6a 5620xd6 0xf8 0x21 0x50 5630xd6 0xf8 0x01 0x51 5640xd7 0xf8 0x01 0xf1 565 566 567#------------------------------------------------------------------------------ 568# LDR(literal) 569#------------------------------------------------------------------------------ 570# CHECK: ldr.w r4, [pc, #-0] 571# CHECK: ldr.w r2, [pc, #-40] 572# CHECK: ldr.w r1, [pc, #1024] 5730x5f 0xf8 0x00 0x40 5740x5f 0xf8 0x28 0x20 5750xdf 0xf8 0x00 0x14 576 577 578#------------------------------------------------------------------------------ 579# LDR(register) 580#------------------------------------------------------------------------------ 581# CHECK: ldr.w r1, [r8, r1] 582# CHECK: ldr.w r4, [r5, r2] 583# CHECK: ldr.w r6, [r0, r2, lsl #3] 584# CHECK: ldr.w r8, [r8, r2, lsl #2] 585# CHECK: ldr.w r7, [sp, r2, lsl #1] 586# CHECK: ldr.w r7, [sp, r2] 587# CHECK: ldr pc, [sp], #12 588# CHECK: ldr r2, [r4, #255]! 589# CHECK: ldr r8, [sp, #4]! 590# CHECK: ldr lr, [sp, #-4]! 591# CHECK: ldr lr, [sp, #0]! 592# CHECK: ldr r2, [r4], #255 593# CHECK: ldr r8, [sp], #4 594# CHECK: ldr lr, [sp], #-4 595 5960x58 0xf8 0x01 0x10 5970x55 0xf8 0x02 0x40 5980x50 0xf8 0x32 0x60 5990x58 0xf8 0x22 0x80 6000x5d 0xf8 0x12 0x70 6010x5d 0xf8 0x02 0x70 6020x5d 0xf8 0x0c 0xfb 6030x54 0xf8 0xff 0x2f 6040x5d 0xf8 0x04 0x8f 6050x5d 0xf8 0x04 0xed 6060x5d 0xf8 0x00 0xef 6070x54 0xf8 0xff 0x2b 6080x5d 0xf8 0x04 0x8b 6090x5d 0xf8 0x04 0xe9 610 611 612#------------------------------------------------------------------------------ 613# LDRB(immediate) 614#------------------------------------------------------------------------------ 615# CHECK: ldrb r5, [r5, #-4] 616# CHECK: ldrb.w r5, [r6, #32] 617# CHECK: ldrb.w r5, [r6, #33] 618# CHECK: ldrb.w r5, [r6, #257] 619# CHECK: ldrb.w lr, [r7, #257] 620 6210x15 0xf8 0x04 0x5c 6220x96 0xf8 0x20 0x50 6230x96 0xf8 0x21 0x50 6240x96 0xf8 0x01 0x51 6250x97 0xf8 0x01 0xe1 626 627 628#------------------------------------------------------------------------------ 629# LDRB(register) 630#------------------------------------------------------------------------------ 631# CHECK: ldrb.w r1, [r8, r1] 632# CHECK: ldrb.w r4, [r5, r2] 633# CHECK: ldrb.w r6, [r0, r2, lsl #3] 634# CHECK: ldrb.w r8, [r8, r2, lsl #2] 635# CHECK: ldrb.w r7, [sp, r2, lsl #1] 636# CHECK: ldrb.w r7, [sp, r2] 637# CHECK: ldrb r5, [r8, #255]! 638# CHECK: ldrb r2, [r5, #4]! 639# CHECK: ldrb r1, [r4, #-4]! 640# CHECK: ldrb r1, [r4, #0]! 641# CHECK: ldrb lr, [r3], #255 642# CHECK: ldrb r9, [r2], #4 643# CHECK: ldrb r3, [sp], #-4 644 6450x18 0xf8 0x01 0x10 6460x15 0xf8 0x02 0x40 6470x10 0xf8 0x32 0x60 6480x18 0xf8 0x22 0x80 6490x1d 0xf8 0x12 0x70 6500x1d 0xf8 0x02 0x70 6510x18 0xf8 0xff 0x5f 6520x15 0xf8 0x04 0x2f 6530x14 0xf8 0x04 0x1d 6540x14 0xf8 0x00 0x1f 6550x13 0xf8 0xff 0xeb 6560x12 0xf8 0x04 0x9b 6570x1d 0xf8 0x04 0x39 658 659 660#------------------------------------------------------------------------------ 661# LDRB(literal) 662#------------------------------------------------------------------------------ 663# CHECK: ldrb.w r6, [pc, #-0] 664# CHECK: ldrb.w r10, [pc, #227] 665# CHECK: ldrb.w r5, [pc, #0] 6660x1f 0xf8 0x00 0x60 6670x9f 0xf8 0xe3 0xa0 6680x9f 0xf8 0x00 0x50 669 670 671#------------------------------------------------------------------------------ 672# LDRBT 673#------------------------------------------------------------------------------ 674# CHECK: ldrbt r1, [r2] 675# CHECK: ldrbt r1, [r8] 676# CHECK: ldrbt r1, [r8, #3] 677# CHECK: ldrbt r1, [r8, #255] 678 6790x12 0xf8 0x00 0x1e 6800x18 0xf8 0x00 0x1e 6810x18 0xf8 0x03 0x1e 6820x18 0xf8 0xff 0x1e 683 684 685#------------------------------------------------------------------------------ 686# LDRD(immediate) 687#------------------------------------------------------------------------------ 688# CHECK: ldrd r3, r5, [r6, #24] 689# CHECK: ldrd r3, r5, [r6, #24]! 690# CHECK: ldrd r3, r5, [r6], #4 691# CHECK: ldrd r3, r5, [r6], #-8 692# CHECK: ldrd r3, r5, [r6] 693# CHECK: ldrd r8, r1, [r3] 694# CHECK: ldrd r0, r1, [r2], #-0 695# CHECK: ldrd r0, r1, [r2, #-0]! 696# CHECK: ldrd r0, r1, [r2, #0]! 697# CHECK: ldrd r0, r1, [r2, #-0] 698# CHECK: ldrd r1, r1, [r0], #0 699 7000xd6 0xe9 0x06 0x35 7010xf6 0xe9 0x06 0x35 7020xf6 0xe8 0x01 0x35 7030x76 0xe8 0x02 0x35 7040xd6 0xe9 0x00 0x35 7050xd3 0xe9 0x00 0x81 7060x72 0xe8 0x00 0x01 7070x72 0xe9 0x00 0x01 7080xf2 0xe9 0x00 0x01 7090x52 0xe9 0x00 0x01 7100xf0 0xe8 0x00 0x11 711 712 713#------------------------------------------------------------------------------ 714# FIXME: LDRD(literal) 715#------------------------------------------------------------------------------ 716 717 718#------------------------------------------------------------------------------ 719# LDREX/LDREXB/LDREXH/LDREXD 720#------------------------------------------------------------------------------ 721# CHECK: ldrex r1, [r4] 722# CHECK: ldrex r8, [r4] 723# CHECK: ldrex r2, [sp, #128] 724# CHECK: ldrexb r5, [r7] 725# CHECK: ldrexh r9, [r12] 726# CHECK: ldrexd r9, r3, [r4] 727 7280x54 0xe8 0x00 0x1f 7290x54 0xe8 0x00 0x8f 7300x5d 0xe8 0x20 0x2f 7310xd7 0xe8 0x4f 0x5f 7320xdc 0xe8 0x5f 0x9f 7330xd4 0xe8 0x7f 0x93 734 735 736#------------------------------------------------------------------------------ 737# LDRH(immediate) 738#------------------------------------------------------------------------------ 739# CHECK: ldrh r5, [r5, #-4] 740# CHECK: ldrh r5, [r6, #32] 741# CHECK: ldrh.w r5, [r6, #33] 742# CHECK: ldrh.w r5, [r6, #257] 743# CHECK: ldrh.w lr, [r7, #257] 744 7450x35 0xf8 0x04 0x5c 7460x35 0x8c 7470xb6 0xf8 0x21 0x50 7480xb6 0xf8 0x01 0x51 7490xb7 0xf8 0x01 0xe1 750 751 752#------------------------------------------------------------------------------ 753# LDRH(register) 754#------------------------------------------------------------------------------ 755# CHECK: ldrh.w r1, [r8, r1] 756# CHECK: ldrh.w r4, [r5, r2] 757# CHECK: ldrh.w r6, [r0, r2, lsl #3] 758# CHECK: ldrh.w r8, [r8, r2, lsl #2] 759# CHECK: ldrh.w r7, [sp, r2, lsl #1] 760# CHECK: ldrh.w r7, [sp, r2] 761# CHECK: ldrh r5, [r8, #255]! 762# CHECK: ldrh r2, [r5, #4]! 763# CHECK: ldrh r1, [r4, #-4]! 764# CHECK: ldrh r1, [r4, #0]! 765# CHECK: ldrh lr, [r3], #255 766# CHECK: ldrh r9, [r2], #4 767# CHECK: ldrh r3, [sp], #-4 768 7690x38 0xf8 0x01 0x10 7700x35 0xf8 0x02 0x40 7710x30 0xf8 0x32 0x60 7720x38 0xf8 0x22 0x80 7730x3d 0xf8 0x12 0x70 7740x3d 0xf8 0x02 0x70 7750x38 0xf8 0xff 0x5f 7760x35 0xf8 0x04 0x2f 7770x34 0xf8 0x04 0x1d 7780x34 0xf8 0x00 0x1f 7790x33 0xf8 0xff 0xeb 7800x32 0xf8 0x04 0x9b 7810x3d 0xf8 0x04 0x39 782 783 784#------------------------------------------------------------------------------ 785# LDRH(literal) 786#------------------------------------------------------------------------------ 787# CHECK: ldrh.w r7, [pc, #-0] 788# CHECK: ldrh.w r5, [pc, #121] 789# CHECK: ldrh.w r4, [pc, #0] 7900x3f 0xf8 0x00 0x70 7910xbf 0xf8 0x79 0x50 7920xbf 0xf8 0x00 0x40 793 794 795#------------------------------------------------------------------------------ 796# LDRSB(immediate) 797#------------------------------------------------------------------------------ 798# CHECK: ldrsb r5, [r5, #-4] 799# CHECK: ldrsb.w r5, [r6, #32] 800# CHECK: ldrsb.w r5, [r6, #33] 801# CHECK: ldrsb.w r5, [r6, #257] 802# CHECK: ldrsb.w lr, [r7, #257] 803 8040x15 0xf9 0x04 0x5c 8050x96 0xf9 0x20 0x50 8060x96 0xf9 0x21 0x50 8070x96 0xf9 0x01 0x51 8080x97 0xf9 0x01 0xe1 809 810 811#------------------------------------------------------------------------------ 812# LDRSB(register) 813#------------------------------------------------------------------------------ 814# CHECK: ldrsb.w r1, [r8, r1] 815# CHECK: ldrsb.w r4, [r5, r2] 816# CHECK: ldrsb.w r6, [r0, r2, lsl #3] 817# CHECK: ldrsb.w r8, [r8, r2, lsl #2] 818# CHECK: ldrsb.w r7, [sp, r2, lsl #1] 819# CHECK: ldrsb.w r7, [sp, r2] 820# CHECK: ldrsb r5, [r8, #255]! 821# CHECK: ldrsb r2, [r5, #4]! 822# CHECK: ldrsb r1, [r4, #-4]! 823# CHECK: ldrsb r1, [r4, #0]! 824# CHECK: ldrsb lr, [r3], #255 825# CHECK: ldrsb r9, [r2], #4 826# CHECK: ldrsb r3, [sp], #-4 827 8280x18 0xf9 0x01 0x10 8290x15 0xf9 0x02 0x40 8300x10 0xf9 0x32 0x60 8310x18 0xf9 0x22 0x80 8320x1d 0xf9 0x12 0x70 8330x1d 0xf9 0x02 0x70 8340x18 0xf9 0xff 0x5f 8350x15 0xf9 0x04 0x2f 8360x14 0xf9 0x04 0x1d 8370x14 0xf9 0x00 0x1f 8380x13 0xf9 0xff 0xeb 8390x12 0xf9 0x04 0x9b 8400x1d 0xf9 0x04 0x39 841 842 843#------------------------------------------------------------------------------ 844# LDRSB(literal) 845#------------------------------------------------------------------------------ 846# CHECK: ldrsb.w r0, [pc, #-0] 847# CHECK: ldrsb.w r12, [pc, #80] 848# CHECK: ldrsb.w r3, [pc, #0] 8490x1f 0xf9 0x00 0x00 8500x9f 0xf9 0x50 0xc0 8510x9f 0xf9 0x00 0x30 852 853 854#------------------------------------------------------------------------------ 855# LDRSBT 856#------------------------------------------------------------------------------ 857# CHECK: ldrsbt r1, [r2] 858# CHECK: ldrsbt r1, [r8] 859# CHECK: ldrsbt r1, [r8, #3] 860# CHECK: ldrsbt r1, [r8, #255] 861 8620x12 0xf9 0x00 0x1e 8630x18 0xf9 0x00 0x1e 8640x18 0xf9 0x03 0x1e 8650x18 0xf9 0xff 0x1e 866 867 868#------------------------------------------------------------------------------ 869# LDRSH(immediate) 870#------------------------------------------------------------------------------ 871# CHECK: ldrsh r5, [r5, #-4] 872# CHECK: ldrsh.w r5, [r6, #32] 873# CHECK: ldrsh.w r5, [r6, #33] 874# CHECK: ldrsh.w r5, [r6, #257] 875# CHECK: ldrsh.w lr, [r7, #257] 876# CHECK: ldrsh r10, [r5, #-0] 877 8780x35 0xf9 0x04 0x5c 8790xb6 0xf9 0x20 0x50 8800xb6 0xf9 0x21 0x50 8810xb6 0xf9 0x01 0x51 8820xb7 0xf9 0x01 0xe1 8830x35 0xf9 0x00 0xac 884 885#------------------------------------------------------------------------------ 886# LDRSH(register) 887#------------------------------------------------------------------------------ 888# CHECK: ldrsh.w r1, [r8, r1] 889# CHECK: ldrsh.w r4, [r5, r2] 890# CHECK: ldrsh.w r6, [r0, r2, lsl #3] 891# CHECK: ldrsh.w r8, [r8, r2, lsl #2] 892# CHECK: ldrsh.w r7, [sp, r2, lsl #1] 893# CHECK: ldrsh.w r7, [sp, r2] 894# CHECK: ldrsh r5, [r8, #255]! 895# CHECK: ldrsh r2, [r5, #4]! 896# CHECK: ldrsh r1, [r4, #-4]! 897# CHECK: ldrsh r1, [r4, #0]! 898# CHECK: ldrsh lr, [r3], #255 899# CHECK: ldrsh r9, [r2], #4 900# CHECK: ldrsh r3, [sp], #-4 901 9020x38 0xf9 0x01 0x10 9030x35 0xf9 0x02 0x40 9040x30 0xf9 0x32 0x60 9050x38 0xf9 0x22 0x80 9060x3d 0xf9 0x12 0x70 9070x3d 0xf9 0x02 0x70 9080x38 0xf9 0xff 0x5f 9090x35 0xf9 0x04 0x2f 9100x34 0xf9 0x04 0x1d 9110x34 0xf9 0x00 0x1f 9120x33 0xf9 0xff 0xeb 9130x32 0xf9 0x04 0x9b 9140x3d 0xf9 0x04 0x39 915 916 917#------------------------------------------------------------------------------ 918# LDRSH(literal) 919#------------------------------------------------------------------------------ 920# CHECK: ldrsh.w r0, [pc, #-0] 921# CHECK: ldrsh.w r10, [pc, #-231] 922# CHECK: ldrsh.w r6, [pc, #0] 9230x3f 0xf9 0x00 0x00 9240x3f 0xf9 0xe7 0xa0 9250xbf 0xf9 0x00 0x60 926 927 928#------------------------------------------------------------------------------ 929# LDRSHT 930#------------------------------------------------------------------------------ 931# CHECK: ldrsht r1, [r2] 932# CHECK: ldrsht r1, [r8] 933# CHECK: ldrsht r1, [r8, #3] 934# CHECK: ldrsht r1, [r8, #255] 935 9360x32 0xf9 0x00 0x1e 9370x38 0xf9 0x00 0x1e 9380x38 0xf9 0x03 0x1e 9390x38 0xf9 0xff 0x1e 940 941 942#------------------------------------------------------------------------------ 943# LDRT 944#------------------------------------------------------------------------------ 945# CHECK: ldrt r1, [r2] 946# CHECK: ldrt r2, [r6] 947# CHECK: ldrt r3, [r7, #3] 948# CHECK: ldrt r4, [r9, #255] 949 9500x52 0xf8 0x00 0x1e 9510x56 0xf8 0x00 0x2e 9520x57 0xf8 0x03 0x3e 9530x59 0xf8 0xff 0x4e 954 955 956#------------------------------------------------------------------------------ 957# LSL (immediate) 958#------------------------------------------------------------------------------ 959# CHECK: lsl.w r2, r3, #12 960# CHECK: lsls.w r8, r3, #31 961# CHECK: lsls.w r2, r3, #1 962# CHECK: lsl.w r2, r3, #4 963# CHECK: lsls.w r2, r12, #15 964 965# CHECK: lsl.w r3, r3, #19 966# CHECK: lsls.w r8, r8, #2 967# CHECK: lsls.w r7, r7, #5 968# CHECK: lsl.w r12, r12, #21 969 9700x4f 0xea 0x03 0x32 9710x5f 0xea 0xc3 0x78 9720x5f 0xea 0x43 0x02 9730x4f 0xea 0x03 0x12 9740x5f 0xea 0xcc 0x32 975 9760x4f 0xea 0xc3 0x43 9770x5f 0xea 0x88 0x08 9780x5f 0xea 0x47 0x17 9790x4f 0xea 0x4c 0x5c 980 981 982#------------------------------------------------------------------------------ 983# LSL (register) 984#------------------------------------------------------------------------------ 985# CHECK: lsl.w r3, r4, r2 986# CHECK: lsl.w r1, r1, r2 987# CHECK: lsls.w r3, r4, r8 988 9890x04 0xfa 0x02 0xf3 9900x01 0xfa 0x02 0xf1 9910x14 0xfa 0x08 0xf3 992 993 994#------------------------------------------------------------------------------ 995# LSR (immediate) 996#------------------------------------------------------------------------------ 997# CHECK: lsr.w r2, r3, #12 998# CHECK: lsrs.w r8, r3, #32 999# CHECK: lsrs.w r2, r3, #1 1000# CHECK: lsr.w r2, r3, #4 1001# CHECK: lsrs.w r2, r12, #15 1002 1003# CHECK: lsr.w r3, r3, #19 1004# CHECK: lsrs.w r8, r8, #2 1005# CHECK: lsrs.w r7, r7, #5 1006# CHECK: lsr.w r12, r12, #21 1007 10080x4f 0xea 0x13 0x32 10090x5f 0xea 0x13 0x08 10100x5f 0xea 0x53 0x02 10110x4f 0xea 0x13 0x12 10120x5f 0xea 0xdc 0x32 1013 10140x4f 0xea 0xd3 0x43 10150x5f 0xea 0x98 0x08 10160x5f 0xea 0x57 0x17 10170x4f 0xea 0x5c 0x5c 1018 1019 1020#------------------------------------------------------------------------------ 1021# LSR (register) 1022#------------------------------------------------------------------------------ 1023# CHECK: lsr.w r3, r4, r2 1024# CHECK: lsr.w r1, r1, r2 1025# CHECK: lsrs.w r3, r4, r8 1026 10270x24 0xfa 0x02 0xf3 10280x21 0xfa 0x02 0xf1 10290x34 0xfa 0x08 0xf3 1030 1031#------------------------------------------------------------------------------ 1032# MCR/MCR2 1033#------------------------------------------------------------------------------ 1034# CHECK: mcr p7, #1, r5, c1, c1, #4 1035# CHECK: mcr2 p7, #1, r5, c1, c1, #4 1036 10370x21 0xee 0x91 0x57 10380x21 0xfe 0x91 0x57 1039 1040 1041#------------------------------------------------------------------------------ 1042# MCRR/MCRR2 1043#------------------------------------------------------------------------------ 1044# CHECK: mcrr p7, #15, r5, r4, c1 1045# CHECK: mcrr2 p7, #15, r5, r4, c1 1046 10470x44 0xec 0xf1 0x57 10480x44 0xfc 0xf1 0x57 1049 1050 1051#------------------------------------------------------------------------------ 1052# MLA/MLS 1053#------------------------------------------------------------------------------ 1054# CHECK: mla r1, r2, r3, r4 1055# CHECK: mls r1, r2, r3, r4 1056 10570x02 0xfb 0x03 0x41 10580x02 0xfb 0x13 0x41 1059 1060 1061#------------------------------------------------------------------------------ 1062# MOV(immediate) 1063#------------------------------------------------------------------------------ 1064# CHECK: movs r1, #21 1065# CHECK: movs.w r1, #21 1066# CHECK: movs.w r8, #21 1067# CHECK: movw r0, #65535 1068# CHECK: movw r1, #43777 1069# CHECK: movw r1, #43792 1070# CHECK: mov.w r0, #66846720 1071# CHECK: mov.w r0, #66846720 1072# CHECK: movs.w r0, #66846720 1073 10740x15 0x21 10750x5f 0xf0 0x15 0x01 10760x5f 0xf0 0x15 0x08 10770x4f 0xf6 0xff 0x70 10780x4a 0xf6 0x01 0x31 10790x4a 0xf6 0x10 0x31 10800x4f 0xf0 0x7f 0x70 10810x4f 0xf0 0x7f 0x70 10820x5f 0xf0 0x7f 0x70 1083 1084#------------------------------------------------------------------------------ 1085# MOVT 1086#------------------------------------------------------------------------------ 1087# CHECK: movt r3, #7 1088# CHECK: movt r6, #65535 1089# CHECK: it eq 1090# CHECK: movteq r4, #4080 1091 10920xc0 0xf2 0x07 0x03 10930xcf 0xf6 0xff 0x76 10940x08 0xbf 10950xc0 0xf6 0xf0 0x74 1096 1097#------------------------------------------------------------------------------ 1098# MRC/MRC2 1099#------------------------------------------------------------------------------ 1100# CHECK: mrc p14, #0, r1, c1, c2, #4 1101# CHECK: mrc2 p14, #0, r1, c1, c2, #4 1102 11030x11 0xee 0x92 0x1e 11040x11 0xfe 0x92 0x1e 1105 1106 1107#------------------------------------------------------------------------------ 1108# MRRC/MRRC2 1109#------------------------------------------------------------------------------ 1110# CHECK: mrrc p7, #1, r5, r4, c1 1111# CHECK: mrrc2 p7, #1, r5, r4, c1 1112 11130x54 0xec 0x11 0x57 11140x54 0xfc 0x11 0x57 1115 1116 1117#------------------------------------------------------------------------------ 1118# MRS 1119#------------------------------------------------------------------------------ 1120# CHECK: mrs r8, apsr 1121# CHECK: mrs r8, spsr 1122 11230xef 0xf3 0x00 0x88 11240xff 0xf3 0x00 0x88 1125 1126 1127#------------------------------------------------------------------------------ 1128# MSR 1129#------------------------------------------------------------------------------ 1130# CHECK: msr APSR_nzcvq, r1 1131# CHECK: msr APSR_g, r2 1132# CHECK: msr APSR_nzcvq, r3 1133# CHECK: msr APSR_nzcvq, r4 1134# CHECK: msr APSR_nzcvqg, r5 1135# CHECK: msr CPSR_fc, r6 1136# CHECK: msr CPSR_c, r7 1137# CHECK: msr CPSR_x, r8 1138# CHECK: msr CPSR_fc, r9 1139# CHECK: msr CPSR_fc, r11 1140# CHECK: msr CPSR_fsx, r12 1141# CHECK: msr SPSR_fc, r0 1142# CHECK: msr SPSR_fsxc, r5 1143# CHECK: msr CPSR_fsxc, r8 1144 11450x81 0xf3 0x00 0x88 11460x82 0xf3 0x00 0x84 11470x83 0xf3 0x00 0x88 11480x84 0xf3 0x00 0x88 11490x85 0xf3 0x00 0x8c 11500x86 0xf3 0x00 0x89 11510x87 0xf3 0x00 0x81 11520x88 0xf3 0x00 0x82 11530x89 0xf3 0x00 0x89 11540x8b 0xf3 0x00 0x89 11550x8c 0xf3 0x00 0x8e 11560x90 0xf3 0x00 0x89 11570x95 0xf3 0x00 0x8f 11580x88 0xf3 0x00 0x8f 1159 1160 1161#------------------------------------------------------------------------------ 1162# MUL 1163#------------------------------------------------------------------------------ 1164# CHECK: muls r3, r4, r3 1165# CHECK: mul r3, r4, r3 1166# CHECK: mul r3, r4, r6 1167# CHECK: it eq 1168# CHECK: muleq r3, r4, r5 1169 11700x63 0x43 11710x04 0xfb 0x03 0xf3 11720x04 0xfb 0x06 0xf3 11730x08 0xbf 11740x04 0xfb 0x05 0xf3 1175 1176 1177#------------------------------------------------------------------------------ 1178# MVN(immediate) 1179#------------------------------------------------------------------------------ 1180# CHECK: mvns r8, #21 1181# CHECK: mvn r0, #66846720 1182# CHECK: mvns r0, #66846720 1183# CHECK: itte eq 1184# CHECK: mvnseq r1, #12 1185# CHECK: mvneq r1, #12 1186# CHECK: mvnne r1, #12 1187 11880x7f 0xf0 0x15 0x08 11890x6f 0xf0 0x7f 0x70 11900x7f 0xf0 0x7f 0x70 11910x06 0xbf 11920x7f 0xf0 0x0c 0x01 11930x6f 0xf0 0x0c 0x01 11940x6f 0xf0 0x0c 0x01 1195 1196 1197#------------------------------------------------------------------------------ 1198# MVN(register) 1199#------------------------------------------------------------------------------ 1200# CHECK: mvn.w r2, r3 1201# CHECK: mvns r2, r3 1202# CHECK: mvn.w r5, r6, lsl #19 1203# CHECK: mvn.w r5, r6, lsr #9 1204# CHECK: mvn.w r5, r6, asr #4 1205# CHECK: mvn.w r5, r6, ror #6 1206# CHECK: mvn.w r5, r6, rrx 1207# CHECK: it eq 1208# CHECK: mvneq r2, r3 1209 12100x6f 0xea 0x03 0x02 12110xda 0x43 12120x6f 0xea 0xc6 0x45 12130x6f 0xea 0x56 0x25 12140x6f 0xea 0x26 0x15 12150x6f 0xea 0xb6 0x15 12160x6f 0xea 0x36 0x05 12170x08 0xbf 12180xda 0x43 1219 1220#------------------------------------------------------------------------------ 1221# NOP 1222#------------------------------------------------------------------------------ 1223# CHECK: nop.w 1224 12250xaf 0xf3 0x00 0x80 1226 1227 1228#------------------------------------------------------------------------------ 1229# ORN 1230#------------------------------------------------------------------------------ 1231# CHECK: orn r4, r5, #61440 1232# CHECK: orn r4, r5, r6 1233# CHECK: orns r4, r5, r6 1234# CHECK: orn r4, r5, r6, lsl #5 1235# CHECK: orns r4, r5, r6, lsr #5 1236# CHECK: orn r4, r5, r6, lsr #5 1237# CHECK: orns r4, r5, r6, asr #5 1238# CHECK: orn r4, r5, r6, ror #5 1239 12400x65 0xf4 0x70 0x44 12410x65 0xea 0x06 0x04 12420x75 0xea 0x06 0x04 12430x65 0xea 0x46 0x14 12440x75 0xea 0x56 0x14 12450x65 0xea 0x56 0x14 12460x75 0xea 0x66 0x14 12470x65 0xea 0x76 0x14 1248 1249 1250#------------------------------------------------------------------------------ 1251# ORR 1252#------------------------------------------------------------------------------ 1253# CHECK: orr r4, r5, #61440 1254# CHECK: orr.w r4, r5, r6 1255# CHECK: orr.w r4, r5, r6, lsl #5 1256# CHECK: orrs.w r4, r5, r6, lsr #5 1257# CHECK: orr.w r4, r5, r6, lsr #5 1258# CHECK: orrs.w r4, r5, r6, asr #5 1259# CHECK: orr.w r4, r5, r6, ror #5 1260 12610x45 0xf4 0x70 0x44 12620x45 0xea 0x06 0x04 12630x45 0xea 0x46 0x14 12640x55 0xea 0x56 0x14 12650x45 0xea 0x56 0x14 12660x55 0xea 0x66 0x14 12670x45 0xea 0x76 0x14 1268 1269 1270#------------------------------------------------------------------------------ 1271# PKH 1272#------------------------------------------------------------------------------ 1273# CHECK: pkhbt r2, r2, r3 1274# CHECK: pkhbt r2, r2, r3, lsl #31 1275# CHECK: pkhbt r2, r2, r3, lsl #15 1276 1277# CHECK: pkhtb r2, r2, r3, asr #31 1278# CHECK: pkhtb r2, r2, r3, asr #15 1279 12800xc2 0xea 0x03 0x02 12810xc2 0xea 0xc3 0x72 12820xc2 0xea 0xc3 0x32 1283 12840xc2 0xea 0xe3 0x72 12850xc2 0xea 0xe3 0x32 1286 1287 1288#------------------------------------------------------------------------------ 1289# PLD(immediate) 1290#------------------------------------------------------------------------------ 1291# CHECK: pld [r5, #-4] 1292# CHECK: pld [r6, #32] 1293# CHECK: pld [r6, #33] 1294# CHECK: pld [r6, #257] 1295# CHECK: pld [r7, #257] 1296 12970x15 0xf8 0x04 0xfc 12980x96 0xf8 0x20 0xf0 12990x96 0xf8 0x21 0xf0 13000x96 0xf8 0x01 0xf1 13010x97 0xf8 0x01 0xf1 1302 1303#------------------------------------------------------------------------------ 1304# PLD(register) 1305#------------------------------------------------------------------------------ 1306# CHECK: pld [r8, r1] 1307# CHECK: pld [r5, r2] 1308# CHECK: pld [r0, r2, lsl #3] 1309# CHECK: pld [r8, r2, lsl #2] 1310# CHECK: pld [sp, r2, lsl #1] 1311# CHECK: pld [sp, r2] 1312 13130x18 0xf8 0x01 0xf0 13140x15 0xf8 0x02 0xf0 13150x10 0xf8 0x32 0xf0 13160x18 0xf8 0x22 0xf0 13170x1d 0xf8 0x12 0xf0 13180x1d 0xf8 0x02 0xf0 1319 1320#------------------------------------------------------------------------------ 1321# PLD(literal) 1322#------------------------------------------------------------------------------ 1323# CHECK: pld [pc, #-0] 1324# CHECK: pld [pc, #455] 1325# CHECK: pld [pc, #0] 1326 13270x1f 0xf8 0x00 0xf0 13280x9f 0xf8 0xc7 0xf1 13290x9f 0xf8 0x00 0xf0 1330 1331#------------------------------------------------------------------------------ 1332# PLI(immediate) 1333#------------------------------------------------------------------------------ 1334# CHECK: pli [r5, #-4] 1335# CHECK: pli [r6, #32] 1336# CHECK: pli [r6, #33] 1337# CHECK: pli [r6, #257] 1338# CHECK: pli [r7, #257] 1339 13400x15 0xf9 0x04 0xfc 13410x96 0xf9 0x20 0xf0 13420x96 0xf9 0x21 0xf0 13430x96 0xf9 0x01 0xf1 13440x97 0xf9 0x01 0xf1 1345 1346#------------------------------------------------------------------------------ 1347# PLI(register) 1348#------------------------------------------------------------------------------ 1349# CHECK: pli [r8, r1] 1350# CHECK: pli [r5, r2] 1351# CHECK: pli [r0, r2, lsl #3] 1352# CHECK: pli [r8, r2, lsl #2] 1353# CHECK: pli [sp, r2, lsl #1] 1354# CHECK: pli [sp, r2] 1355 13560x18 0xf9 0x01 0xf0 13570x15 0xf9 0x02 0xf0 13580x10 0xf9 0x32 0xf0 13590x18 0xf9 0x22 0xf0 13600x1d 0xf9 0x12 0xf0 13610x1d 0xf9 0x02 0xf0 1362 1363#------------------------------------------------------------------------------ 1364# PLI(literal) 1365#------------------------------------------------------------------------------ 1366# CHECK: pli [pc, #-0] 1367# CHECK: pli [pc, #-328] 1368# CHECK: pli [pc, #0] 1369 13700x1f 0xf9 0x00 0xf0 13710x1f 0xf9 0x48 0xf1 13720x9f 0xf9 0x00 0xf0 1373 1374 1375#------------------------------------------------------------------------------ 1376# QADD/QADD16/QADD8 1377#------------------------------------------------------------------------------ 1378# CHECK: qadd r1, r2, r3 1379# CHECK: qadd16 r1, r2, r3 1380# CHECK: qadd8 r1, r2, r3 1381# CHECK: itte gt 1382# CHECK: qaddgt r1, r2, r3 1383# CHECK: qadd16gt r1, r2, r3 1384# CHECK: qadd8le r1, r2, r3 1385 13860x83 0xfa 0x82 0xf1 13870x92 0xfa 0x13 0xf1 13880x82 0xfa 0x13 0xf1 13890xc6 0xbf 13900x83 0xfa 0x82 0xf1 13910x92 0xfa 0x13 0xf1 13920x82 0xfa 0x13 0xf1 1393 1394 1395#------------------------------------------------------------------------------ 1396# QDADD/QDSUB 1397#------------------------------------------------------------------------------ 1398# CHECK: qdadd r6, r7, r8 1399# CHECK: qdsub r6, r7, r8 1400# CHECK: itt hi 1401# CHECK: qdaddhi r6, r7, r8 1402# CHECK: qdsubhi r6, r7, r8 1403 14040x88 0xfa 0x97 0xf6 14050x88 0xfa 0xb7 0xf6 14060x84 0xbf 14070x88 0xfa 0x97 0xf6 14080x88 0xfa 0xb7 0xf6 1409 1410 1411#------------------------------------------------------------------------------ 1412# QSAX 1413#------------------------------------------------------------------------------ 1414# CHECK: qsax r9, r12, r0 1415# CHECK: it eq 1416# CHECK: qsaxeq r9, r12, r0 1417 14180xec 0xfa 0x10 0xf9 14190x08 0xbf 14200xec 0xfa 0x10 0xf9 1421 1422 1423#------------------------------------------------------------------------------ 1424# QSUB/QSUB16/QSUB8 1425#------------------------------------------------------------------------------ 1426# CHECK: qsub r1, r2, r3 1427# CHECK: qsub16 r1, r2, r3 1428# CHECK: qsub8 r1, r2, r3 1429# CHECK: itet le 1430# CHECK: qsuble r1, r2, r3 1431# CHECK: qsub16gt r1, r2, r3 1432# CHECK: qsub8le r1, r2, r3 1433 14340x83 0xfa 0xa2 0xf1 14350xd2 0xfa 0x13 0xf1 14360xc2 0xfa 0x13 0xf1 14370xd6 0xbf 14380x83 0xfa 0xa2 0xf1 14390xd2 0xfa 0x13 0xf1 14400xc2 0xfa 0x13 0xf1 1441 1442 1443#------------------------------------------------------------------------------ 1444# RBIT 1445#------------------------------------------------------------------------------ 1446# CHECK: rbit r1, r2 1447# CHECK: it ne 1448# CHECK: rbitne r1, r2 1449 14500x92 0xfa 0xa2 0xf1 14510x18 0xbf 14520x92 0xfa 0xa2 0xf1 1453 1454 1455#------------------------------------------------------------------------------ 1456# REV 1457#------------------------------------------------------------------------------ 1458# CHECK: rev.w r1, r2 1459# CHECK: rev.w r2, r8 1460# CHECK: itt ne 1461# CHECK: revne r1, r2 1462# CHECK: revne.w r1, r8 1463 14640x92 0xfa 0x82 0xf1 14650x98 0xfa 0x88 0xf2 14660x1c 0xbf 14670x11 0xba 14680x98 0xfa 0x88 0xf1 1469 1470 1471#------------------------------------------------------------------------------ 1472# REV16 1473#------------------------------------------------------------------------------ 1474# CHECK: rev16.w r1, r2 1475# CHECK: rev16.w r2, r8 1476# CHECK: itt ne 1477# CHECK: rev16ne r1, r2 1478# CHECK: rev16ne.w r1, r8 1479 14800x92 0xfa 0x92 0xf1 14810x98 0xfa 0x98 0xf2 14820x1c 0xbf 14830x51 0xba 14840x98 0xfa 0x98 0xf1 1485 1486 1487#------------------------------------------------------------------------------ 1488# REVSH 1489#------------------------------------------------------------------------------ 1490# CHECK: revsh.w r1, r2 1491# CHECK: revsh.w r2, r8 1492# CHECK: itt ne 1493# CHECK: revshne r1, r2 1494# CHECK: revshne.w r1, r8 1495 14960x92 0xfa 0xb2 0xf1 14970x98 0xfa 0xb8 0xf2 14980x1c 0xbf 14990xd1 0xba 15000x98 0xfa 0xb8 0xf1 1501 1502 1503#------------------------------------------------------------------------------ 1504# ROR (immediate) 1505#------------------------------------------------------------------------------ 1506# CHECK: ror.w r2, r3, #12 1507# CHECK: rors.w r8, r3, #31 1508# CHECK: rors.w r2, r3, #1 1509# CHECK: ror.w r2, r3, #4 1510# CHECK: rors.w r2, r12, #15 1511 1512# CHECK: ror.w r3, r3, #19 1513# CHECK: rors.w r8, r8, #2 1514# CHECK: rors.w r7, r7, #5 1515# CHECK: ror.w r12, r12, #21 1516 15170x4f 0xea 0x33 0x32 15180x5f 0xea 0xf3 0x78 15190x5f 0xea 0x73 0x02 15200x4f 0xea 0x33 0x12 15210x5f 0xea 0xfc 0x32 1522 15230x4f 0xea 0xf3 0x43 15240x5f 0xea 0xb8 0x08 15250x5f 0xea 0x77 0x17 15260x4f 0xea 0x7c 0x5c 1527 1528 1529#------------------------------------------------------------------------------ 1530# ROR (register) 1531#------------------------------------------------------------------------------ 1532# CHECK: ror.w r3, r4, r2 1533# CHECK: ror.w r1, r1, r2 1534# CHECK: rors.w r3, r4, r8 1535 15360x64 0xfa 0x02 0xf3 15370x61 0xfa 0x02 0xf1 15380x74 0xfa 0x08 0xf3 1539 1540 1541#------------------------------------------------------------------------------ 1542# RRX 1543#------------------------------------------------------------------------------ 1544# CHECK: rrx r1, r2 1545# CHECK: rrxs r1, r2 1546# CHECK: ite lt 1547# CHECK: rrxlt r9, r12 1548# CHECK: rrxsge r8, r3 1549 15500x4f 0xea 0x32 0x01 15510x5f 0xea 0x32 0x01 15520xb4 0xbf 15530x4f 0xea 0x3c 0x09 15540x5f 0xea 0x33 0x08 1555 1556#------------------------------------------------------------------------------ 1557# RSB (immediate) 1558#------------------------------------------------------------------------------ 1559# CHECK: rsb.w r2, r5, #1044480 1560# CHECK: rsbs.w r3, r12, #15 1561# CHECK: rsb.w r1, r1, #255 1562 15630xc5 0xf5 0x7f 0x22 15640xdc 0xf1 0x0f 0x03 15650xc1 0xf1 0xff 0x01 1566 1567 1568#------------------------------------------------------------------------------ 1569# RSB (register) 1570#------------------------------------------------------------------------------ 1571# CHECK: rsb r4, r4, r8 1572# CHECK: rsb r4, r9, r8 1573# CHECK: rsb r1, r4, r8, asr #3 1574# CHECK: rsbs r2, r1, r7, lsl #1 1575 15760xc4 0xeb 0x08 0x04 15770xc9 0xeb 0x08 0x04 15780xc4 0xeb 0xe8 0x01 15790xd1 0xeb 0x47 0x02 1580 1581 1582#------------------------------------------------------------------------------ 1583# SADD16 1584#------------------------------------------------------------------------------ 1585# CHECK: sadd16 r3, r4, r8 1586# CHECK: it ne 1587# CHECK: sadd16ne r3, r4, r8 1588 15890x94 0xfa 0x08 0xf3 15900x18 0xbf 15910x94 0xfa 0x08 0xf3 1592 1593 1594#------------------------------------------------------------------------------ 1595# SADD8 1596#------------------------------------------------------------------------------ 1597# CHECK: sadd8 r3, r4, r8 1598# CHECK: it ne 1599# CHECK: sadd8ne r3, r4, r8 1600 16010x84 0xfa 0x08 0xf3 16020x18 0xbf 16030x84 0xfa 0x08 0xf3 1604 1605 1606#------------------------------------------------------------------------------ 1607# SASX 1608#------------------------------------------------------------------------------ 1609# CHECK: sasx r9, r2, r7 1610# CHECK: it ne 1611# CHECK: sasxne r2, r5, r6 1612 16130xa2 0xfa 0x07 0xf9 16140x18 0xbf 16150xa5 0xfa 0x06 0xf2 1616 1617 1618#------------------------------------------------------------------------------ 1619# SBC (immediate) 1620#------------------------------------------------------------------------------ 1621# CHECK: sbc r0, r1, #4 1622# CHECK: sbcs r0, r1, #0 1623# CHECK: sbc r1, r2, #255 1624# CHECK: sbc r3, r7, #5570645 1625# CHECK: sbc r8, r12, #2852170240 1626# CHECK: sbc r9, r7, #2779096485 1627# CHECK: sbc r5, r3, #2264924160 1628# CHECK: sbc r4, r2, #2139095040 1629# CHECK: sbc r4, r2, #1664 1630 16310x61 0xf1 0x04 0x00 16320x71 0xf1 0x00 0x00 16330x62 0xf1 0xff 0x01 16340x67 0xf1 0x55 0x13 16350x6c 0xf1 0xaa 0x28 16360x67 0xf1 0xa5 0x39 16370x63 0xf1 0x07 0x45 16380x62 0xf1 0xff 0x44 16390x62 0xf5 0xd0 0x64 1640 1641 1642#------------------------------------------------------------------------------ 1643# SBC (register) 1644#------------------------------------------------------------------------------ 1645# CHECK: sbc.w r4, r5, r6 1646# CHECK: sbcs.w r4, r5, r6 1647# CHECK: sbc.w r9, r1, r3 1648# CHECK: sbcs.w r9, r1, r3 1649# CHECK: sbc.w r0, r1, r3, ror #4 1650# CHECK: sbcs.w r0, r1, r3, lsl #7 1651# CHECK: sbc.w r0, r1, r3, lsr #31 1652# CHECK: sbcs.w r0, r1, r3, asr #32 1653 16540x65 0xeb 0x06 0x04 16550x75 0xeb 0x06 0x04 16560x61 0xeb 0x03 0x09 16570x71 0xeb 0x03 0x09 16580x61 0xeb 0x33 0x10 16590x71 0xeb 0xc3 0x10 16600x61 0xeb 0xd3 0x70 16610x71 0xeb 0x23 0x00 1662 1663 1664#------------------------------------------------------------------------------ 1665# SBFX 1666#------------------------------------------------------------------------------ 1667# CHECK: sbfx r4, r5, #16, #1 1668# CHECK: it gt 1669# CHECK: sbfxgt r4, r5, #16, #16 1670 16710x45 0xf3 0x00 0x44 16720xc8 0xbf 16730x45 0xf3 0x0f 0x44 1674 1675 1676#------------------------------------------------------------------------------ 1677# SEL 1678#------------------------------------------------------------------------------ 1679# CHECK: sel r5, r9, r2 1680# CHECK: it le 1681# CHECK: selle r5, r9, r2 1682 16830xa9 0xfa 0x82 0xf5 16840xd8 0xbf 16850xa9 0xfa 0x82 0xf5 1686 1687 1688#------------------------------------------------------------------------------ 1689# SEV 1690#------------------------------------------------------------------------------ 1691# CHECK: sev.w 1692# CHECK: it eq 1693# CHECK: seveq.w 1694 16950xaf 0xf3 0x04 0x80 16960x08 0xbf 16970xaf 0xf3 0x04 0x80 1698 1699 1700#------------------------------------------------------------------------------ 1701# SADD16/SADD8 1702#------------------------------------------------------------------------------ 1703# CHECK: sadd16 r1, r2, r3 1704# CHECK: sadd8 r1, r2, r3 1705# CHECK: ite gt 1706# CHECK: sadd16gt r1, r2, r3 1707# CHECK: sadd8le r1, r2, r3 1708 17090x92 0xfa 0x03 0xf1 17100x82 0xfa 0x03 0xf1 17110xcc 0xbf 17120x92 0xfa 0x03 0xf1 17130x82 0xfa 0x03 0xf1 1714 1715 1716#------------------------------------------------------------------------------ 1717# SHASX 1718#------------------------------------------------------------------------------ 1719# CHECK: shasx r4, r8, r2 1720# CHECK: it gt 1721# CHECK: shasxgt r4, r8, r2 1722 17230xa8 0xfa 0x22 0xf4 17240xc8 0xbf 17250xa8 0xfa 0x22 0xf4 1726 1727 1728#------------------------------------------------------------------------------ 1729# SHASX 1730#------------------------------------------------------------------------------ 1731# CHECK: shsax r4, r8, r2 1732# CHECK: it gt 1733# CHECK: shsaxgt r4, r8, r2 1734 17350xe8 0xfa 0x22 0xf4 17360xc8 0xbf 17370xe8 0xfa 0x22 0xf4 1738 1739 1740#------------------------------------------------------------------------------ 1741# SHSUB16/SHSUB8 1742#------------------------------------------------------------------------------ 1743# CHECK: shsub16 r4, r8, r2 1744# CHECK: shsub8 r4, r8, r2 1745# CHECK: itt gt 1746# CHECK: shsub16gt r4, r8, r2 1747# CHECK: shsub8gt r4, r8, r2 1748 17490xd8 0xfa 0x22 0xf4 17500xc8 0xfa 0x22 0xf4 17510xc4 0xbf 17520xd8 0xfa 0x22 0xf4 17530xc8 0xfa 0x22 0xf4 1754 1755 1756#------------------------------------------------------------------------------ 1757# SMLABB/SMLABT/SMLATB/SMLATT 1758#------------------------------------------------------------------------------ 1759# CHECK: smlabb r3, r1, r9, r0 1760# CHECK: smlabt r5, r6, r4, r1 1761# CHECK: smlatb r4, r2, r3, r2 1762# CHECK: smlatt r8, r3, r8, r4 1763# CHECK: itete gt 1764# CHECK: smlabbgt r3, r1, r9, r0 1765# CHECK: smlabtle r5, r6, r4, r1 1766# CHECK: smlatbgt r4, r2, r3, r2 1767# CHECK: smlattle r8, r3, r8, r4 1768 17690x11 0xfb 0x09 0x03 17700x16 0xfb 0x14 0x15 17710x12 0xfb 0x23 0x24 17720x13 0xfb 0x38 0x48 17730xcb 0xbf 17740x11 0xfb 0x09 0x03 17750x16 0xfb 0x14 0x15 17760x12 0xfb 0x23 0x24 17770x13 0xfb 0x38 0x48 1778 1779 1780#------------------------------------------------------------------------------ 1781# SMLAD/SMLADX 1782#------------------------------------------------------------------------------ 1783# CHECK: smlad r2, r3, r5, r8 1784# CHECK: smladx r2, r3, r5, r8 1785# CHECK: itt hi 1786# CHECK: smladhi r2, r3, r5, r8 1787# CHECK: smladxhi r2, r3, r5, r8 1788 17890x23 0xfb 0x05 0x82 17900x23 0xfb 0x15 0x82 17910x84 0xbf 17920x23 0xfb 0x05 0x82 17930x23 0xfb 0x15 0x82 1794 1795 1796#------------------------------------------------------------------------------ 1797# SMLAL 1798#------------------------------------------------------------------------------ 1799# CHECK: smlal r2, r3, r5, r8 1800# CHECK: it eq 1801# CHECK: smlaleq r2, r3, r5, r8 1802 18030xc5 0xfb 0x08 0x23 18040x08 0xbf 18050xc5 0xfb 0x08 0x23 1806 1807 1808#------------------------------------------------------------------------------ 1809# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1810#------------------------------------------------------------------------------ 1811# CHECK: smlalbb r3, r1, r9, r0 1812# CHECK: smlalbt r5, r6, r4, r1 1813# CHECK: smlaltb r4, r2, r3, r2 1814# CHECK: smlaltt r8, r3, r8, r4 1815# CHECK: iteet ge 1816# CHECK: smlalbbge r3, r1, r9, r0 1817# CHECK: smlalbtlt r5, r6, r4, r1 1818# CHECK: smlaltblt r4, r2, r3, r2 1819# CHECK: smlalttge r8, r3, r8, r4 1820 18210xc9 0xfb 0x80 0x31 18220xc4 0xfb 0x91 0x56 18230xc3 0xfb 0xa2 0x42 18240xc8 0xfb 0xb4 0x83 18250xad 0xbf 18260xc9 0xfb 0x80 0x31 18270xc4 0xfb 0x91 0x56 18280xc3 0xfb 0xa2 0x42 18290xc8 0xfb 0xb4 0x83 1830 1831#------------------------------------------------------------------------------ 1832# SMLALD/SMLALDX 1833#------------------------------------------------------------------------------ 1834# CHECK: smlald r2, r3, r5, r8 1835# CHECK: smlaldx r2, r3, r5, r8 1836# CHECK: ite eq 1837# CHECK: smlaldeq r2, r3, r5, r8 1838# CHECK: smlaldxne r2, r3, r5, r8 1839 18400xc5 0xfb 0xc8 0x23 18410xc5 0xfb 0xd8 0x23 18420x0c 0xbf 18430xc5 0xfb 0xc8 0x23 18440xc5 0xfb 0xd8 0x23 1845 1846 1847#------------------------------------------------------------------------------ 1848# SMLAWB/SMLAWT 1849#------------------------------------------------------------------------------ 1850# CHECK: smlawb r2, r3, r10, r8 1851# CHECK: smlawt r8, r3, r5, r9 1852# CHECK: ite eq 1853# CHECK: smlawbeq r2, r7, r5, r8 1854# CHECK: smlawtne r1, r3, r0, r8 1855 18560x33 0xfb 0x0a 0x82 18570x33 0xfb 0x15 0x98 18580x0c 0xbf 18590x37 0xfb 0x05 0x82 18600x33 0xfb 0x10 0x81 1861 1862 1863#------------------------------------------------------------------------------ 1864# SMLSD/SMLSDX 1865#------------------------------------------------------------------------------ 1866# CHECK: smlsd r2, r3, r5, r8 1867# CHECK: smlsdx r2, r3, r5, r8 1868# CHECK: ite le 1869# CHECK: smlsdle r2, r3, r5, r8 1870# CHECK: smlsdxgt r2, r3, r5, r8 1871 18720x43 0xfb 0x05 0x82 18730x43 0xfb 0x15 0x82 18740xd4 0xbf 18750x43 0xfb 0x05 0x82 18760x43 0xfb 0x15 0x82 1877 1878 1879#------------------------------------------------------------------------------ 1880# SMLSLD/SMLSLDX 1881#------------------------------------------------------------------------------ 1882# CHECK: smlsld r2, r9, r5, r1 1883# CHECK: smlsldx r4, r11, r2, r8 1884# CHECK: ite ge 1885# CHECK: smlsldge r8, r2, r5, r6 1886# CHECK: smlsldxlt r1, r0, r3, r8 1887 18880xd5 0xfb 0xc1 0x29 18890xd2 0xfb 0xd8 0x4b 18900xac 0xbf 18910xd5 0xfb 0xc6 0x82 18920xd3 0xfb 0xd8 0x10 1893 1894 1895#------------------------------------------------------------------------------ 1896# SMMLA/SMMLAR 1897#------------------------------------------------------------------------------ 1898# CHECK: smmla r1, r2, r3, r4 1899# CHECK: smmlar r4, r3, r2, r1 1900# CHECK: ite lo 1901# CHECK: smmlalo r1, r2, r3, r4 1902# CHECK: smmlarhs r4, r3, r2, r1 1903 19040x52 0xfb 0x03 0x41 19050x53 0xfb 0x12 0x14 19060x34 0xbf 19070x52 0xfb 0x03 0x41 19080x53 0xfb 0x12 0x14 1909 1910 1911#------------------------------------------------------------------------------ 1912# SMMLS/SMMLSR 1913#------------------------------------------------------------------------------ 1914# CHECK: smmls r1, r2, r3, r4 1915# CHECK: smmlsr r4, r3, r2, r1 1916# CHECK: ite lo 1917# CHECK: smmlslo r1, r2, r3, r4 1918# CHECK: smmlsrhs r4, r3, r2, r1 1919 19200x62 0xfb 0x03 0x41 19210x63 0xfb 0x12 0x14 19220x34 0xbf 19230x62 0xfb 0x03 0x41 19240x63 0xfb 0x12 0x14 1925 1926#------------------------------------------------------------------------------ 1927# SSAT 1928#------------------------------------------------------------------------------ 1929# CHECK: ssat r9, #30, r0, asr #2 1930 19310x20 0xf3 0x9d 0x09 1932 1933#------------------------------------------------------------------------------ 1934# STR (immediate) 1935#------------------------------------------------------------------------------ 1936# CHECK: str r10, [r11], #0 1937 19380x4b 0xf8 0x00 0xab 1939 1940#------------------------------------------------------------------------------ 1941# STRD (immediate) 1942#------------------------------------------------------------------------------ 1943# CHECK: strd r1, r1, [r0], #0 1944# CHECK: strd r6, r3, [r5], #-8 1945# CHECK: strd r8, r5, [r5], #-0 1946# CHECK: strd r7, r4, [r5], #-4 1947# CHECK: strd r0, r1, [r2, #-0]! 1948# CHECK: strd r0, r1, [r2, #0]! 1949# CHECK: strd r0, r1, [r2, #-0] 1950 19510xe0 0xe8 0x00 0x11 19520x65 0xe8 0x02 0x63 19530x65 0xe8 0x00 0x85 19540x65 0xe8 0x01 0x74 19550x62 0xe9 0x00 0x01 19560xe2 0xe9 0x00 0x01 19570x42 0xe9 0x00 0x01 1958 1959#------------------------------------------------------------------------------ 1960# STREX/STREXB/STREXH/STREXD 1961#------------------------------------------------------------------------------ 1962# CHECK: strex r1, r8, [r4] 1963# CHECK: strex r8, r2, [r4] 1964# CHECK: strex r2, r12, [sp, #128] 1965# CHECK: strexb r5, r1, [r7] 1966# CHECK: strexh r9, r7, [r12] 1967# CHECK: strexd r9, r3, r6, [r4] 1968 19690x44 0xe8 0x00 0x81 19700x44 0xe8 0x00 0x28 19710x4d 0xe8 0x20 0xc2 19720xc7 0xe8 0x45 0x1f 19730xcc 0xe8 0x59 0x7f 19740xc4 0xe8 0x79 0x36 1975 1976 1977#------------------------------------------------------------------------------ 1978# STRH(immediate) 1979#------------------------------------------------------------------------------ 1980# CHECK: strh r5, [r5, #-4] 1981# CHECK: strh r5, [r6, #32] 1982# CHECK: strh.w r5, [r6, #33] 1983# CHECK: strh.w r5, [r6, #257] 1984# CHECK: strh.w lr, [r7, #257] 1985# CHECK: strh r5, [r8, #255]! 1986# CHECK: strh r2, [r5, #4]! 1987# CHECK: strh r1, [r4, #-4]! 1988# CHECK: strh r1, [r4, #0]! 1989# CHECK: strh lr, [r3], #255 1990# CHECK: strh r9, [r2], #4 1991# CHECK: strh r3, [sp], #-4 1992 19930x25 0xf8 0x04 0x5c 19940x35 0x84 19950xa6 0xf8 0x21 0x50 19960xa6 0xf8 0x01 0x51 19970xa7 0xf8 0x01 0xe1 19980x28 0xf8 0xff 0x5f 19990x25 0xf8 0x04 0x2f 20000x24 0xf8 0x04 0x1d 20010x24 0xf8 0x00 0x1f 20020x23 0xf8 0xff 0xeb 20030x22 0xf8 0x04 0x9b 20040x2d 0xf8 0x04 0x39 2005 2006 2007#------------------------------------------------------------------------------ 2008# STRH(register) 2009#------------------------------------------------------------------------------ 2010# CHECK: strh.w r1, [r8, r1] 2011# CHECK: strh.w r4, [r5, r2] 2012# CHECK: strh.w r6, [r0, r2, lsl #3] 2013# CHECK: strh.w r8, [r8, r2, lsl #2] 2014# CHECK: strh.w r7, [sp, r2, lsl #1] 2015# CHECK: strh.w r7, [sp, r2] 2016 20170x28 0xf8 0x01 0x10 20180x25 0xf8 0x02 0x40 20190x20 0xf8 0x32 0x60 20200x28 0xf8 0x22 0x80 20210x2d 0xf8 0x12 0x70 20220x2d 0xf8 0x02 0x70 2023 2024 2025#------------------------------------------------------------------------------ 2026# STRHT 2027#------------------------------------------------------------------------------ 2028# CHECK: strht r1, [r2] 2029# CHECK: strht r1, [r8] 2030# CHECK: strht r1, [r8, #3] 2031# CHECK: strht r1, [r8, #255] 2032 20330x22 0xf8 0x00 0x1e 20340x28 0xf8 0x00 0x1e 20350x28 0xf8 0x03 0x1e 20360x28 0xf8 0xff 0x1e 2037 2038 2039#------------------------------------------------------------------------------ 2040# STRT 2041#------------------------------------------------------------------------------ 2042# CHECK: strt r1, [r2] 2043# CHECK: strt r1, [r8] 2044# CHECK: strt r1, [r8, #3] 2045# CHECK: strt r1, [r8, #255] 2046 20470x42 0xf8 0x00 0x1e 20480x48 0xf8 0x00 0x1e 20490x48 0xf8 0x03 0x1e 20500x48 0xf8 0xff 0x1e 2051 2052 2053#------------------------------------------------------------------------------ 2054# SUB (immediate) 2055#------------------------------------------------------------------------------ 2056# CHECK: itet eq 2057# CHECK: subeq r1, r2, #4 2058# CHECK: subwne r5, r3, #1023 2059# CHECK: subweq r4, r5, #293 2060# CHECK: sub.w r2, sp, #1024 2061# CHECK: sub.w r2, r8, #65280 2062# CHECK: subw r2, r3, #257 2063# CHECK: sub.w r12, r6, #256 2064# CHECK: subw r12, r6, #256 2065# CHECK: subs.w r1, r2, #496 2066# CHECK: subs pc, lr, #4 2067 20680x0a 0xbf 20690x11 0x1f 20700xa3 0xf2 0xff 0x35 20710xa5 0xf2 0x25 0x14 20720xad 0xf5 0x80 0x62 20730xa8 0xf5 0x7f 0x42 20740xa3 0xf2 0x01 0x12 20750xa6 0xf5 0x80 0x7c 20760xa6 0xf2 0x00 0x1c 20770xb2 0xf5 0xf8 0x71 20780xde 0xf3 0x04 0x8f 2079 2080 2081#------------------------------------------------------------------------------ 2082# SUB (register) 2083#------------------------------------------------------------------------------ 2084# CHECK: sub.w r4, r5, r6 2085# CHECK: sub.w r4, r5, r6, lsl #5 2086# CHECK: sub.w r4, r5, r6, lsr #5 2087# CHECK: sub.w r4, r5, r6, lsr #5 2088# CHECK: sub.w r4, r5, r6, asr #5 2089# CHECK: sub.w r4, r5, r6, ror #5 2090# CHECK: sub.w r5, r2, r12, rrx 2091 20920xa5 0xeb 0x06 0x04 20930xa5 0xeb 0x46 0x14 20940xa5 0xeb 0x56 0x14 20950xa5 0xeb 0x56 0x14 20960xa5 0xeb 0x66 0x14 20970xa5 0xeb 0x76 0x14 20980xa2 0xeb 0x3c 0x05 2099 2100 2101#------------------------------------------------------------------------------ 2102# SVC 2103#------------------------------------------------------------------------------ 2104# CHECK: svc #0 2105# CHECK: ite eq 2106# CHECK: svceq #255 2107# CHECK: svcne #33 2108 21090x00 0xdf 21100x0c 0xbf 21110xff 0xdf 21120x21 0xdf 2113 2114#------------------------------------------------------------------------------ 2115# SXTAB 2116#------------------------------------------------------------------------------ 2117# CHECK: sxtab r2, r3, r4 2118# CHECK: sxtab r4, r5, r6 2119# CHECK: it lt 2120# CHECK: sxtablt r6, r2, r9, ror #8 2121# CHECK: sxtab r5, r1, r4, ror #16 2122# CHECK: sxtab r7, r8, r3, ror #24 2123 21240x43 0xfa 0x84 0xf2 21250x45 0xfa 0x86 0xf4 21260xb8 0xbf 21270x42 0xfa 0x99 0xf6 21280x41 0xfa 0xa4 0xf5 21290x48 0xfa 0xb3 0xf7 2130 2131 2132#------------------------------------------------------------------------------ 2133# SXTAB16 2134#------------------------------------------------------------------------------ 2135# CHECK: sxtab16 r6, r2, r7 2136# CHECK: sxtab16 r3, r5, r8, ror #8 2137# CHECK: sxtab16 r3, r2, r1, ror #16 2138# CHECK: ite ne 2139# CHECK: sxtab16ne r0, r1, r4 2140# CHECK: sxtab16eq r1, r2, r3, ror #24 2141 21420x22 0xfa 0x87 0xf6 21430x25 0xfa 0x98 0xf3 21440x22 0xfa 0xa1 0xf3 21450x14 0xbf 21460x21 0xfa 0x84 0xf0 21470x22 0xfa 0xb3 0xf1 2148 2149 2150#------------------------------------------------------------------------------ 2151# SXTAH 2152#------------------------------------------------------------------------------ 2153# CHECK: sxtah r1, r3, r9 2154# CHECK: sxtah r3, r8, r3, ror #8 2155# CHECK: sxtah r9, r3, r3, ror #24 2156# CHECK: ite hi 2157# CHECK: sxtahhi r6, r1, r6 2158# CHECK: sxtahls r2, r2, r4, ror #16 2159 21600x03 0xfa 0x89 0xf1 21610x08 0xfa 0x93 0xf3 21620x03 0xfa 0xb3 0xf9 21630x8c 0xbf 21640x01 0xfa 0x86 0xf6 21650x02 0xfa 0xa4 0xf2 2166 2167 2168#------------------------------------------------------------------------------ 2169# SXTB 2170#------------------------------------------------------------------------------ 2171# CHECK: sxtb r5, r6 2172# CHECK: sxtb.w r6, r9, ror #8 2173# CHECK: sxtb.w r8, r3, ror #24 2174# CHECK: ite ge 2175# CHECK: sxtbge r2, r4 2176# CHECK: sxtblt.w r5, r1, ror #16 2177 21780x75 0xb2 21790x4f 0xfa 0x99 0xf6 21800x4f 0xfa 0xb3 0xf8 21810xac 0xbf 21820x62 0xb2 21830x4f 0xfa 0xa1 0xf5 2184 2185 2186#------------------------------------------------------------------------------ 2187# SXTB16 2188#------------------------------------------------------------------------------ 2189# CHECK: sxtb16 r1, r4 2190# CHECK: sxtb16 r6, r7 2191# CHECK: sxtb16 r3, r1, ror #16 2192# CHECK: ite hs 2193# CHECK: sxtb16hs r3, r5, ror #8 2194# CHECK: sxtb16lo r2, r3, ror #24 2195 21960x2f 0xfa 0x84 0xf1 21970x2f 0xfa 0x87 0xf6 21980x2f 0xfa 0xa1 0xf3 21990x2c 0xbf 22000x2f 0xfa 0x95 0xf3 22010x2f 0xfa 0xb3 0xf2 2202 2203 2204#------------------------------------------------------------------------------ 2205# SXTH 2206#------------------------------------------------------------------------------ 2207# CHECK: sxth r1, r6 2208# CHECK: sxth.w r3, r8, ror #8 2209# CHECK: sxth.w r9, r3, ror #24 2210# CHECK: itt ne 2211# CHECK: sxthne.w r3, r9 2212# CHECK: sxthne.w r2, r2, ror #16 2213 22140x31 0xb2 22150x0f 0xfa 0x98 0xf3 22160x0f 0xfa 0xb3 0xf9 22170x1c 0xbf 22180x0f 0xfa 0x89 0xf3 22190x0f 0xfa 0xa2 0xf2 2220 2221 2222#------------------------------------------------------------------------------ 2223# SXTB 2224#------------------------------------------------------------------------------ 2225# CHECK: sxtb r5, r6 2226# CHECK: sxtb.w r6, r9, ror #8 2227# CHECK: sxtb.w r8, r3, ror #24 2228# CHECK: ite ge 2229# CHECK: sxtbge r2, r4 2230# CHECK: sxtblt.w r5, r1, ror #16 2231 22320x75 0xb2 22330x4f 0xfa 0x99 0xf6 22340x4f 0xfa 0xb3 0xf8 22350xac 0xbf 22360x62 0xb2 22370x4f 0xfa 0xa1 0xf5 2238 2239 2240#------------------------------------------------------------------------------ 2241# SXTB16 2242#------------------------------------------------------------------------------ 2243# CHECK: sxtb16 r1, r4 2244# CHECK: sxtb16 r6, r7 2245# CHECK: sxtb16 r3, r1, ror #16 2246# CHECK: ite hs 2247# CHECK: sxtb16hs r3, r5, ror #8 2248# CHECK: sxtb16lo r2, r3, ror #24 2249 22500x2f 0xfa 0x84 0xf1 22510x2f 0xfa 0x87 0xf6 22520x2f 0xfa 0xa1 0xf3 22530x2c 0xbf 22540x2f 0xfa 0x95 0xf3 22550x2f 0xfa 0xb3 0xf2 2256 2257 2258#------------------------------------------------------------------------------ 2259# SXTH 2260#------------------------------------------------------------------------------ 2261# CHECK: sxth r1, r6 2262# CHECK: sxth.w r3, r8, ror #8 2263# CHECK: sxth.w r9, r3, ror #24 2264# CHECK: itt ne 2265# CHECK: sxthne.w r3, r9 2266# CHECK: sxthne.w r2, r2, ror #16 2267 22680x31 0xb2 22690x0f 0xfa 0x98 0xf3 22700x0f 0xfa 0xb3 0xf9 22710x1c 0xbf 22720x0f 0xfa 0x89 0xf3 22730x0f 0xfa 0xa2 0xf2 2274 2275 2276#------------------------------------------------------------------------------ 2277# TBB/TBH 2278#------------------------------------------------------------------------------ 2279# CHECK: tbb [r3, r8] 2280# CHECK: tbh [r3, r8, lsl #1] 2281# CHECK: it eq 2282# CHECK: tbbeq [r3, r8] 2283# CHECK: it hs 2284# CHECK: tbhhs [r3, r8, lsl #1] 2285 22860xd3 0xe8 0x08 0xf0 22870xd3 0xe8 0x18 0xf0 22880x08 0xbf 22890xd3 0xe8 0x08 0xf0 22900x28 0xbf 22910xd3 0xe8 0x18 0xf0 2292 2293 2294#------------------------------------------------------------------------------ 2295# TEQ 2296#------------------------------------------------------------------------------ 2297# CHECK: teq.w r5, #61440 2298# CHECK: teq.w r4, r5 2299# CHECK: teq.w r4, r5, lsl #5 2300# CHECK: teq.w r4, r5, lsr #5 2301# CHECK: teq.w r4, r5, lsr #5 2302# CHECK: teq.w r4, r5, asr #5 2303# CHECK: teq.w r4, r5, ror #5 2304 23050x95 0xf4 0x70 0x4f 23060x94 0xea 0x05 0x0f 23070x94 0xea 0x45 0x1f 23080x94 0xea 0x55 0x1f 23090x94 0xea 0x55 0x1f 23100x94 0xea 0x65 0x1f 23110x94 0xea 0x75 0x1f 2312 2313 2314#------------------------------------------------------------------------------ 2315# TST 2316#------------------------------------------------------------------------------ 2317# CHECK: tst.w r5, #61440 2318# CHECK: tst r2, r5 2319# CHECK: tst.w r3, r12, lsl #5 2320# CHECK: tst.w r4, r11, lsr #4 2321# CHECK: tst.w r5, r10, lsr #12 2322# CHECK: tst.w r6, r9, asr #30 2323# CHECK: tst.w r7, r8, ror #2 2324 23250x15 0xf4 0x70 0x4f 23260x2a 0x42 23270x13 0xea 0x4c 0x1f 23280x14 0xea 0x1b 0x1f 23290x15 0xea 0x1a 0x3f 23300x16 0xea 0xa9 0x7f 23310x17 0xea 0xb8 0x0f 2332 2333 2334#------------------------------------------------------------------------------ 2335# UADD16/UADD8 2336#------------------------------------------------------------------------------ 2337# CHECK: uadd16 r1, r2, r3 2338# CHECK: uadd8 r1, r2, r3 2339# CHECK: ite gt 2340# CHECK: uadd16gt r1, r2, r3 2341# CHECK: uadd8le r1, r2, r3 2342 23430x92 0xfa 0x43 0xf1 23440x82 0xfa 0x43 0xf1 23450xcc 0xbf 23460x92 0xfa 0x43 0xf1 23470x82 0xfa 0x43 0xf1 2348 2349 2350#------------------------------------------------------------------------------ 2351# UASX 2352#------------------------------------------------------------------------------ 2353# CHECK: uasx r9, r12, r0 2354# CHECK: it eq 2355# CHECK: uasxeq r9, r12, r0 2356# CHECK: uasx r9, r12, r0 2357# CHECK: it eq 2358# CHECK: uasxeq r9, r12, r0 2359 23600xac 0xfa 0x40 0xf9 23610x08 0xbf 23620xac 0xfa 0x40 0xf9 23630xac 0xfa 0x40 0xf9 23640x08 0xbf 23650xac 0xfa 0x40 0xf9 2366 2367 2368#------------------------------------------------------------------------------ 2369# UBFX 2370#------------------------------------------------------------------------------ 2371# CHECK: ubfx r4, r5, #16, #1 2372# CHECK: it gt 2373# CHECK: ubfxgt r4, r5, #16, #16 2374 23750xc5 0xf3 0x00 0x44 23760xc8 0xbf 23770xc5 0xf3 0x0f 0x44 2378 2379 2380#------------------------------------------------------------------------------ 2381# UHADD16/UHADD8 2382#------------------------------------------------------------------------------ 2383# CHECK: uhadd16 r4, r8, r2 2384# CHECK: uhadd8 r4, r8, r2 2385# CHECK: itt gt 2386# CHECK: uhadd16gt r4, r8, r2 2387# CHECK: uhadd8gt r4, r8, r2 2388 23890x98 0xfa 0x62 0xf4 23900x88 0xfa 0x62 0xf4 23910xc4 0xbf 23920x98 0xfa 0x62 0xf4 23930x88 0xfa 0x62 0xf4 2394 2395 2396#------------------------------------------------------------------------------ 2397# UHASX/UHSAX 2398#------------------------------------------------------------------------------ 2399# CHECK: uhasx r4, r1, r5 2400# CHECK: uhsax r5, r6, r6 2401# CHECK: itt gt 2402# CHECK: uhasxgt r6, r9, r8 2403# CHECK: uhsaxgt r7, r8, r12 2404 24050xa1 0xfa 0x65 0xf4 24060xe6 0xfa 0x66 0xf5 24070xc4 0xbf 24080xa9 0xfa 0x68 0xf6 24090xe8 0xfa 0x6c 0xf7 2410 2411#------------------------------------------------------------------------------ 2412# UHSUB16/UHSUB8 2413#------------------------------------------------------------------------------ 2414# CHECK: uhsub16 r5, r8, r3 2415# CHECK: uhsub8 r1, r7, r6 2416# CHECK: itt lt 2417# CHECK: uhsub16lt r4, r9, r12 2418# CHECK: uhsub8lt r3, r1, r5 2419 24200xd8 0xfa 0x63 0xf5 24210xc7 0xfa 0x66 0xf1 24220xbc 0xbf 24230xd9 0xfa 0x6c 0xf4 24240xc1 0xfa 0x65 0xf3 2425 2426 2427#------------------------------------------------------------------------------ 2428# UMAAL 2429#------------------------------------------------------------------------------ 2430# CHECK: umaal r3, r4, r5, r6 2431# CHECK: it lt 2432# CHECK: umaallt r3, r4, r5, r6 2433 24340xe5 0xfb 0x66 0x34 24350xb8 0xbf 24360xe5 0xfb 0x66 0x34 2437 2438 2439#------------------------------------------------------------------------------ 2440# UMLAL 2441#------------------------------------------------------------------------------ 2442# CHECK: umlal r2, r4, r6, r8 2443# CHECK: it gt 2444# CHECK: umlalgt r6, r1, r2, r6 2445 24460xe6 0xfb 0x08 0x24 24470xc8 0xbf 24480xe2 0xfb 0x06 0x61 2449 2450 2451#------------------------------------------------------------------------------ 2452# UMULL 2453#------------------------------------------------------------------------------ 2454# CHECK: umull r2, r4, r6, r8 2455# CHECK: it gt 2456# CHECK: umullgt r6, r1, r2, r6 2457 24580xa6 0xfb 0x08 0x24 24590xc8 0xbf 24600xa2 0xfb 0x06 0x61 2461 2462 2463#------------------------------------------------------------------------------ 2464# UQADD16/UQADD8 2465#------------------------------------------------------------------------------ 2466# CHECK: uqadd16 r1, r2, r3 2467# CHECK: uqadd8 r3, r4, r8 2468# CHECK: ite gt 2469# CHECK: uqadd16gt r4, r7, r9 2470# CHECK: uqadd8le r8, r1, r2 2471 24720x92 0xfa 0x53 0xf1 24730x84 0xfa 0x58 0xf3 24740xcc 0xbf 24750x97 0xfa 0x59 0xf4 24760x81 0xfa 0x52 0xf8 2477 2478 2479#------------------------------------------------------------------------------ 2480# UQASX/UQSAX 2481#------------------------------------------------------------------------------ 2482# CHECK: uqasx r1, r2, r3 2483# CHECK: uqsax r3, r4, r8 2484# CHECK: ite gt 2485# CHECK: uqasxgt r4, r7, r9 2486# CHECK: uqsaxle r8, r1, r2 2487 24880xa2 0xfa 0x53 0xf1 24890xe4 0xfa 0x58 0xf3 24900xcc 0xbf 24910xa7 0xfa 0x59 0xf4 24920xe1 0xfa 0x52 0xf8 2493 2494 2495#------------------------------------------------------------------------------ 2496# UQSUB16/UQSUB8 2497#------------------------------------------------------------------------------ 2498# CHECK: uqsub8 r8, r2, r9 2499# CHECK: uqsub16 r1, r9, r7 2500# CHECK: ite gt 2501# CHECK: uqsub8gt r3, r1, r6 2502# CHECK: uqsub16le r4, r6, r4 2503 25040xc2 0xfa 0x59 0xf8 25050xd9 0xfa 0x57 0xf1 25060xcc 0xbf 25070xc1 0xfa 0x56 0xf3 25080xd6 0xfa 0x54 0xf4 2509 2510 2511#------------------------------------------------------------------------------ 2512# UQSUB16/UQSUB8 2513#------------------------------------------------------------------------------ 2514# CHECK: usad8 r1, r9, r7 2515# CHECK: usada8 r8, r2, r9, r12 2516# CHECK: ite gt 2517# CHECK: usada8gt r3, r1, r6, r9 2518# CHECK: usad8le r4, r6, r4 2519 25200x79 0xfb 0x07 0xf1 25210x72 0xfb 0x09 0xc8 25220xcc 0xbf 25230x71 0xfb 0x06 0x93 25240x76 0xfb 0x04 0xf4 2525 2526 2527#------------------------------------------------------------------------------ 2528# USAT 2529#------------------------------------------------------------------------------ 2530# CHECK: usat r8, #1, r10 2531# CHECK: usat r8, #4, r10 2532# CHECK: usat r8, #5, r10, lsl #31 2533# CHECK: usat r8, #16, r10, asr #1 2534 25350x8a 0xf3 0x01 0x08 25360x8a 0xf3 0x04 0x08 25370x8a 0xf3 0xc5 0x78 25380xaa 0xf3 0x50 0x08 2539 2540 2541#------------------------------------------------------------------------------ 2542# USAT16 2543#------------------------------------------------------------------------------ 2544# CHECK: usat16 r2, #2, r7 2545# CHECK: usat16 r3, #15, r5 2546 25470xa7 0xf3 0x02 0x02 25480xa5 0xf3 0x0f 0x03 2549 2550 2551#------------------------------------------------------------------------------ 2552# USAX 2553#------------------------------------------------------------------------------ 2554# CHECK: usax r2, r3, r4 2555# CHECK: it ne 2556# CHECK: usaxne r6, r1, r9 2557# CHECK: usax r2, r3, r4 2558# CHECK: it ne 2559# CHECK: usaxne r6, r1, r9 2560 25610xe3 0xfa 0x44 0xf2 25620x18 0xbf 25630xe1 0xfa 0x49 0xf6 25640xe3 0xfa 0x44 0xf2 25650x18 0xbf 25660xe1 0xfa 0x49 0xf6 2567 2568 2569#------------------------------------------------------------------------------ 2570# USUB16/USUB8 2571#------------------------------------------------------------------------------ 2572# CHECK: usub16 r4, r2, r7 2573# CHECK: usub8 r1, r8, r5 2574# CHECK: ite hi 2575# CHECK: usub16hi r1, r1, r3 2576# CHECK: usub8ls r9, r2, r3 2577 25780xd2 0xfa 0x47 0xf4 25790xc8 0xfa 0x45 0xf1 25800x8c 0xbf 25810xd1 0xfa 0x43 0xf1 25820xc2 0xfa 0x43 0xf9 2583 2584 2585#------------------------------------------------------------------------------ 2586# UXTAB 2587#------------------------------------------------------------------------------ 2588# CHECK: uxtab r2, r3, r4 2589# CHECK: uxtab r4, r5, r6 2590# CHECK: it lt 2591# CHECK: uxtablt r6, r2, r9, ror #8 2592# CHECK: uxtab r5, r1, r4, ror #16 2593# CHECK: uxtab r7, r8, r3, ror #24 2594 25950x53 0xfa 0x84 0xf2 25960x55 0xfa 0x86 0xf4 25970xb8 0xbf 25980x52 0xfa 0x99 0xf6 25990x51 0xfa 0xa4 0xf5 26000x58 0xfa 0xb3 0xf7 2601 2602 2603#------------------------------------------------------------------------------ 2604# UXTAB16 2605#------------------------------------------------------------------------------ 2606# CHECK: it ge 2607# CHECK: uxtab16ge r0, r1, r4 2608# CHECK: uxtab16 r6, r2, r7 2609# CHECK: uxtab16 r3, r5, r8, ror #8 2610# CHECK: uxtab16 r3, r2, r1, ror #16 2611# CHECK: it eq 2612# CHECK: uxtab16eq r1, r2, r3, ror #24 2613 26140xa8 0xbf 26150x31 0xfa 0x84 0xf0 26160x32 0xfa 0x87 0xf6 26170x35 0xfa 0x98 0xf3 26180x32 0xfa 0xa1 0xf3 26190x08 0xbf 26200x32 0xfa 0xb3 0xf1 2621 2622 2623#------------------------------------------------------------------------------ 2624# UXTAH 2625#------------------------------------------------------------------------------ 2626# CHECK: uxtah r1, r3, r9 2627# CHECK: it hi 2628# CHECK: uxtahhi r6, r1, r6 2629# CHECK: uxtah r3, r8, r3, ror #8 2630# CHECK: it lo 2631# CHECK: uxtahlo r2, r2, r4, ror #16 2632# CHECK: uxtah r9, r3, r3, ror #24 2633 26340x13 0xfa 0x89 0xf1 26350x88 0xbf 26360x11 0xfa 0x86 0xf6 26370x18 0xfa 0x93 0xf3 26380x38 0xbf 26390x12 0xfa 0xa4 0xf2 26400x13 0xfa 0xb3 0xf9 2641 2642 2643#------------------------------------------------------------------------------ 2644# UXTB 2645#------------------------------------------------------------------------------ 2646# CHECK: it ge 2647# CHECK: uxtbge r2, r4 2648# CHECK: uxtb r5, r6 2649# CHECK: uxtb.w r6, r9, ror #8 2650# CHECK: it lo 2651# CHECK: uxtblo.w r5, r1, ror #16 2652# CHECK: uxtb.w r8, r3, ror #24 2653 26540xa8 0xbf 26550xe2 0xb2 26560xf5 0xb2 26570x5f 0xfa 0x99 0xf6 26580x38 0xbf 26590x5f 0xfa 0xa1 0xf5 26600x5f 0xfa 0xb3 0xf8 2661 2662 2663#------------------------------------------------------------------------------ 2664# UXTB16 2665#------------------------------------------------------------------------------ 2666# CHECK: uxtb16 r1, r4 2667# CHECK: uxtb16 r6, r7 2668# CHECK: it hs 2669# CHECK: uxtb16hs r3, r5, ror #8 2670# CHECK: uxtb16 r3, r1, ror #16 2671# CHECK: it ge 2672# CHECK: uxtb16ge r2, r3, ror #24 2673 26740x3f 0xfa 0x84 0xf1 26750x3f 0xfa 0x87 0xf6 26760x28 0xbf 26770x3f 0xfa 0x95 0xf3 26780x3f 0xfa 0xa1 0xf3 26790xa8 0xbf 26800x3f 0xfa 0xb3 0xf2 2681 2682 2683#------------------------------------------------------------------------------ 2684# UXTH 2685#------------------------------------------------------------------------------ 2686# CHECK: it ne 2687# CHECK: uxthne.w r3, r9 2688# CHECK: uxth r1, r6 2689# CHECK: uxth.w r3, r8, ror #8 2690# CHECK: it le 2691# CHECK: uxthle.w r2, r2, ror #16 2692# CHECK: uxth.w r9, r3, ror #24 2693 26940x18 0xbf 26950x1f 0xfa 0x89 0xf3 26960xb1 0xb2 26970x1f 0xfa 0x98 0xf3 26980xd8 0xbf 26990x1f 0xfa 0xa2 0xf2 27000x1f 0xfa 0xb3 0xf9 2701 2702 2703#------------------------------------------------------------------------------ 2704# WFE/WFI/YIELD 2705#------------------------------------------------------------------------------ 2706# CHECK: wfe 2707# CHECK: wfi 2708# CHECK: yield 2709# CHECK: itet lt 2710# CHECK: wfelt 2711# CHECK: wfige 2712# CHECK: yieldlt 2713 27140x20 0xbf 27150x30 0xbf 27160x10 0xbf 27170xb6 0xbf 27180x20 0xbf 27190x30 0xbf 27200x10 0xbf 2721 2722#------------------------------------------------------------------------------ 2723# Unallocated hints (They execute as NOPs, but software must not use them.) 2724#------------------------------------------------------------------------------ 2725# CHECK: hint #6 2726# CHECK: hint.w #6 2727# CHECK: hint.w #102 2728 27290x60 0xbf 27300xaf 0xf3 0x06 0x80 27310xaf 0xf3 0x66 0x80 2732 2733