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 160x41 0xf1 0x04 0x00 170x51 0xf1 0x00 0x00 180x42 0xf1 0xff 0x01 190x47 0xf1 0x55 0x13 200x4c 0xf1 0xaa 0x28 210x47 0xf1 0xa5 0x39 220x43 0xf1 0x07 0x45 230x42 0xf1 0xff 0x44 240x42 0xf5 0xd0 0x64 25 26#------------------------------------------------------------------------------ 27# ADC (register) 28#------------------------------------------------------------------------------ 29# CHECK: adc.w r4, r5, r6 30# CHECK: adcs.w r4, r5, r6 31# CHECK: adc.w r9, r1, r3 32# CHECK: adcs.w r9, r1, r3 33# CHECK: adc.w r0, r1, r3, ror #4 34# CHECK: adcs.w r0, r1, r3, lsl #7 35# CHECK: adc.w r0, r1, r3, lsr #31 36# CHECK: adcs.w r0, r1, r3, asr #32 37 380x45 0xeb 0x06 0x04 390x55 0xeb 0x06 0x04 400x41 0xeb 0x03 0x09 410x51 0xeb 0x03 0x09 420x41 0xeb 0x33 0x10 430x51 0xeb 0xc3 0x10 440x41 0xeb 0xd3 0x70 450x51 0xeb 0x23 0x00 46 47 48#------------------------------------------------------------------------------ 49# ADD (immediate) 50#------------------------------------------------------------------------------ 51# CHECK: itet eq 52# CHECK: addeq r1, r2, #4 53# CHECK: addwne r5, r3, #1023 54# CHECK: addweq r4, r5, #293 55# CHECK: add.w r2, sp, #1024 56# CHECK: add.w r2, r8, #65280 57# CHECK: addw r2, r3, #257 58# CHECK: add.w r12, r6, #256 59# CHECK: addw r12, r6, #256 60# CHECK: adds.w r1, r2, #496 61 620x0a 0xbf 630x11 0x1d 640x03 0xf2 0xff 0x35 650x05 0xf2 0x25 0x14 660x0d 0xf5 0x80 0x62 670x08 0xf5 0x7f 0x42 680x03 0xf2 0x01 0x12 690x06 0xf5 0x80 0x7c 700x06 0xf2 0x00 0x1c 710x12 0xf5 0xf8 0x71 72 73 74#------------------------------------------------------------------------------ 75# ADD (register) 76#------------------------------------------------------------------------------ 77# CHECK: add.w r1, r2, r8 78# CHECK: add.w r5, r9, r2, asr #32 79# CHECK: adds.w r7, r3, r1, lsl #31 80# CHECK: adds.w r0, r3, r6, lsr #25 81# CHECK: add.w r4, r8, r1, ror #12 82 830x02 0xeb 0x08 0x01 840x09 0xeb 0x22 0x05 850x13 0xeb 0xc1 0x77 860x13 0xeb 0x56 0x60 870x08 0xeb 0x31 0x34 88 89 90#------------------------------------------------------------------------------ 91# ADR 92#------------------------------------------------------------------------------ 93# CHECK: subw r11, pc, #3270 94# CHECK: subw r11, pc, #826 95# CHECK: subw r1, pc, #0 96 970xaf 0xf6 0xc6 0x4b 980xaf 0xf2 0x3a 0x3b 990xaf 0xf2 0x00 0x01 100 101#------------------------------------------------------------------------------ 102# AND (immediate) 103#------------------------------------------------------------------------------ 104# CHECK: and r2, r5, #1044480 105# CHECK: ands r3, r12, #15 106# CHECK: and r1, r1, #255 107 1080x05 0xf4 0x7f 0x22 1090x1c 0xf0 0x0f 0x03 1100x01 0xf0 0xff 0x01 111 112 113#------------------------------------------------------------------------------ 114# AND (register) 115#------------------------------------------------------------------------------ 116# CHECK: and.w r4, r9, r8 117# CHECK: and.w r1, r4, r8, asr #3 118# CHECK: ands.w r2, r1, r7, lsl #1 119# CHECK: ands.w r4, r5, r2, lsr #20 120# CHECK: and.w r9, r12, r1, ror #17 121 1220x09 0xea 0x08 0x04 1230x04 0xea 0xe8 0x01 1240x11 0xea 0x47 0x02 1250x15 0xea 0x12 0x54 1260x0c 0xea 0x71 0x49 127 128#------------------------------------------------------------------------------ 129# ASR (immediate) 130#------------------------------------------------------------------------------ 131# CHECK: asr.w r2, r3, #12 132# CHECK: asrs.w r8, r3, #32 133# CHECK: asrs.w r2, r3, #1 134# CHECK: asr.w r2, r3, #4 135# CHECK: asrs.w r2, r12, #15 136 137# CHECK: asr.w r3, r3, #19 138# CHECK: asrs.w r8, r8, #2 139# CHECK: asrs.w r7, r7, #5 140# CHECK: asr.w r12, r12, #21 141 1420x4f 0xea 0x23 0x32 1430x5f 0xea 0x23 0x08 1440x5f 0xea 0x63 0x02 1450x4f 0xea 0x23 0x12 1460x5f 0xea 0xec 0x32 147 1480x4f 0xea 0xe3 0x43 1490x5f 0xea 0xa8 0x08 1500x5f 0xea 0x67 0x17 1510x4f 0xea 0x6c 0x5c 152 153 154#------------------------------------------------------------------------------ 155# ASR (register) 156#------------------------------------------------------------------------------ 157# CHECK: asr.w r3, r4, r2 158# CHECK: asr.w r1, r1, r2 159# CHECK: asrs.w r3, r4, r8 160 1610x44 0xfa 0x02 0xf3 1620x41 0xfa 0x02 0xf1 1630x54 0xfa 0x08 0xf3 164 165#------------------------------------------------------------------------------ 166# B 167#------------------------------------------------------------------------------ 168# CHECK: bmi.w #-183396 169 1700x13 0xf5 0xce 0xa9 171 172# CHECK: b.w #208962 173# CHECK: b.w #-16777216 174 1750x33 0xf0 0x21 0xb8 # rdar://12585795 1760x00 0xf4 0x00 0x90 177 178#------------------------------------------------------------------------------ 179# BFC 180#------------------------------------------------------------------------------ 181# CHECK: bfc r5, #3, #17 182# CHECK: it lo 183# CHECK: bfclo r5, #3, #17 184 1850x6f 0xf3 0xd3 0x05 1860x38 0xbf 1870x6f 0xf3 0xd3 0x05 188 189 190#------------------------------------------------------------------------------ 191# BFI 192#------------------------------------------------------------------------------ 193# CHECK: bfi r5, r2, #3, #17 194# CHECK: it ne 195# CHECK: bfine r5, r2, #3, #17 196# CHECK: bfi r6, r0, #0, #32 197# CHECK: bfi r6, r0, #31, #1 198 1990x62 0xf3 0xd3 0x05 2000x18 0xbf 2010x62 0xf3 0xd3 0x05 2020x60 0xf3 0x1f 0x06 2030x60 0xf3 0xdf 0x76 204 205 206#------------------------------------------------------------------------------ 207# BIC 208#------------------------------------------------------------------------------ 209# CHECK: bic r10, r1, #15 210# CHECK: bic.w r12, r3, r6 211# CHECK: bic.w r11, r2, r6, lsl #12 212# CHECK: bic.w r8, r4, r1, lsr #11 213# CHECK: bic.w r7, r5, r7, lsr #15 214# CHECK: bic.w r6, r7, r9, asr #32 215# CHECK: bic.w r5, r6, r8, ror #1 216 217# CHECK: bic r1, r1, #15 218# CHECK: bic.w r1, r1, r1 219# CHECK: bic.w r4, r4, r2, lsl #31 220# CHECK: bic.w r6, r6, r3, lsr #12 221# CHECK: bic.w r7, r7, r4, lsr #7 222# CHECK: bic.w r8, r8, r5, asr #15 223# CHECK: bic.w r12, r12, r6, ror #29 224 2250x21 0xf0 0x0f 0x0a 2260x23 0xea 0x06 0x0c 2270x22 0xea 0x06 0x3b 2280x24 0xea 0xd1 0x28 2290x25 0xea 0xd7 0x37 2300x27 0xea 0x29 0x06 2310x26 0xea 0x78 0x05 232 2330x21 0xf0 0x0f 0x01 2340x21 0xea 0x01 0x01 2350x24 0xea 0xc2 0x74 2360x26 0xea 0x13 0x36 2370x27 0xea 0xd4 0x17 2380x28 0xea 0xe5 0x38 2390x2c 0xea 0x76 0x7c 240 241 242#------------------------------------------------------------------------------ 243# BXJ 244#------------------------------------------------------------------------------ 245# CHECK: bxj r5 246# CHECK: it ne 247# CHECK: bxjne r7 248 2490xc5 0xf3 0x00 0x8f 2500x18 0xbf 2510xc7 0xf3 0x00 0x8f 252 253 254#------------------------------------------------------------------------------ 255# CBZ/CBNZ 256#------------------------------------------------------------------------------ 257# CHECK: cbnz r7, #6 258# CHECK: cbnz r7, #12 259# CHECK: cbz r4, #64 260 2610x1f 0xb9 2620x37 0xb9 2630x04 0xb3 264 265 266#------------------------------------------------------------------------------ 267# CDP/CDP2 268#------------------------------------------------------------------------------ 269# CHECK: cdp p7, #1, c1, c1, c1, #4 270# CHECK: cdp2 p7, #1, c1, c1, c1, #4 271 2720x11 0xee 0x81 0x17 2730x11 0xfe 0x81 0x17 274 275 276#------------------------------------------------------------------------------ 277# CLREX 278#------------------------------------------------------------------------------ 279#CHECK: clrex 280#CHECK: it ne 281#CHECK: clrexne 282 2830xbf 0xf3 0x2f 0x8f 2840x18 0xbf 2850xbf 0xf3 0x2f 0x8f 286 287 288#------------------------------------------------------------------------------ 289# CLZ 290#------------------------------------------------------------------------------ 291#CHECK: clz r1, r2 292#CHECK: it eq 293#CHECK: clzeq r1, r2 294 2950xb2 0xfa 0x82 0xf1 2960x08 0xbf 2970xb2 0xfa 0x82 0xf1 298 299 300#------------------------------------------------------------------------------ 301# CMN 302#------------------------------------------------------------------------------ 303#CHECK: cmn.w r1, #15 304#CHECK: cmn.w r8, r6 305#CHECK: cmn.w r1, r6, lsl #10 306#CHECK: cmn.w r1, r6, lsr #10 307#CHECK: cmn.w sp, r6, lsr #10 308#CHECK: cmn.w r1, r6, asr #10 309#CHECK: cmn.w r1, r6, ror #10 310 3110x11 0xf1 0x0f 0x0f 3120x18 0xeb 0x06 0x0f 3130x11 0xeb 0x86 0x2f 3140x11 0xeb 0x96 0x2f 3150x1d 0xeb 0x96 0x2f 3160x11 0xeb 0xa6 0x2f 3170x11 0xeb 0xb6 0x2f 318 319 320#------------------------------------------------------------------------------ 321# CMP 322#------------------------------------------------------------------------------ 323#CHECK: cmp.w r5, #65280 324#CHECK: cmp.w r4, r12 325#CHECK: cmp.w r9, r6, lsl #12 326#CHECK: cmp.w r3, r7, lsr #31 327#CHECK: cmp.w sp, r6, lsr #1 328#CHECK: cmp.w r2, r5, asr #24 329#CHECK: cmp.w r1, r4, ror #15 330 3310xb5 0xf5 0x7f 0x4f 3320xb4 0xeb 0x0c 0x0f 3330xb9 0xeb 0x06 0x3f 3340xb3 0xeb 0xd7 0x7f 3350xbd 0xeb 0x56 0x0f 3360xb2 0xeb 0x25 0x6f 3370xb1 0xeb 0xf4 0x3f 338 339 340#------------------------------------------------------------------------------ 341# DBG 342#------------------------------------------------------------------------------ 343#CHECK: dbg #5 344#CHECK: dbg #0 345#CHECK: dbg #15 346 3470xaf 0xf3 0xf5 0x80 3480xaf 0xf3 0xf0 0x80 3490xaf 0xf3 0xff 0x80 350 351 352#------------------------------------------------------------------------------ 353# DMB 354#------------------------------------------------------------------------------ 355#CHECK: dmb sy 356#CHECK: dmb st 357#CHECK: dmb #0xd 358#CHECK: dmb #0xc 359#CHECK: dmb ish 360#CHECK: dmb ishst 361#CHECK: dmb #0x9 362#CHECK: dmb #0x8 363#CHECK: dmb nsh 364#CHECK: dmb nshst 365#CHECK: dmb #0x5 366#CHECK: dmb #0x4 367#CHECK: dmb osh 368#CHECK: dmb oshst 369#CHECK: dmb #0x1 370#CHECK: dmb #0x0 371 3720xbf 0xf3 0x5f 0x8f 3730xbf 0xf3 0x5e 0x8f 3740xbf 0xf3 0x5d 0x8f 3750xbf 0xf3 0x5c 0x8f 3760xbf 0xf3 0x5b 0x8f 3770xbf 0xf3 0x5a 0x8f 3780xbf 0xf3 0x59 0x8f 3790xbf 0xf3 0x58 0x8f 3800xbf 0xf3 0x57 0x8f 3810xbf 0xf3 0x56 0x8f 3820xbf 0xf3 0x55 0x8f 3830xbf 0xf3 0x54 0x8f 3840xbf 0xf3 0x53 0x8f 3850xbf 0xf3 0x52 0x8f 3860xbf 0xf3 0x51 0x8f 3870xbf 0xf3 0x50 0x8f 388 389 390#------------------------------------------------------------------------------ 391# DSB 392#------------------------------------------------------------------------------ 393#CHECK: dsb sy 394#CHECK: dsb st 395#CHECK: dsb #0xd 396#CHECK: dsb #0xc 397#CHECK: dsb ish 398#CHECK: dsb ishst 399#CHECK: dsb #0x9 400#CHECK: dsb #0x8 401#CHECK: dsb nsh 402#CHECK: dsb nshst 403#CHECK: dsb #0x5 404#CHECK: dsb #0x4 405#CHECK: dsb osh 406#CHECK: dsb oshst 407#CHECK: dsb #0x1 408#CHECK: dsb #0x0 409 4100xbf 0xf3 0x4f 0x8f 4110xbf 0xf3 0x4e 0x8f 4120xbf 0xf3 0x4d 0x8f 4130xbf 0xf3 0x4c 0x8f 4140xbf 0xf3 0x4b 0x8f 4150xbf 0xf3 0x4a 0x8f 4160xbf 0xf3 0x49 0x8f 4170xbf 0xf3 0x48 0x8f 4180xbf 0xf3 0x47 0x8f 4190xbf 0xf3 0x46 0x8f 4200xbf 0xf3 0x45 0x8f 4210xbf 0xf3 0x44 0x8f 4220xbf 0xf3 0x43 0x8f 4230xbf 0xf3 0x42 0x8f 4240xbf 0xf3 0x41 0x8f 4250xbf 0xf3 0x40 0x8f 426 427 428#------------------------------------------------------------------------------ 429# EOR 430#------------------------------------------------------------------------------ 431#CHECK: eor r4, r5, #61440 432#CHECK: eor.w r4, r5, r6 433#CHECK: eor.w r4, r5, r6, lsl #5 434#CHECK: eor.w r4, r5, r6, lsr #5 435#CHECK: eor.w r4, r5, r6, lsr #5 436#CHECK: eor.w r4, r5, r6, asr #5 437#CHECK: eor.w r4, r5, r6, ror #5 438 4390x85 0xf4 0x70 0x44 4400x85 0xea 0x06 0x04 4410x85 0xea 0x46 0x14 4420x85 0xea 0x56 0x14 4430x85 0xea 0x56 0x14 4440x85 0xea 0x66 0x14 4450x85 0xea 0x76 0x14 446 447 448#------------------------------------------------------------------------------ 449# ISB 450#------------------------------------------------------------------------------ 451#CHECK: isb sy 452#CHECK: isb #0xa 453 4540xbf 0xf3 0x6f 0x8f 4550xbf 0xf3 0x6a 0x8f 456 457#------------------------------------------------------------------------------ 458# IT 459#------------------------------------------------------------------------------ 460# Test encodings of a few full IT blocks, not just the IT instruction 461 462# CHECK: iteet eq 463# CHECK: addeq r0, r1, r2 464# CHECK: nopne 465# CHECK: subne r5, r6, r7 466# CHECK: addeq r1, r2, #4 467 4680x0d 0xbf 4690x88 0x18 4700x00 0xbf 4710xf5 0x1b 4720x11 0x1d 473 474# CHECK: ittee ls 475# CHECK: addls r0, r1, r2 476# CHECK: nopls 477# CHECK: subhi r5, r6, r7 478# CHECK: addhi r1, r2, #4 479 4800x99 0xbf 4810x88 0x18 4820x00 0xbf 4830xf5 0x1b 4840x11 0x1d 485 486 487#------------------------------------------------------------------------------ 488# LDMIA 489#------------------------------------------------------------------------------ 490# CHECK: ldm.w r4, {r4, r5, r8, r9} 491# CHECK: ldm.w r4, {r5, r6} 492# CHECK: ldm.w r5!, {r3, r8} 493# CHECK: ldm.w r4, {r4, r5, r8, r9} 494# CHECK: ldm.w r4, {r5, r6} 495# CHECK: ldm.w r5!, {r3, r8} 496# CHECK: ldm.w r5!, {r1, r2} 497# CHECK: ldm.w r2, {r1, r2} 498 499# CHECK: ldm.w r4, {r4, r5, r8, r9} 500# CHECK: ldm.w r4, {r5, r6} 501# CHECK: ldm.w r5!, {r3, r8} 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 r5!, {r3, r8} 506 5070x94 0xe8 0x30 0x03 5080x94 0xe8 0x60 0x00 5090xb5 0xe8 0x08 0x01 5100x94 0xe8 0x30 0x03 5110x94 0xe8 0x60 0x00 5120xb5 0xe8 0x08 0x01 5130xb5 0xe8 0x06 0x00 5140x92 0xe8 0x06 0x00 515 5160x94 0xe8 0x30 0x03 5170x94 0xe8 0x60 0x00 5180xb5 0xe8 0x08 0x01 5190x94 0xe8 0x30 0x03 5200x94 0xe8 0x60 0x00 5210xb5 0xe8 0x08 0x01 5220xb5 0xe8 0x08 0x01 523 524 525#------------------------------------------------------------------------------ 526# LDMDB 527#------------------------------------------------------------------------------ 528# CHECK: ldmdb r4, {r4, r5, r8, r9} 529# CHECK: ldmdb r4, {r5, r6} 530# CHECK: ldmdb r5!, {r3, r8} 531# CHECK: ldmdb r5!, {r3, r8} 532 5330x14 0xe9 0x30 0x03 5340x14 0xe9 0x60 0x00 5350x35 0xe9 0x08 0x01 5360x35 0xe9 0x08 0x01 537 538 539#------------------------------------------------------------------------------ 540# LDR(immediate) 541#------------------------------------------------------------------------------ 542# CHECK: ldr r5, [r5, #-4] 543# CHECK: ldr r5, [r6, #32] 544# CHECK: ldr.w r5, [r6, #33] 545# CHECK: ldr.w r5, [r6, #257] 546# CHECK: ldr.w pc, [r7, #257] 547 5480x55 0xf8 0x04 0x5c 5490x35 0x6a 5500xd6 0xf8 0x21 0x50 5510xd6 0xf8 0x01 0x51 5520xd7 0xf8 0x01 0xf1 553 554 555#------------------------------------------------------------------------------ 556# LDR(literal) 557#------------------------------------------------------------------------------ 558# CHECK: ldr.w r4, [pc, #-0] 559# CHECK: ldr.w r2, [pc, #-40] 560# CHECK: ldr.w r1, [pc, #1024] 5610x5f 0xf8 0x00 0x40 5620x5f 0xf8 0x28 0x20 5630xdf 0xf8 0x00 0x14 564 565 566#------------------------------------------------------------------------------ 567# LDR(register) 568#------------------------------------------------------------------------------ 569# CHECK: ldr.w r1, [r8, r1] 570# CHECK: ldr.w r4, [r5, r2] 571# CHECK: ldr.w r6, [r0, r2, lsl #3] 572# CHECK: ldr.w r8, [r8, r2, lsl #2] 573# CHECK: ldr.w r7, [sp, r2, lsl #1] 574# CHECK: ldr.w r7, [sp, r2] 575# CHECK: ldr pc, [sp], #12 576# CHECK: ldr r2, [r4, #255]! 577# CHECK: ldr r8, [sp, #4]! 578# CHECK: ldr lr, [sp, #-4]! 579# CHECK: ldr lr, [sp, #0]! 580# CHECK: ldr r2, [r4], #255 581# CHECK: ldr r8, [sp], #4 582# CHECK: ldr lr, [sp], #-4 583 5840x58 0xf8 0x01 0x10 5850x55 0xf8 0x02 0x40 5860x50 0xf8 0x32 0x60 5870x58 0xf8 0x22 0x80 5880x5d 0xf8 0x12 0x70 5890x5d 0xf8 0x02 0x70 5900x5d 0xf8 0x0c 0xfb 5910x54 0xf8 0xff 0x2f 5920x5d 0xf8 0x04 0x8f 5930x5d 0xf8 0x04 0xed 5940x5d 0xf8 0x00 0xef 5950x54 0xf8 0xff 0x2b 5960x5d 0xf8 0x04 0x8b 5970x5d 0xf8 0x04 0xe9 598 599 600#------------------------------------------------------------------------------ 601# LDRB(immediate) 602#------------------------------------------------------------------------------ 603# CHECK: ldrb r5, [r5, #-4] 604# CHECK: ldrb.w r5, [r6, #32] 605# CHECK: ldrb.w r5, [r6, #33] 606# CHECK: ldrb.w r5, [r6, #257] 607# CHECK: ldrb.w lr, [r7, #257] 608 6090x15 0xf8 0x04 0x5c 6100x96 0xf8 0x20 0x50 6110x96 0xf8 0x21 0x50 6120x96 0xf8 0x01 0x51 6130x97 0xf8 0x01 0xe1 614 615 616#------------------------------------------------------------------------------ 617# LDRB(register) 618#------------------------------------------------------------------------------ 619# CHECK: ldrb.w r1, [r8, r1] 620# CHECK: ldrb.w r4, [r5, r2] 621# CHECK: ldrb.w r6, [r0, r2, lsl #3] 622# CHECK: ldrb.w r8, [r8, r2, lsl #2] 623# CHECK: ldrb.w r7, [sp, r2, lsl #1] 624# CHECK: ldrb.w r7, [sp, r2] 625# CHECK: ldrb r5, [r8, #255]! 626# CHECK: ldrb r2, [r5, #4]! 627# CHECK: ldrb r1, [r4, #-4]! 628# CHECK: ldrb r1, [r4, #0]! 629# CHECK: ldrb lr, [r3], #255 630# CHECK: ldrb r9, [r2], #4 631# CHECK: ldrb r3, [sp], #-4 632 6330x18 0xf8 0x01 0x10 6340x15 0xf8 0x02 0x40 6350x10 0xf8 0x32 0x60 6360x18 0xf8 0x22 0x80 6370x1d 0xf8 0x12 0x70 6380x1d 0xf8 0x02 0x70 6390x18 0xf8 0xff 0x5f 6400x15 0xf8 0x04 0x2f 6410x14 0xf8 0x04 0x1d 6420x14 0xf8 0x00 0x1f 6430x13 0xf8 0xff 0xeb 6440x12 0xf8 0x04 0x9b 6450x1d 0xf8 0x04 0x39 646 647 648#------------------------------------------------------------------------------ 649# LDRB(literal) 650#------------------------------------------------------------------------------ 651# CHECK: ldrb.w r6, [pc, #-0] 652# CHECK: ldrb.w r10, [pc, #227] 653# CHECK: ldrb.w r5, [pc, #0] 6540x1f 0xf8 0x00 0x60 6550x9f 0xf8 0xe3 0xa0 6560x9f 0xf8 0x00 0x50 657 658 659#------------------------------------------------------------------------------ 660# LDRBT 661#------------------------------------------------------------------------------ 662# CHECK: ldrbt r1, [r2] 663# CHECK: ldrbt r1, [r8] 664# CHECK: ldrbt r1, [r8, #3] 665# CHECK: ldrbt r1, [r8, #255] 666 6670x12 0xf8 0x00 0x1e 6680x18 0xf8 0x00 0x1e 6690x18 0xf8 0x03 0x1e 6700x18 0xf8 0xff 0x1e 671 672 673#------------------------------------------------------------------------------ 674# LDRD(immediate) 675#------------------------------------------------------------------------------ 676# CHECK: ldrd r3, r5, [r6, #24] 677# CHECK: ldrd r3, r5, [r6, #24]! 678# CHECK: ldrd r3, r5, [r6], #4 679# CHECK: ldrd r3, r5, [r6], #-8 680# CHECK: ldrd r3, r5, [r6] 681# CHECK: ldrd r8, r1, [r3] 682# CHECK: ldrd r0, r1, [r2], #-0 683# CHECK: ldrd r0, r1, [r2, #-0]! 684# CHECK: ldrd r0, r1, [r2, #0]! 685# CHECK: ldrd r0, r1, [r2, #-0] 686# CHECK: ldrd r1, r1, [r0], #0 687 6880xd6 0xe9 0x06 0x35 6890xf6 0xe9 0x06 0x35 6900xf6 0xe8 0x01 0x35 6910x76 0xe8 0x02 0x35 6920xd6 0xe9 0x00 0x35 6930xd3 0xe9 0x00 0x81 6940x72 0xe8 0x00 0x01 6950x72 0xe9 0x00 0x01 6960xf2 0xe9 0x00 0x01 6970x52 0xe9 0x00 0x01 6980xf0 0xe8 0x00 0x11 699 700 701#------------------------------------------------------------------------------ 702# FIXME: LDRD(literal) 703#------------------------------------------------------------------------------ 704 705 706#------------------------------------------------------------------------------ 707# LDREX/LDREXB/LDREXH/LDREXD 708#------------------------------------------------------------------------------ 709# CHECK: ldrex r1, [r4] 710# CHECK: ldrex r8, [r4] 711# CHECK: ldrex r2, [sp, #128] 712# CHECK: ldrexb r5, [r7] 713# CHECK: ldrexh r9, [r12] 714# CHECK: ldrexd r9, r3, [r4] 715 7160x54 0xe8 0x00 0x1f 7170x54 0xe8 0x00 0x8f 7180x5d 0xe8 0x20 0x2f 7190xd7 0xe8 0x4f 0x5f 7200xdc 0xe8 0x5f 0x9f 7210xd4 0xe8 0x7f 0x93 722 723 724#------------------------------------------------------------------------------ 725# LDRH(immediate) 726#------------------------------------------------------------------------------ 727# CHECK: ldrh r5, [r5, #-4] 728# CHECK: ldrh r5, [r6, #32] 729# CHECK: ldrh.w r5, [r6, #33] 730# CHECK: ldrh.w r5, [r6, #257] 731# CHECK: ldrh.w lr, [r7, #257] 732 7330x35 0xf8 0x04 0x5c 7340x35 0x8c 7350xb6 0xf8 0x21 0x50 7360xb6 0xf8 0x01 0x51 7370xb7 0xf8 0x01 0xe1 738 739 740#------------------------------------------------------------------------------ 741# LDRH(register) 742#------------------------------------------------------------------------------ 743# CHECK: ldrh.w r1, [r8, r1] 744# CHECK: ldrh.w r4, [r5, r2] 745# CHECK: ldrh.w r6, [r0, r2, lsl #3] 746# CHECK: ldrh.w r8, [r8, r2, lsl #2] 747# CHECK: ldrh.w r7, [sp, r2, lsl #1] 748# CHECK: ldrh.w r7, [sp, r2] 749# CHECK: ldrh r5, [r8, #255]! 750# CHECK: ldrh r2, [r5, #4]! 751# CHECK: ldrh r1, [r4, #-4]! 752# CHECK: ldrh r1, [r4, #0]! 753# CHECK: ldrh lr, [r3], #255 754# CHECK: ldrh r9, [r2], #4 755# CHECK: ldrh r3, [sp], #-4 756 7570x38 0xf8 0x01 0x10 7580x35 0xf8 0x02 0x40 7590x30 0xf8 0x32 0x60 7600x38 0xf8 0x22 0x80 7610x3d 0xf8 0x12 0x70 7620x3d 0xf8 0x02 0x70 7630x38 0xf8 0xff 0x5f 7640x35 0xf8 0x04 0x2f 7650x34 0xf8 0x04 0x1d 7660x34 0xf8 0x00 0x1f 7670x33 0xf8 0xff 0xeb 7680x32 0xf8 0x04 0x9b 7690x3d 0xf8 0x04 0x39 770 771 772#------------------------------------------------------------------------------ 773# LDRH(literal) 774#------------------------------------------------------------------------------ 775# CHECK: ldrh.w r7, [pc, #-0] 776# CHECK: ldrh.w r5, [pc, #121] 777# CHECK: ldrh.w r4, [pc, #0] 7780x3f 0xf8 0x00 0x70 7790xbf 0xf8 0x79 0x50 7800xbf 0xf8 0x00 0x40 781 782 783#------------------------------------------------------------------------------ 784# LDRSB(immediate) 785#------------------------------------------------------------------------------ 786# CHECK: ldrsb r5, [r5, #-4] 787# CHECK: ldrsb.w r5, [r6, #32] 788# CHECK: ldrsb.w r5, [r6, #33] 789# CHECK: ldrsb.w r5, [r6, #257] 790# CHECK: ldrsb.w lr, [r7, #257] 791 7920x15 0xf9 0x04 0x5c 7930x96 0xf9 0x20 0x50 7940x96 0xf9 0x21 0x50 7950x96 0xf9 0x01 0x51 7960x97 0xf9 0x01 0xe1 797 798 799#------------------------------------------------------------------------------ 800# LDRSB(register) 801#------------------------------------------------------------------------------ 802# CHECK: ldrsb.w r1, [r8, r1] 803# CHECK: ldrsb.w r4, [r5, r2] 804# CHECK: ldrsb.w r6, [r0, r2, lsl #3] 805# CHECK: ldrsb.w r8, [r8, r2, lsl #2] 806# CHECK: ldrsb.w r7, [sp, r2, lsl #1] 807# CHECK: ldrsb.w r7, [sp, r2] 808# CHECK: ldrsb r5, [r8, #255]! 809# CHECK: ldrsb r2, [r5, #4]! 810# CHECK: ldrsb r1, [r4, #-4]! 811# CHECK: ldrsb r1, [r4, #0]! 812# CHECK: ldrsb lr, [r3], #255 813# CHECK: ldrsb r9, [r2], #4 814# CHECK: ldrsb r3, [sp], #-4 815 8160x18 0xf9 0x01 0x10 8170x15 0xf9 0x02 0x40 8180x10 0xf9 0x32 0x60 8190x18 0xf9 0x22 0x80 8200x1d 0xf9 0x12 0x70 8210x1d 0xf9 0x02 0x70 8220x18 0xf9 0xff 0x5f 8230x15 0xf9 0x04 0x2f 8240x14 0xf9 0x04 0x1d 8250x14 0xf9 0x00 0x1f 8260x13 0xf9 0xff 0xeb 8270x12 0xf9 0x04 0x9b 8280x1d 0xf9 0x04 0x39 829 830 831#------------------------------------------------------------------------------ 832# LDRSB(literal) 833#------------------------------------------------------------------------------ 834# CHECK: ldrsb.w r0, [pc, #-0] 835# CHECK: ldrsb.w r12, [pc, #80] 836# CHECK: ldrsb.w r3, [pc, #0] 8370x1f 0xf9 0x00 0x00 8380x9f 0xf9 0x50 0xc0 8390x9f 0xf9 0x00 0x30 840 841 842#------------------------------------------------------------------------------ 843# LDRSBT 844#------------------------------------------------------------------------------ 845# CHECK: ldrsbt r1, [r2] 846# CHECK: ldrsbt r1, [r8] 847# CHECK: ldrsbt r1, [r8, #3] 848# CHECK: ldrsbt r1, [r8, #255] 849 8500x12 0xf9 0x00 0x1e 8510x18 0xf9 0x00 0x1e 8520x18 0xf9 0x03 0x1e 8530x18 0xf9 0xff 0x1e 854 855 856#------------------------------------------------------------------------------ 857# LDRSH(immediate) 858#------------------------------------------------------------------------------ 859# CHECK: ldrsh r5, [r5, #-4] 860# CHECK: ldrsh.w r5, [r6, #32] 861# CHECK: ldrsh.w r5, [r6, #33] 862# CHECK: ldrsh.w r5, [r6, #257] 863# CHECK: ldrsh.w lr, [r7, #257] 864# CHECK: ldrsh r10, [r5, #-0] 865 8660x35 0xf9 0x04 0x5c 8670xb6 0xf9 0x20 0x50 8680xb6 0xf9 0x21 0x50 8690xb6 0xf9 0x01 0x51 8700xb7 0xf9 0x01 0xe1 8710x35 0xf9 0x00 0xac 872 873#------------------------------------------------------------------------------ 874# LDRSH(register) 875#------------------------------------------------------------------------------ 876# CHECK: ldrsh.w r1, [r8, r1] 877# CHECK: ldrsh.w r4, [r5, r2] 878# CHECK: ldrsh.w r6, [r0, r2, lsl #3] 879# CHECK: ldrsh.w r8, [r8, r2, lsl #2] 880# CHECK: ldrsh.w r7, [sp, r2, lsl #1] 881# CHECK: ldrsh.w r7, [sp, r2] 882# CHECK: ldrsh r5, [r8, #255]! 883# CHECK: ldrsh r2, [r5, #4]! 884# CHECK: ldrsh r1, [r4, #-4]! 885# CHECK: ldrsh r1, [r4, #0]! 886# CHECK: ldrsh lr, [r3], #255 887# CHECK: ldrsh r9, [r2], #4 888# CHECK: ldrsh r3, [sp], #-4 889 8900x38 0xf9 0x01 0x10 8910x35 0xf9 0x02 0x40 8920x30 0xf9 0x32 0x60 8930x38 0xf9 0x22 0x80 8940x3d 0xf9 0x12 0x70 8950x3d 0xf9 0x02 0x70 8960x38 0xf9 0xff 0x5f 8970x35 0xf9 0x04 0x2f 8980x34 0xf9 0x04 0x1d 8990x34 0xf9 0x00 0x1f 9000x33 0xf9 0xff 0xeb 9010x32 0xf9 0x04 0x9b 9020x3d 0xf9 0x04 0x39 903 904 905#------------------------------------------------------------------------------ 906# LDRSH(literal) 907#------------------------------------------------------------------------------ 908# CHECK: ldrsh.w r0, [pc, #-0] 909# CHECK: ldrsh.w r10, [pc, #-231] 910# CHECK: ldrsh.w r6, [pc, #0] 9110x3f 0xf9 0x00 0x00 9120x3f 0xf9 0xe7 0xa0 9130xbf 0xf9 0x00 0x60 914 915 916#------------------------------------------------------------------------------ 917# LDRSHT 918#------------------------------------------------------------------------------ 919# CHECK: ldrsht r1, [r2] 920# CHECK: ldrsht r1, [r8] 921# CHECK: ldrsht r1, [r8, #3] 922# CHECK: ldrsht r1, [r8, #255] 923 9240x32 0xf9 0x00 0x1e 9250x38 0xf9 0x00 0x1e 9260x38 0xf9 0x03 0x1e 9270x38 0xf9 0xff 0x1e 928 929 930#------------------------------------------------------------------------------ 931# LDRT 932#------------------------------------------------------------------------------ 933# CHECK: ldrt r1, [r2] 934# CHECK: ldrt r2, [r6] 935# CHECK: ldrt r3, [r7, #3] 936# CHECK: ldrt r4, [r9, #255] 937 9380x52 0xf8 0x00 0x1e 9390x56 0xf8 0x00 0x2e 9400x57 0xf8 0x03 0x3e 9410x59 0xf8 0xff 0x4e 942 943 944#------------------------------------------------------------------------------ 945# LSL (immediate) 946#------------------------------------------------------------------------------ 947# CHECK: lsl.w r2, r3, #12 948# CHECK: lsls.w r8, r3, #31 949# CHECK: lsls.w r2, r3, #1 950# CHECK: lsl.w r2, r3, #4 951# CHECK: lsls.w r2, r12, #15 952 953# CHECK: lsl.w r3, r3, #19 954# CHECK: lsls.w r8, r8, #2 955# CHECK: lsls.w r7, r7, #5 956# CHECK: lsl.w r12, r12, #21 957 9580x4f 0xea 0x03 0x32 9590x5f 0xea 0xc3 0x78 9600x5f 0xea 0x43 0x02 9610x4f 0xea 0x03 0x12 9620x5f 0xea 0xcc 0x32 963 9640x4f 0xea 0xc3 0x43 9650x5f 0xea 0x88 0x08 9660x5f 0xea 0x47 0x17 9670x4f 0xea 0x4c 0x5c 968 969 970#------------------------------------------------------------------------------ 971# LSL (register) 972#------------------------------------------------------------------------------ 973# CHECK: lsl.w r3, r4, r2 974# CHECK: lsl.w r1, r1, r2 975# CHECK: lsls.w r3, r4, r8 976 9770x04 0xfa 0x02 0xf3 9780x01 0xfa 0x02 0xf1 9790x14 0xfa 0x08 0xf3 980 981 982#------------------------------------------------------------------------------ 983# LSR (immediate) 984#------------------------------------------------------------------------------ 985# CHECK: lsr.w r2, r3, #12 986# CHECK: lsrs.w r8, r3, #32 987# CHECK: lsrs.w r2, r3, #1 988# CHECK: lsr.w r2, r3, #4 989# CHECK: lsrs.w r2, r12, #15 990 991# CHECK: lsr.w r3, r3, #19 992# CHECK: lsrs.w r8, r8, #2 993# CHECK: lsrs.w r7, r7, #5 994# CHECK: lsr.w r12, r12, #21 995 9960x4f 0xea 0x13 0x32 9970x5f 0xea 0x13 0x08 9980x5f 0xea 0x53 0x02 9990x4f 0xea 0x13 0x12 10000x5f 0xea 0xdc 0x32 1001 10020x4f 0xea 0xd3 0x43 10030x5f 0xea 0x98 0x08 10040x5f 0xea 0x57 0x17 10050x4f 0xea 0x5c 0x5c 1006 1007 1008#------------------------------------------------------------------------------ 1009# LSR (register) 1010#------------------------------------------------------------------------------ 1011# CHECK: lsr.w r3, r4, r2 1012# CHECK: lsr.w r1, r1, r2 1013# CHECK: lsrs.w r3, r4, r8 1014 10150x24 0xfa 0x02 0xf3 10160x21 0xfa 0x02 0xf1 10170x34 0xfa 0x08 0xf3 1018 1019#------------------------------------------------------------------------------ 1020# MCR/MCR2 1021#------------------------------------------------------------------------------ 1022# CHECK: mcr p7, #1, r5, c1, c1, #4 1023# CHECK: mcr2 p7, #1, r5, c1, c1, #4 1024 10250x21 0xee 0x91 0x57 10260x21 0xfe 0x91 0x57 1027 1028 1029#------------------------------------------------------------------------------ 1030# MCRR/MCRR2 1031#------------------------------------------------------------------------------ 1032# CHECK: mcrr p7, #15, r5, r4, c1 1033# CHECK: mcrr2 p7, #15, r5, r4, c1 1034 10350x44 0xec 0xf1 0x57 10360x44 0xfc 0xf1 0x57 1037 1038 1039#------------------------------------------------------------------------------ 1040# MLA/MLS 1041#------------------------------------------------------------------------------ 1042# CHECK: mla r1, r2, r3, r4 1043# CHECK: mls r1, r2, r3, r4 1044 10450x02 0xfb 0x03 0x41 10460x02 0xfb 0x13 0x41 1047 1048 1049#------------------------------------------------------------------------------ 1050# MOV(immediate) 1051#------------------------------------------------------------------------------ 1052# CHECK: movs r1, #21 1053# CHECK: movs.w r1, #21 1054# CHECK: movs.w r8, #21 1055# CHECK: movw r0, #65535 1056# CHECK: movw r1, #43777 1057# CHECK: movw r1, #43792 1058# CHECK: mov.w r0, #66846720 1059# CHECK: mov.w r0, #66846720 1060# CHECK: movs.w r0, #66846720 1061 10620x15 0x21 10630x5f 0xf0 0x15 0x01 10640x5f 0xf0 0x15 0x08 10650x4f 0xf6 0xff 0x70 10660x4a 0xf6 0x01 0x31 10670x4a 0xf6 0x10 0x31 10680x4f 0xf0 0x7f 0x70 10690x4f 0xf0 0x7f 0x70 10700x5f 0xf0 0x7f 0x70 1071 1072#------------------------------------------------------------------------------ 1073# MOVT 1074#------------------------------------------------------------------------------ 1075# CHECK: movt r3, #7 1076# CHECK: movt r6, #65535 1077# CHECK: it eq 1078# CHECK: movteq r4, #4080 1079 10800xc0 0xf2 0x07 0x03 10810xcf 0xf6 0xff 0x76 10820x08 0xbf 10830xc0 0xf6 0xf0 0x74 1084 1085#------------------------------------------------------------------------------ 1086# MRC/MRC2 1087#------------------------------------------------------------------------------ 1088# CHECK: mrc p14, #0, r1, c1, c2, #4 1089# CHECK: mrc2 p14, #0, r1, c1, c2, #4 1090 10910x11 0xee 0x92 0x1e 10920x11 0xfe 0x92 0x1e 1093 1094 1095#------------------------------------------------------------------------------ 1096# MRRC/MRRC2 1097#------------------------------------------------------------------------------ 1098# CHECK: mrrc p7, #1, r5, r4, c1 1099# CHECK: mrrc2 p7, #1, r5, r4, c1 1100 11010x54 0xec 0x11 0x57 11020x54 0xfc 0x11 0x57 1103 1104 1105#------------------------------------------------------------------------------ 1106# MRS 1107#------------------------------------------------------------------------------ 1108# CHECK: mrs r8, apsr 1109# CHECK: mrs r8, spsr 1110 11110xef 0xf3 0x00 0x88 11120xff 0xf3 0x00 0x88 1113 1114 1115#------------------------------------------------------------------------------ 1116# MSR 1117#------------------------------------------------------------------------------ 1118# CHECK: msr APSR_nzcvq, r1 1119# CHECK: msr APSR_g, r2 1120# CHECK: msr APSR_nzcvq, r3 1121# CHECK: msr APSR_nzcvq, r4 1122# CHECK: msr APSR_nzcvqg, r5 1123# CHECK: msr CPSR_fc, r6 1124# CHECK: msr CPSR_c, r7 1125# CHECK: msr CPSR_x, r8 1126# CHECK: msr CPSR_fc, r9 1127# CHECK: msr CPSR_fc, r11 1128# CHECK: msr CPSR_fsx, r12 1129# CHECK: msr SPSR_fc, r0 1130# CHECK: msr SPSR_fsxc, r5 1131# CHECK: msr CPSR_fsxc, r8 1132 11330x81 0xf3 0x00 0x88 11340x82 0xf3 0x00 0x84 11350x83 0xf3 0x00 0x88 11360x84 0xf3 0x00 0x88 11370x85 0xf3 0x00 0x8c 11380x86 0xf3 0x00 0x89 11390x87 0xf3 0x00 0x81 11400x88 0xf3 0x00 0x82 11410x89 0xf3 0x00 0x89 11420x8b 0xf3 0x00 0x89 11430x8c 0xf3 0x00 0x8e 11440x90 0xf3 0x00 0x89 11450x95 0xf3 0x00 0x8f 11460x88 0xf3 0x00 0x8f 1147 1148 1149#------------------------------------------------------------------------------ 1150# MUL 1151#------------------------------------------------------------------------------ 1152# CHECK: muls r3, r4, r3 1153# CHECK: mul r3, r4, r3 1154# CHECK: mul r3, r4, r6 1155# CHECK: it eq 1156# CHECK: muleq r3, r4, r5 1157 11580x63 0x43 11590x04 0xfb 0x03 0xf3 11600x04 0xfb 0x06 0xf3 11610x08 0xbf 11620x04 0xfb 0x05 0xf3 1163 1164 1165#------------------------------------------------------------------------------ 1166# MVN(immediate) 1167#------------------------------------------------------------------------------ 1168# CHECK: mvns r8, #21 1169# CHECK: mvn r0, #66846720 1170# CHECK: mvns r0, #66846720 1171# CHECK: itte eq 1172# CHECK: mvnseq r1, #12 1173# CHECK: mvneq r1, #12 1174# CHECK: mvnne r1, #12 1175 11760x7f 0xf0 0x15 0x08 11770x6f 0xf0 0x7f 0x70 11780x7f 0xf0 0x7f 0x70 11790x06 0xbf 11800x7f 0xf0 0x0c 0x01 11810x6f 0xf0 0x0c 0x01 11820x6f 0xf0 0x0c 0x01 1183 1184 1185#------------------------------------------------------------------------------ 1186# MVN(register) 1187#------------------------------------------------------------------------------ 1188# CHECK: mvn.w r2, r3 1189# CHECK: mvns r2, r3 1190# CHECK: mvn.w r5, r6, lsl #19 1191# CHECK: mvn.w r5, r6, lsr #9 1192# CHECK: mvn.w r5, r6, asr #4 1193# CHECK: mvn.w r5, r6, ror #6 1194# CHECK: mvn.w r5, r6, rrx 1195# CHECK: it eq 1196# CHECK: mvneq r2, r3 1197 11980x6f 0xea 0x03 0x02 11990xda 0x43 12000x6f 0xea 0xc6 0x45 12010x6f 0xea 0x56 0x25 12020x6f 0xea 0x26 0x15 12030x6f 0xea 0xb6 0x15 12040x6f 0xea 0x36 0x05 12050x08 0xbf 12060xda 0x43 1207 1208#------------------------------------------------------------------------------ 1209# NOP 1210#------------------------------------------------------------------------------ 1211# CHECK: nop.w 1212 12130xaf 0xf3 0x00 0x80 1214 1215 1216#------------------------------------------------------------------------------ 1217# ORN 1218#------------------------------------------------------------------------------ 1219# CHECK: orn r4, r5, #61440 1220# CHECK: orn r4, r5, r6 1221# CHECK: orns r4, r5, r6 1222# CHECK: orn r4, r5, r6, lsl #5 1223# CHECK: orns r4, r5, r6, lsr #5 1224# CHECK: orn r4, r5, r6, lsr #5 1225# CHECK: orns r4, r5, r6, asr #5 1226# CHECK: orn r4, r5, r6, ror #5 1227 12280x65 0xf4 0x70 0x44 12290x65 0xea 0x06 0x04 12300x75 0xea 0x06 0x04 12310x65 0xea 0x46 0x14 12320x75 0xea 0x56 0x14 12330x65 0xea 0x56 0x14 12340x75 0xea 0x66 0x14 12350x65 0xea 0x76 0x14 1236 1237 1238#------------------------------------------------------------------------------ 1239# ORR 1240#------------------------------------------------------------------------------ 1241# CHECK: orr r4, r5, #61440 1242# CHECK: orr.w r4, r5, r6 1243# CHECK: orr.w r4, r5, r6, lsl #5 1244# CHECK: orrs.w r4, r5, r6, lsr #5 1245# CHECK: orr.w r4, r5, r6, lsr #5 1246# CHECK: orrs.w r4, r5, r6, asr #5 1247# CHECK: orr.w r4, r5, r6, ror #5 1248 12490x45 0xf4 0x70 0x44 12500x45 0xea 0x06 0x04 12510x45 0xea 0x46 0x14 12520x55 0xea 0x56 0x14 12530x45 0xea 0x56 0x14 12540x55 0xea 0x66 0x14 12550x45 0xea 0x76 0x14 1256 1257 1258#------------------------------------------------------------------------------ 1259# PKH 1260#------------------------------------------------------------------------------ 1261# CHECK: pkhbt r2, r2, r3 1262# CHECK: pkhbt r2, r2, r3, lsl #31 1263# CHECK: pkhbt r2, r2, r3, lsl #15 1264 1265# CHECK: pkhtb r2, r2, r3, asr #31 1266# CHECK: pkhtb r2, r2, r3, asr #15 1267 12680xc2 0xea 0x03 0x02 12690xc2 0xea 0xc3 0x72 12700xc2 0xea 0xc3 0x32 1271 12720xc2 0xea 0xe3 0x72 12730xc2 0xea 0xe3 0x32 1274 1275 1276#------------------------------------------------------------------------------ 1277# PLD(immediate) 1278#------------------------------------------------------------------------------ 1279# CHECK: pld [r5, #-4] 1280# CHECK: pld [r6, #32] 1281# CHECK: pld [r6, #33] 1282# CHECK: pld [r6, #257] 1283# CHECK: pld [r7, #257] 1284 12850x15 0xf8 0x04 0xfc 12860x96 0xf8 0x20 0xf0 12870x96 0xf8 0x21 0xf0 12880x96 0xf8 0x01 0xf1 12890x97 0xf8 0x01 0xf1 1290 1291#------------------------------------------------------------------------------ 1292# PLD(register) 1293#------------------------------------------------------------------------------ 1294# CHECK: pld [r8, r1] 1295# CHECK: pld [r5, r2] 1296# CHECK: pld [r0, r2, lsl #3] 1297# CHECK: pld [r8, r2, lsl #2] 1298# CHECK: pld [sp, r2, lsl #1] 1299# CHECK: pld [sp, r2] 1300 13010x18 0xf8 0x01 0xf0 13020x15 0xf8 0x02 0xf0 13030x10 0xf8 0x32 0xf0 13040x18 0xf8 0x22 0xf0 13050x1d 0xf8 0x12 0xf0 13060x1d 0xf8 0x02 0xf0 1307 1308#------------------------------------------------------------------------------ 1309# PLD(literal) 1310#------------------------------------------------------------------------------ 1311# CHECK: pld [pc, #-0] 1312# CHECK: pld [pc, #455] 1313# CHECK: pld [pc, #0] 1314 13150x1f 0xf8 0x00 0xf0 13160x9f 0xf8 0xc7 0xf1 13170x9f 0xf8 0x00 0xf0 1318 1319#------------------------------------------------------------------------------ 1320# PLI(immediate) 1321#------------------------------------------------------------------------------ 1322# CHECK: pli [r5, #-4] 1323# CHECK: pli [r6, #32] 1324# CHECK: pli [r6, #33] 1325# CHECK: pli [r6, #257] 1326# CHECK: pli [r7, #257] 1327 13280x15 0xf9 0x04 0xfc 13290x96 0xf9 0x20 0xf0 13300x96 0xf9 0x21 0xf0 13310x96 0xf9 0x01 0xf1 13320x97 0xf9 0x01 0xf1 1333 1334#------------------------------------------------------------------------------ 1335# PLI(register) 1336#------------------------------------------------------------------------------ 1337# CHECK: pli [r8, r1] 1338# CHECK: pli [r5, r2] 1339# CHECK: pli [r0, r2, lsl #3] 1340# CHECK: pli [r8, r2, lsl #2] 1341# CHECK: pli [sp, r2, lsl #1] 1342# CHECK: pli [sp, r2] 1343 13440x18 0xf9 0x01 0xf0 13450x15 0xf9 0x02 0xf0 13460x10 0xf9 0x32 0xf0 13470x18 0xf9 0x22 0xf0 13480x1d 0xf9 0x12 0xf0 13490x1d 0xf9 0x02 0xf0 1350 1351#------------------------------------------------------------------------------ 1352# PLI(literal) 1353#------------------------------------------------------------------------------ 1354# CHECK: pli [pc, #-0] 1355# CHECK: pli [pc, #-328] 1356# CHECK: pli [pc, #0] 1357 13580x1f 0xf9 0x00 0xf0 13590x1f 0xf9 0x48 0xf1 13600x9f 0xf9 0x00 0xf0 1361 1362 1363#------------------------------------------------------------------------------ 1364# QADD/QADD16/QADD8 1365#------------------------------------------------------------------------------ 1366# CHECK: qadd r1, r2, r3 1367# CHECK: qadd16 r1, r2, r3 1368# CHECK: qadd8 r1, r2, r3 1369# CHECK: itte gt 1370# CHECK: qaddgt r1, r2, r3 1371# CHECK: qadd16gt r1, r2, r3 1372# CHECK: qadd8le r1, r2, r3 1373 13740x83 0xfa 0x82 0xf1 13750x92 0xfa 0x13 0xf1 13760x82 0xfa 0x13 0xf1 13770xc6 0xbf 13780x83 0xfa 0x82 0xf1 13790x92 0xfa 0x13 0xf1 13800x82 0xfa 0x13 0xf1 1381 1382 1383#------------------------------------------------------------------------------ 1384# QDADD/QDSUB 1385#------------------------------------------------------------------------------ 1386# CHECK: qdadd r6, r7, r8 1387# CHECK: qdsub r6, r7, r8 1388# CHECK: itt hi 1389# CHECK: qdaddhi r6, r7, r8 1390# CHECK: qdsubhi r6, r7, r8 1391 13920x88 0xfa 0x97 0xf6 13930x88 0xfa 0xb7 0xf6 13940x84 0xbf 13950x88 0xfa 0x97 0xf6 13960x88 0xfa 0xb7 0xf6 1397 1398 1399#------------------------------------------------------------------------------ 1400# QSAX 1401#------------------------------------------------------------------------------ 1402# CHECK: qsax r9, r12, r0 1403# CHECK: it eq 1404# CHECK: qsaxeq r9, r12, r0 1405 14060xec 0xfa 0x10 0xf9 14070x08 0xbf 14080xec 0xfa 0x10 0xf9 1409 1410 1411#------------------------------------------------------------------------------ 1412# QSUB/QSUB16/QSUB8 1413#------------------------------------------------------------------------------ 1414# CHECK: qsub r1, r2, r3 1415# CHECK: qsub16 r1, r2, r3 1416# CHECK: qsub8 r1, r2, r3 1417# CHECK: itet le 1418# CHECK: qsuble r1, r2, r3 1419# CHECK: qsub16gt r1, r2, r3 1420# CHECK: qsub8le r1, r2, r3 1421 14220x83 0xfa 0xa2 0xf1 14230xd2 0xfa 0x13 0xf1 14240xc2 0xfa 0x13 0xf1 14250xd6 0xbf 14260x83 0xfa 0xa2 0xf1 14270xd2 0xfa 0x13 0xf1 14280xc2 0xfa 0x13 0xf1 1429 1430 1431#------------------------------------------------------------------------------ 1432# RBIT 1433#------------------------------------------------------------------------------ 1434# CHECK: rbit r1, r2 1435# CHECK: it ne 1436# CHECK: rbitne r1, r2 1437 14380x92 0xfa 0xa2 0xf1 14390x18 0xbf 14400x92 0xfa 0xa2 0xf1 1441 1442 1443#------------------------------------------------------------------------------ 1444# REV 1445#------------------------------------------------------------------------------ 1446# CHECK: rev.w r1, r2 1447# CHECK: rev.w r2, r8 1448# CHECK: itt ne 1449# CHECK: revne r1, r2 1450# CHECK: revne.w r1, r8 1451 14520x92 0xfa 0x82 0xf1 14530x98 0xfa 0x88 0xf2 14540x1c 0xbf 14550x11 0xba 14560x98 0xfa 0x88 0xf1 1457 1458 1459#------------------------------------------------------------------------------ 1460# REV16 1461#------------------------------------------------------------------------------ 1462# CHECK: rev16.w r1, r2 1463# CHECK: rev16.w r2, r8 1464# CHECK: itt ne 1465# CHECK: rev16ne r1, r2 1466# CHECK: rev16ne.w r1, r8 1467 14680x92 0xfa 0x92 0xf1 14690x98 0xfa 0x98 0xf2 14700x1c 0xbf 14710x51 0xba 14720x98 0xfa 0x98 0xf1 1473 1474 1475#------------------------------------------------------------------------------ 1476# REVSH 1477#------------------------------------------------------------------------------ 1478# CHECK: revsh.w r1, r2 1479# CHECK: revsh.w r2, r8 1480# CHECK: itt ne 1481# CHECK: revshne r1, r2 1482# CHECK: revshne.w r1, r8 1483 14840x92 0xfa 0xb2 0xf1 14850x98 0xfa 0xb8 0xf2 14860x1c 0xbf 14870xd1 0xba 14880x98 0xfa 0xb8 0xf1 1489 1490 1491#------------------------------------------------------------------------------ 1492# ROR (immediate) 1493#------------------------------------------------------------------------------ 1494# CHECK: ror.w r2, r3, #12 1495# CHECK: rors.w r8, r3, #31 1496# CHECK: rors.w r2, r3, #1 1497# CHECK: ror.w r2, r3, #4 1498# CHECK: rors.w r2, r12, #15 1499 1500# CHECK: ror.w r3, r3, #19 1501# CHECK: rors.w r8, r8, #2 1502# CHECK: rors.w r7, r7, #5 1503# CHECK: ror.w r12, r12, #21 1504 15050x4f 0xea 0x33 0x32 15060x5f 0xea 0xf3 0x78 15070x5f 0xea 0x73 0x02 15080x4f 0xea 0x33 0x12 15090x5f 0xea 0xfc 0x32 1510 15110x4f 0xea 0xf3 0x43 15120x5f 0xea 0xb8 0x08 15130x5f 0xea 0x77 0x17 15140x4f 0xea 0x7c 0x5c 1515 1516 1517#------------------------------------------------------------------------------ 1518# ROR (register) 1519#------------------------------------------------------------------------------ 1520# CHECK: ror.w r3, r4, r2 1521# CHECK: ror.w r1, r1, r2 1522# CHECK: rors.w r3, r4, r8 1523 15240x64 0xfa 0x02 0xf3 15250x61 0xfa 0x02 0xf1 15260x74 0xfa 0x08 0xf3 1527 1528 1529#------------------------------------------------------------------------------ 1530# RRX 1531#------------------------------------------------------------------------------ 1532# CHECK: rrx r1, r2 1533# CHECK: rrxs r1, r2 1534# CHECK: ite lt 1535# CHECK: rrxlt r9, r12 1536# CHECK: rrxsge r8, r3 1537 15380x4f 0xea 0x32 0x01 15390x5f 0xea 0x32 0x01 15400xb4 0xbf 15410x4f 0xea 0x3c 0x09 15420x5f 0xea 0x33 0x08 1543 1544#------------------------------------------------------------------------------ 1545# RSB (immediate) 1546#------------------------------------------------------------------------------ 1547# CHECK: rsb.w r2, r5, #1044480 1548# CHECK: rsbs.w r3, r12, #15 1549# CHECK: rsb.w r1, r1, #255 1550 15510xc5 0xf5 0x7f 0x22 15520xdc 0xf1 0x0f 0x03 15530xc1 0xf1 0xff 0x01 1554 1555 1556#------------------------------------------------------------------------------ 1557# RSB (register) 1558#------------------------------------------------------------------------------ 1559# CHECK: rsb r4, r4, r8 1560# CHECK: rsb r4, r9, r8 1561# CHECK: rsb r1, r4, r8, asr #3 1562# CHECK: rsbs r2, r1, r7, lsl #1 1563 15640xc4 0xeb 0x08 0x04 15650xc9 0xeb 0x08 0x04 15660xc4 0xeb 0xe8 0x01 15670xd1 0xeb 0x47 0x02 1568 1569 1570#------------------------------------------------------------------------------ 1571# SADD16 1572#------------------------------------------------------------------------------ 1573# CHECK: sadd16 r3, r4, r8 1574# CHECK: it ne 1575# CHECK: sadd16ne r3, r4, r8 1576 15770x94 0xfa 0x08 0xf3 15780x18 0xbf 15790x94 0xfa 0x08 0xf3 1580 1581 1582#------------------------------------------------------------------------------ 1583# SADD8 1584#------------------------------------------------------------------------------ 1585# CHECK: sadd8 r3, r4, r8 1586# CHECK: it ne 1587# CHECK: sadd8ne r3, r4, r8 1588 15890x84 0xfa 0x08 0xf3 15900x18 0xbf 15910x84 0xfa 0x08 0xf3 1592 1593 1594#------------------------------------------------------------------------------ 1595# SASX 1596#------------------------------------------------------------------------------ 1597# CHECK: sasx r9, r2, r7 1598# CHECK: it ne 1599# CHECK: sasxne r2, r5, r6 1600 16010xa2 0xfa 0x07 0xf9 16020x18 0xbf 16030xa5 0xfa 0x06 0xf2 1604 1605 1606#------------------------------------------------------------------------------ 1607# SBC (immediate) 1608#------------------------------------------------------------------------------ 1609# CHECK: sbc r0, r1, #4 1610# CHECK: sbcs r0, r1, #0 1611# CHECK: sbc r1, r2, #255 1612# CHECK: sbc r3, r7, #5570645 1613# CHECK: sbc r8, r12, #2852170240 1614# CHECK: sbc r9, r7, #2779096485 1615# CHECK: sbc r5, r3, #2264924160 1616# CHECK: sbc r4, r2, #2139095040 1617# CHECK: sbc r4, r2, #1664 1618 16190x61 0xf1 0x04 0x00 16200x71 0xf1 0x00 0x00 16210x62 0xf1 0xff 0x01 16220x67 0xf1 0x55 0x13 16230x6c 0xf1 0xaa 0x28 16240x67 0xf1 0xa5 0x39 16250x63 0xf1 0x07 0x45 16260x62 0xf1 0xff 0x44 16270x62 0xf5 0xd0 0x64 1628 1629 1630#------------------------------------------------------------------------------ 1631# SBC (register) 1632#------------------------------------------------------------------------------ 1633# CHECK: sbc.w r4, r5, r6 1634# CHECK: sbcs.w r4, r5, r6 1635# CHECK: sbc.w r9, r1, r3 1636# CHECK: sbcs.w r9, r1, r3 1637# CHECK: sbc.w r0, r1, r3, ror #4 1638# CHECK: sbcs.w r0, r1, r3, lsl #7 1639# CHECK: sbc.w r0, r1, r3, lsr #31 1640# CHECK: sbcs.w r0, r1, r3, asr #32 1641 16420x65 0xeb 0x06 0x04 16430x75 0xeb 0x06 0x04 16440x61 0xeb 0x03 0x09 16450x71 0xeb 0x03 0x09 16460x61 0xeb 0x33 0x10 16470x71 0xeb 0xc3 0x10 16480x61 0xeb 0xd3 0x70 16490x71 0xeb 0x23 0x00 1650 1651 1652#------------------------------------------------------------------------------ 1653# SBFX 1654#------------------------------------------------------------------------------ 1655# CHECK: sbfx r4, r5, #16, #1 1656# CHECK: it gt 1657# CHECK: sbfxgt r4, r5, #16, #16 1658 16590x45 0xf3 0x00 0x44 16600xc8 0xbf 16610x45 0xf3 0x0f 0x44 1662 1663 1664#------------------------------------------------------------------------------ 1665# SEL 1666#------------------------------------------------------------------------------ 1667# CHECK: sel r5, r9, r2 1668# CHECK: it le 1669# CHECK: selle r5, r9, r2 1670 16710xa9 0xfa 0x82 0xf5 16720xd8 0xbf 16730xa9 0xfa 0x82 0xf5 1674 1675 1676#------------------------------------------------------------------------------ 1677# SEV 1678#------------------------------------------------------------------------------ 1679# CHECK: sev.w 1680# CHECK: it eq 1681# CHECK: seveq.w 1682 16830xaf 0xf3 0x04 0x80 16840x08 0xbf 16850xaf 0xf3 0x04 0x80 1686 1687 1688#------------------------------------------------------------------------------ 1689# SADD16/SADD8 1690#------------------------------------------------------------------------------ 1691# CHECK: sadd16 r1, r2, r3 1692# CHECK: sadd8 r1, r2, r3 1693# CHECK: ite gt 1694# CHECK: sadd16gt r1, r2, r3 1695# CHECK: sadd8le r1, r2, r3 1696 16970x92 0xfa 0x03 0xf1 16980x82 0xfa 0x03 0xf1 16990xcc 0xbf 17000x92 0xfa 0x03 0xf1 17010x82 0xfa 0x03 0xf1 1702 1703 1704#------------------------------------------------------------------------------ 1705# SHASX 1706#------------------------------------------------------------------------------ 1707# CHECK: shasx r4, r8, r2 1708# CHECK: it gt 1709# CHECK: shasxgt r4, r8, r2 1710 17110xa8 0xfa 0x22 0xf4 17120xc8 0xbf 17130xa8 0xfa 0x22 0xf4 1714 1715 1716#------------------------------------------------------------------------------ 1717# SHASX 1718#------------------------------------------------------------------------------ 1719# CHECK: shsax r4, r8, r2 1720# CHECK: it gt 1721# CHECK: shsaxgt r4, r8, r2 1722 17230xe8 0xfa 0x22 0xf4 17240xc8 0xbf 17250xe8 0xfa 0x22 0xf4 1726 1727 1728#------------------------------------------------------------------------------ 1729# SHSUB16/SHSUB8 1730#------------------------------------------------------------------------------ 1731# CHECK: shsub16 r4, r8, r2 1732# CHECK: shsub8 r4, r8, r2 1733# CHECK: itt gt 1734# CHECK: shsub16gt r4, r8, r2 1735# CHECK: shsub8gt r4, r8, r2 1736 17370xd8 0xfa 0x22 0xf4 17380xc8 0xfa 0x22 0xf4 17390xc4 0xbf 17400xd8 0xfa 0x22 0xf4 17410xc8 0xfa 0x22 0xf4 1742 1743 1744#------------------------------------------------------------------------------ 1745# SMLABB/SMLABT/SMLATB/SMLATT 1746#------------------------------------------------------------------------------ 1747# CHECK: smlabb r3, r1, r9, r0 1748# CHECK: smlabt r5, r6, r4, r1 1749# CHECK: smlatb r4, r2, r3, r2 1750# CHECK: smlatt r8, r3, r8, r4 1751# CHECK: itete gt 1752# CHECK: smlabbgt r3, r1, r9, r0 1753# CHECK: smlabtle r5, r6, r4, r1 1754# CHECK: smlatbgt r4, r2, r3, r2 1755# CHECK: smlattle r8, r3, r8, r4 1756 17570x11 0xfb 0x09 0x03 17580x16 0xfb 0x14 0x15 17590x12 0xfb 0x23 0x24 17600x13 0xfb 0x38 0x48 17610xcb 0xbf 17620x11 0xfb 0x09 0x03 17630x16 0xfb 0x14 0x15 17640x12 0xfb 0x23 0x24 17650x13 0xfb 0x38 0x48 1766 1767 1768#------------------------------------------------------------------------------ 1769# SMLAD/SMLADX 1770#------------------------------------------------------------------------------ 1771# CHECK: smlad r2, r3, r5, r8 1772# CHECK: smladx r2, r3, r5, r8 1773# CHECK: itt hi 1774# CHECK: smladhi r2, r3, r5, r8 1775# CHECK: smladxhi r2, r3, r5, r8 1776 17770x23 0xfb 0x05 0x82 17780x23 0xfb 0x15 0x82 17790x84 0xbf 17800x23 0xfb 0x05 0x82 17810x23 0xfb 0x15 0x82 1782 1783 1784#------------------------------------------------------------------------------ 1785# SMLAL 1786#------------------------------------------------------------------------------ 1787# CHECK: smlal r2, r3, r5, r8 1788# CHECK: it eq 1789# CHECK: smlaleq r2, r3, r5, r8 1790 17910xc5 0xfb 0x08 0x23 17920x08 0xbf 17930xc5 0xfb 0x08 0x23 1794 1795 1796#------------------------------------------------------------------------------ 1797# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1798#------------------------------------------------------------------------------ 1799# CHECK: smlalbb r3, r1, r9, r0 1800# CHECK: smlalbt r5, r6, r4, r1 1801# CHECK: smlaltb r4, r2, r3, r2 1802# CHECK: smlaltt r8, r3, r8, r4 1803# CHECK: iteet ge 1804# CHECK: smlalbbge r3, r1, r9, r0 1805# CHECK: smlalbtlt r5, r6, r4, r1 1806# CHECK: smlaltblt r4, r2, r3, r2 1807# CHECK: smlalttge r8, r3, r8, r4 1808 18090xc9 0xfb 0x80 0x31 18100xc4 0xfb 0x91 0x56 18110xc3 0xfb 0xa2 0x42 18120xc8 0xfb 0xb4 0x83 18130xad 0xbf 18140xc9 0xfb 0x80 0x31 18150xc4 0xfb 0x91 0x56 18160xc3 0xfb 0xa2 0x42 18170xc8 0xfb 0xb4 0x83 1818 1819#------------------------------------------------------------------------------ 1820# SMLALD/SMLALDX 1821#------------------------------------------------------------------------------ 1822# CHECK: smlald r2, r3, r5, r8 1823# CHECK: smlaldx r2, r3, r5, r8 1824# CHECK: ite eq 1825# CHECK: smlaldeq r2, r3, r5, r8 1826# CHECK: smlaldxne r2, r3, r5, r8 1827 18280xc5 0xfb 0xc8 0x23 18290xc5 0xfb 0xd8 0x23 18300x0c 0xbf 18310xc5 0xfb 0xc8 0x23 18320xc5 0xfb 0xd8 0x23 1833 1834 1835#------------------------------------------------------------------------------ 1836# SMLAWB/SMLAWT 1837#------------------------------------------------------------------------------ 1838# CHECK: smlawb r2, r3, r10, r8 1839# CHECK: smlawt r8, r3, r5, r9 1840# CHECK: ite eq 1841# CHECK: smlawbeq r2, r7, r5, r8 1842# CHECK: smlawtne r1, r3, r0, r8 1843 18440x33 0xfb 0x0a 0x82 18450x33 0xfb 0x15 0x98 18460x0c 0xbf 18470x37 0xfb 0x05 0x82 18480x33 0xfb 0x10 0x81 1849 1850 1851#------------------------------------------------------------------------------ 1852# SMLSD/SMLSDX 1853#------------------------------------------------------------------------------ 1854# CHECK: smlsd r2, r3, r5, r8 1855# CHECK: smlsdx r2, r3, r5, r8 1856# CHECK: ite le 1857# CHECK: smlsdle r2, r3, r5, r8 1858# CHECK: smlsdxgt r2, r3, r5, r8 1859 18600x43 0xfb 0x05 0x82 18610x43 0xfb 0x15 0x82 18620xd4 0xbf 18630x43 0xfb 0x05 0x82 18640x43 0xfb 0x15 0x82 1865 1866 1867#------------------------------------------------------------------------------ 1868# SMLSLD/SMLSLDX 1869#------------------------------------------------------------------------------ 1870# CHECK: smlsld r2, r9, r5, r1 1871# CHECK: smlsldx r4, r11, r2, r8 1872# CHECK: ite ge 1873# CHECK: smlsldge r8, r2, r5, r6 1874# CHECK: smlsldxlt r1, r0, r3, r8 1875 18760xd5 0xfb 0xc1 0x29 18770xd2 0xfb 0xd8 0x4b 18780xac 0xbf 18790xd5 0xfb 0xc6 0x82 18800xd3 0xfb 0xd8 0x10 1881 1882 1883#------------------------------------------------------------------------------ 1884# SMMLA/SMMLAR 1885#------------------------------------------------------------------------------ 1886# CHECK: smmla r1, r2, r3, r4 1887# CHECK: smmlar r4, r3, r2, r1 1888# CHECK: ite lo 1889# CHECK: smmlalo r1, r2, r3, r4 1890# CHECK: smmlarhs r4, r3, r2, r1 1891 18920x52 0xfb 0x03 0x41 18930x53 0xfb 0x12 0x14 18940x34 0xbf 18950x52 0xfb 0x03 0x41 18960x53 0xfb 0x12 0x14 1897 1898 1899#------------------------------------------------------------------------------ 1900# SMMLS/SMMLSR 1901#------------------------------------------------------------------------------ 1902# CHECK: smmls r1, r2, r3, r4 1903# CHECK: smmlsr r4, r3, r2, r1 1904# CHECK: ite lo 1905# CHECK: smmlslo r1, r2, r3, r4 1906# CHECK: smmlsrhs r4, r3, r2, r1 1907 19080x62 0xfb 0x03 0x41 19090x63 0xfb 0x12 0x14 19100x34 0xbf 19110x62 0xfb 0x03 0x41 19120x63 0xfb 0x12 0x14 1913 1914#------------------------------------------------------------------------------ 1915# SSAT 1916#------------------------------------------------------------------------------ 1917# CHECK: ssat r9, #30, r0, asr #2 1918 19190x20 0xf3 0x9d 0x09 1920 1921#------------------------------------------------------------------------------ 1922# STR (immediate) 1923#------------------------------------------------------------------------------ 1924# CHECK: str r10, [r11], #0 1925 19260x4b 0xf8 0x00 0xab 1927 1928#------------------------------------------------------------------------------ 1929# STRD (immediate) 1930#------------------------------------------------------------------------------ 1931# CHECK: strd r1, r1, [r0], #0 1932# CHECK: strd r6, r3, [r5], #-8 1933# CHECK: strd r8, r5, [r5], #-0 1934# CHECK: strd r7, r4, [r5], #-4 1935# CHECK: strd r0, r1, [r2, #-0]! 1936# CHECK: strd r0, r1, [r2, #0]! 1937# CHECK: strd r0, r1, [r2, #-0] 1938 19390xe0 0xe8 0x00 0x11 19400x65 0xe8 0x02 0x63 19410x65 0xe8 0x00 0x85 19420x65 0xe8 0x01 0x74 19430x62 0xe9 0x00 0x01 19440xe2 0xe9 0x00 0x01 19450x42 0xe9 0x00 0x01 1946 1947#------------------------------------------------------------------------------ 1948# STREX/STREXB/STREXH/STREXD 1949#------------------------------------------------------------------------------ 1950# CHECK: strex r1, r8, [r4] 1951# CHECK: strex r8, r2, [r4] 1952# CHECK: strex r2, r12, [sp, #128] 1953# CHECK: strexb r5, r1, [r7] 1954# CHECK: strexh r9, r7, [r12] 1955# CHECK: strexd r9, r3, r6, [r4] 1956 19570x44 0xe8 0x00 0x81 19580x44 0xe8 0x00 0x28 19590x4d 0xe8 0x20 0xc2 19600xc7 0xe8 0x45 0x1f 19610xcc 0xe8 0x59 0x7f 19620xc4 0xe8 0x79 0x36 1963 1964 1965#------------------------------------------------------------------------------ 1966# STRH(immediate) 1967#------------------------------------------------------------------------------ 1968# CHECK: strh r5, [r5, #-4] 1969# CHECK: strh r5, [r6, #32] 1970# CHECK: strh.w r5, [r6, #33] 1971# CHECK: strh.w r5, [r6, #257] 1972# CHECK: strh.w lr, [r7, #257] 1973# CHECK: strh r5, [r8, #255]! 1974# CHECK: strh r2, [r5, #4]! 1975# CHECK: strh r1, [r4, #-4]! 1976# CHECK: strh r1, [r4, #0]! 1977# CHECK: strh lr, [r3], #255 1978# CHECK: strh r9, [r2], #4 1979# CHECK: strh r3, [sp], #-4 1980 19810x25 0xf8 0x04 0x5c 19820x35 0x84 19830xa6 0xf8 0x21 0x50 19840xa6 0xf8 0x01 0x51 19850xa7 0xf8 0x01 0xe1 19860x28 0xf8 0xff 0x5f 19870x25 0xf8 0x04 0x2f 19880x24 0xf8 0x04 0x1d 19890x24 0xf8 0x00 0x1f 19900x23 0xf8 0xff 0xeb 19910x22 0xf8 0x04 0x9b 19920x2d 0xf8 0x04 0x39 1993 1994 1995#------------------------------------------------------------------------------ 1996# STRH(register) 1997#------------------------------------------------------------------------------ 1998# CHECK: strh.w r1, [r8, r1] 1999# CHECK: strh.w r4, [r5, r2] 2000# CHECK: strh.w r6, [r0, r2, lsl #3] 2001# CHECK: strh.w r8, [r8, r2, lsl #2] 2002# CHECK: strh.w r7, [sp, r2, lsl #1] 2003# CHECK: strh.w r7, [sp, r2] 2004 20050x28 0xf8 0x01 0x10 20060x25 0xf8 0x02 0x40 20070x20 0xf8 0x32 0x60 20080x28 0xf8 0x22 0x80 20090x2d 0xf8 0x12 0x70 20100x2d 0xf8 0x02 0x70 2011 2012 2013#------------------------------------------------------------------------------ 2014# STRHT 2015#------------------------------------------------------------------------------ 2016# CHECK: strht r1, [r2] 2017# CHECK: strht r1, [r8] 2018# CHECK: strht r1, [r8, #3] 2019# CHECK: strht r1, [r8, #255] 2020 20210x22 0xf8 0x00 0x1e 20220x28 0xf8 0x00 0x1e 20230x28 0xf8 0x03 0x1e 20240x28 0xf8 0xff 0x1e 2025 2026 2027#------------------------------------------------------------------------------ 2028# STRT 2029#------------------------------------------------------------------------------ 2030# CHECK: strt r1, [r2] 2031# CHECK: strt r1, [r8] 2032# CHECK: strt r1, [r8, #3] 2033# CHECK: strt r1, [r8, #255] 2034 20350x42 0xf8 0x00 0x1e 20360x48 0xf8 0x00 0x1e 20370x48 0xf8 0x03 0x1e 20380x48 0xf8 0xff 0x1e 2039 2040 2041#------------------------------------------------------------------------------ 2042# SUB (immediate) 2043#------------------------------------------------------------------------------ 2044# CHECK: itet eq 2045# CHECK: subeq r1, r2, #4 2046# CHECK: subwne r5, r3, #1023 2047# CHECK: subweq r4, r5, #293 2048# CHECK: sub.w r2, sp, #1024 2049# CHECK: sub.w r2, r8, #65280 2050# CHECK: subw r2, r3, #257 2051# CHECK: sub.w r12, r6, #256 2052# CHECK: subw r12, r6, #256 2053# CHECK: subs.w r1, r2, #496 2054# CHECK: subs pc, lr, #4 2055 20560x0a 0xbf 20570x11 0x1f 20580xa3 0xf2 0xff 0x35 20590xa5 0xf2 0x25 0x14 20600xad 0xf5 0x80 0x62 20610xa8 0xf5 0x7f 0x42 20620xa3 0xf2 0x01 0x12 20630xa6 0xf5 0x80 0x7c 20640xa6 0xf2 0x00 0x1c 20650xb2 0xf5 0xf8 0x71 20660xde 0xf3 0x04 0x8f 2067 2068 2069#------------------------------------------------------------------------------ 2070# SUB (register) 2071#------------------------------------------------------------------------------ 2072# CHECK: sub.w r4, r5, r6 2073# CHECK: sub.w r4, r5, r6, lsl #5 2074# CHECK: sub.w r4, r5, r6, lsr #5 2075# CHECK: sub.w r4, r5, r6, lsr #5 2076# CHECK: sub.w r4, r5, r6, asr #5 2077# CHECK: sub.w r4, r5, r6, ror #5 2078# CHECK: sub.w r5, r2, r12, rrx 2079 20800xa5 0xeb 0x06 0x04 20810xa5 0xeb 0x46 0x14 20820xa5 0xeb 0x56 0x14 20830xa5 0xeb 0x56 0x14 20840xa5 0xeb 0x66 0x14 20850xa5 0xeb 0x76 0x14 20860xa2 0xeb 0x3c 0x05 2087 2088 2089#------------------------------------------------------------------------------ 2090# SVC 2091#------------------------------------------------------------------------------ 2092# CHECK: svc #0 2093# CHECK: ite eq 2094# CHECK: svceq #255 2095# CHECK: svcne #33 2096 20970x00 0xdf 20980x0c 0xbf 20990xff 0xdf 21000x21 0xdf 2101 2102#------------------------------------------------------------------------------ 2103# SXTAB 2104#------------------------------------------------------------------------------ 2105# CHECK: sxtab r2, r3, r4 2106# CHECK: sxtab r4, r5, r6 2107# CHECK: it lt 2108# CHECK: sxtablt r6, r2, r9, ror #8 2109# CHECK: sxtab r5, r1, r4, ror #16 2110# CHECK: sxtab r7, r8, r3, ror #24 2111 21120x43 0xfa 0x84 0xf2 21130x45 0xfa 0x86 0xf4 21140xb8 0xbf 21150x42 0xfa 0x99 0xf6 21160x41 0xfa 0xa4 0xf5 21170x48 0xfa 0xb3 0xf7 2118 2119 2120#------------------------------------------------------------------------------ 2121# SXTAB16 2122#------------------------------------------------------------------------------ 2123# CHECK: sxtab16 r6, r2, r7 2124# CHECK: sxtab16 r3, r5, r8, ror #8 2125# CHECK: sxtab16 r3, r2, r1, ror #16 2126# CHECK: ite ne 2127# CHECK: sxtab16ne r0, r1, r4 2128# CHECK: sxtab16eq r1, r2, r3, ror #24 2129 21300x22 0xfa 0x87 0xf6 21310x25 0xfa 0x98 0xf3 21320x22 0xfa 0xa1 0xf3 21330x14 0xbf 21340x21 0xfa 0x84 0xf0 21350x22 0xfa 0xb3 0xf1 2136 2137 2138#------------------------------------------------------------------------------ 2139# SXTAH 2140#------------------------------------------------------------------------------ 2141# CHECK: sxtah r1, r3, r9 2142# CHECK: sxtah r3, r8, r3, ror #8 2143# CHECK: sxtah r9, r3, r3, ror #24 2144# CHECK: ite hi 2145# CHECK: sxtahhi r6, r1, r6 2146# CHECK: sxtahls r2, r2, r4, ror #16 2147 21480x03 0xfa 0x89 0xf1 21490x08 0xfa 0x93 0xf3 21500x03 0xfa 0xb3 0xf9 21510x8c 0xbf 21520x01 0xfa 0x86 0xf6 21530x02 0xfa 0xa4 0xf2 2154 2155 2156#------------------------------------------------------------------------------ 2157# SXTB 2158#------------------------------------------------------------------------------ 2159# CHECK: sxtb r5, r6 2160# CHECK: sxtb.w r6, r9, ror #8 2161# CHECK: sxtb.w r8, r3, ror #24 2162# CHECK: ite ge 2163# CHECK: sxtbge r2, r4 2164# CHECK: sxtblt.w r5, r1, ror #16 2165 21660x75 0xb2 21670x4f 0xfa 0x99 0xf6 21680x4f 0xfa 0xb3 0xf8 21690xac 0xbf 21700x62 0xb2 21710x4f 0xfa 0xa1 0xf5 2172 2173 2174#------------------------------------------------------------------------------ 2175# SXTB16 2176#------------------------------------------------------------------------------ 2177# CHECK: sxtb16 r1, r4 2178# CHECK: sxtb16 r6, r7 2179# CHECK: sxtb16 r3, r1, ror #16 2180# CHECK: ite hs 2181# CHECK: sxtb16hs r3, r5, ror #8 2182# CHECK: sxtb16lo r2, r3, ror #24 2183 21840x2f 0xfa 0x84 0xf1 21850x2f 0xfa 0x87 0xf6 21860x2f 0xfa 0xa1 0xf3 21870x2c 0xbf 21880x2f 0xfa 0x95 0xf3 21890x2f 0xfa 0xb3 0xf2 2190 2191 2192#------------------------------------------------------------------------------ 2193# SXTH 2194#------------------------------------------------------------------------------ 2195# CHECK: sxth r1, r6 2196# CHECK: sxth.w r3, r8, ror #8 2197# CHECK: sxth.w r9, r3, ror #24 2198# CHECK: itt ne 2199# CHECK: sxthne.w r3, r9 2200# CHECK: sxthne.w r2, r2, ror #16 2201 22020x31 0xb2 22030x0f 0xfa 0x98 0xf3 22040x0f 0xfa 0xb3 0xf9 22050x1c 0xbf 22060x0f 0xfa 0x89 0xf3 22070x0f 0xfa 0xa2 0xf2 2208 2209 2210#------------------------------------------------------------------------------ 2211# SXTB 2212#------------------------------------------------------------------------------ 2213# CHECK: sxtb r5, r6 2214# CHECK: sxtb.w r6, r9, ror #8 2215# CHECK: sxtb.w r8, r3, ror #24 2216# CHECK: ite ge 2217# CHECK: sxtbge r2, r4 2218# CHECK: sxtblt.w r5, r1, ror #16 2219 22200x75 0xb2 22210x4f 0xfa 0x99 0xf6 22220x4f 0xfa 0xb3 0xf8 22230xac 0xbf 22240x62 0xb2 22250x4f 0xfa 0xa1 0xf5 2226 2227 2228#------------------------------------------------------------------------------ 2229# SXTB16 2230#------------------------------------------------------------------------------ 2231# CHECK: sxtb16 r1, r4 2232# CHECK: sxtb16 r6, r7 2233# CHECK: sxtb16 r3, r1, ror #16 2234# CHECK: ite hs 2235# CHECK: sxtb16hs r3, r5, ror #8 2236# CHECK: sxtb16lo r2, r3, ror #24 2237 22380x2f 0xfa 0x84 0xf1 22390x2f 0xfa 0x87 0xf6 22400x2f 0xfa 0xa1 0xf3 22410x2c 0xbf 22420x2f 0xfa 0x95 0xf3 22430x2f 0xfa 0xb3 0xf2 2244 2245 2246#------------------------------------------------------------------------------ 2247# SXTH 2248#------------------------------------------------------------------------------ 2249# CHECK: sxth r1, r6 2250# CHECK: sxth.w r3, r8, ror #8 2251# CHECK: sxth.w r9, r3, ror #24 2252# CHECK: itt ne 2253# CHECK: sxthne.w r3, r9 2254# CHECK: sxthne.w r2, r2, ror #16 2255 22560x31 0xb2 22570x0f 0xfa 0x98 0xf3 22580x0f 0xfa 0xb3 0xf9 22590x1c 0xbf 22600x0f 0xfa 0x89 0xf3 22610x0f 0xfa 0xa2 0xf2 2262 2263 2264#------------------------------------------------------------------------------ 2265# TBB/TBH 2266#------------------------------------------------------------------------------ 2267# CHECK: tbb [r3, r8] 2268# CHECK: tbh [r3, r8, lsl #1] 2269# CHECK: it eq 2270# CHECK: tbbeq [r3, r8] 2271# CHECK: it hs 2272# CHECK: tbhhs [r3, r8, lsl #1] 2273 22740xd3 0xe8 0x08 0xf0 22750xd3 0xe8 0x18 0xf0 22760x08 0xbf 22770xd3 0xe8 0x08 0xf0 22780x28 0xbf 22790xd3 0xe8 0x18 0xf0 2280 2281 2282#------------------------------------------------------------------------------ 2283# TEQ 2284#------------------------------------------------------------------------------ 2285# CHECK: teq.w r5, #61440 2286# CHECK: teq.w r4, r5 2287# CHECK: teq.w r4, r5, lsl #5 2288# CHECK: teq.w r4, r5, lsr #5 2289# CHECK: teq.w r4, r5, lsr #5 2290# CHECK: teq.w r4, r5, asr #5 2291# CHECK: teq.w r4, r5, ror #5 2292 22930x95 0xf4 0x70 0x4f 22940x94 0xea 0x05 0x0f 22950x94 0xea 0x45 0x1f 22960x94 0xea 0x55 0x1f 22970x94 0xea 0x55 0x1f 22980x94 0xea 0x65 0x1f 22990x94 0xea 0x75 0x1f 2300 2301 2302#------------------------------------------------------------------------------ 2303# TST 2304#------------------------------------------------------------------------------ 2305# CHECK: tst.w r5, #61440 2306# CHECK: tst r2, r5 2307# CHECK: tst.w r3, r12, lsl #5 2308# CHECK: tst.w r4, r11, lsr #4 2309# CHECK: tst.w r5, r10, lsr #12 2310# CHECK: tst.w r6, r9, asr #30 2311# CHECK: tst.w r7, r8, ror #2 2312 23130x15 0xf4 0x70 0x4f 23140x2a 0x42 23150x13 0xea 0x4c 0x1f 23160x14 0xea 0x1b 0x1f 23170x15 0xea 0x1a 0x3f 23180x16 0xea 0xa9 0x7f 23190x17 0xea 0xb8 0x0f 2320 2321 2322#------------------------------------------------------------------------------ 2323# UADD16/UADD8 2324#------------------------------------------------------------------------------ 2325# CHECK: uadd16 r1, r2, r3 2326# CHECK: uadd8 r1, r2, r3 2327# CHECK: ite gt 2328# CHECK: uadd16gt r1, r2, r3 2329# CHECK: uadd8le r1, r2, r3 2330 23310x92 0xfa 0x43 0xf1 23320x82 0xfa 0x43 0xf1 23330xcc 0xbf 23340x92 0xfa 0x43 0xf1 23350x82 0xfa 0x43 0xf1 2336 2337 2338#------------------------------------------------------------------------------ 2339# UASX 2340#------------------------------------------------------------------------------ 2341# CHECK: uasx r9, r12, r0 2342# CHECK: it eq 2343# CHECK: uasxeq r9, r12, r0 2344# CHECK: uasx r9, r12, r0 2345# CHECK: it eq 2346# CHECK: uasxeq r9, r12, r0 2347 23480xac 0xfa 0x40 0xf9 23490x08 0xbf 23500xac 0xfa 0x40 0xf9 23510xac 0xfa 0x40 0xf9 23520x08 0xbf 23530xac 0xfa 0x40 0xf9 2354 2355 2356#------------------------------------------------------------------------------ 2357# UBFX 2358#------------------------------------------------------------------------------ 2359# CHECK: ubfx r4, r5, #16, #1 2360# CHECK: it gt 2361# CHECK: ubfxgt r4, r5, #16, #16 2362 23630xc5 0xf3 0x00 0x44 23640xc8 0xbf 23650xc5 0xf3 0x0f 0x44 2366 2367 2368#------------------------------------------------------------------------------ 2369# UHADD16/UHADD8 2370#------------------------------------------------------------------------------ 2371# CHECK: uhadd16 r4, r8, r2 2372# CHECK: uhadd8 r4, r8, r2 2373# CHECK: itt gt 2374# CHECK: uhadd16gt r4, r8, r2 2375# CHECK: uhadd8gt r4, r8, r2 2376 23770x98 0xfa 0x62 0xf4 23780x88 0xfa 0x62 0xf4 23790xc4 0xbf 23800x98 0xfa 0x62 0xf4 23810x88 0xfa 0x62 0xf4 2382 2383 2384#------------------------------------------------------------------------------ 2385# UHASX/UHSAX 2386#------------------------------------------------------------------------------ 2387# CHECK: uhasx r4, r1, r5 2388# CHECK: uhsax r5, r6, r6 2389# CHECK: itt gt 2390# CHECK: uhasxgt r6, r9, r8 2391# CHECK: uhsaxgt r7, r8, r12 2392 23930xa1 0xfa 0x65 0xf4 23940xe6 0xfa 0x66 0xf5 23950xc4 0xbf 23960xa9 0xfa 0x68 0xf6 23970xe8 0xfa 0x6c 0xf7 2398 2399#------------------------------------------------------------------------------ 2400# UHSUB16/UHSUB8 2401#------------------------------------------------------------------------------ 2402# CHECK: uhsub16 r5, r8, r3 2403# CHECK: uhsub8 r1, r7, r6 2404# CHECK: itt lt 2405# CHECK: uhsub16lt r4, r9, r12 2406# CHECK: uhsub8lt r3, r1, r5 2407 24080xd8 0xfa 0x63 0xf5 24090xc7 0xfa 0x66 0xf1 24100xbc 0xbf 24110xd9 0xfa 0x6c 0xf4 24120xc1 0xfa 0x65 0xf3 2413 2414 2415#------------------------------------------------------------------------------ 2416# UMAAL 2417#------------------------------------------------------------------------------ 2418# CHECK: umaal r3, r4, r5, r6 2419# CHECK: it lt 2420# CHECK: umaallt r3, r4, r5, r6 2421 24220xe5 0xfb 0x66 0x34 24230xb8 0xbf 24240xe5 0xfb 0x66 0x34 2425 2426 2427#------------------------------------------------------------------------------ 2428# UMLAL 2429#------------------------------------------------------------------------------ 2430# CHECK: umlal r2, r4, r6, r8 2431# CHECK: it gt 2432# CHECK: umlalgt r6, r1, r2, r6 2433 24340xe6 0xfb 0x08 0x24 24350xc8 0xbf 24360xe2 0xfb 0x06 0x61 2437 2438 2439#------------------------------------------------------------------------------ 2440# UMULL 2441#------------------------------------------------------------------------------ 2442# CHECK: umull r2, r4, r6, r8 2443# CHECK: it gt 2444# CHECK: umullgt r6, r1, r2, r6 2445 24460xa6 0xfb 0x08 0x24 24470xc8 0xbf 24480xa2 0xfb 0x06 0x61 2449 2450 2451#------------------------------------------------------------------------------ 2452# UQADD16/UQADD8 2453#------------------------------------------------------------------------------ 2454# CHECK: uqadd16 r1, r2, r3 2455# CHECK: uqadd8 r3, r4, r8 2456# CHECK: ite gt 2457# CHECK: uqadd16gt r4, r7, r9 2458# CHECK: uqadd8le r8, r1, r2 2459 24600x92 0xfa 0x53 0xf1 24610x84 0xfa 0x58 0xf3 24620xcc 0xbf 24630x97 0xfa 0x59 0xf4 24640x81 0xfa 0x52 0xf8 2465 2466 2467#------------------------------------------------------------------------------ 2468# UQASX/UQSAX 2469#------------------------------------------------------------------------------ 2470# CHECK: uqasx r1, r2, r3 2471# CHECK: uqsax r3, r4, r8 2472# CHECK: ite gt 2473# CHECK: uqasxgt r4, r7, r9 2474# CHECK: uqsaxle r8, r1, r2 2475 24760xa2 0xfa 0x53 0xf1 24770xe4 0xfa 0x58 0xf3 24780xcc 0xbf 24790xa7 0xfa 0x59 0xf4 24800xe1 0xfa 0x52 0xf8 2481 2482 2483#------------------------------------------------------------------------------ 2484# UQSUB16/UQSUB8 2485#------------------------------------------------------------------------------ 2486# CHECK: uqsub8 r8, r2, r9 2487# CHECK: uqsub16 r1, r9, r7 2488# CHECK: ite gt 2489# CHECK: uqsub8gt r3, r1, r6 2490# CHECK: uqsub16le r4, r6, r4 2491 24920xc2 0xfa 0x59 0xf8 24930xd9 0xfa 0x57 0xf1 24940xcc 0xbf 24950xc1 0xfa 0x56 0xf3 24960xd6 0xfa 0x54 0xf4 2497 2498 2499#------------------------------------------------------------------------------ 2500# UQSUB16/UQSUB8 2501#------------------------------------------------------------------------------ 2502# CHECK: usad8 r1, r9, r7 2503# CHECK: usada8 r8, r2, r9, r12 2504# CHECK: ite gt 2505# CHECK: usada8gt r3, r1, r6, r9 2506# CHECK: usad8le r4, r6, r4 2507 25080x79 0xfb 0x07 0xf1 25090x72 0xfb 0x09 0xc8 25100xcc 0xbf 25110x71 0xfb 0x06 0x93 25120x76 0xfb 0x04 0xf4 2513 2514 2515#------------------------------------------------------------------------------ 2516# USAT 2517#------------------------------------------------------------------------------ 2518# CHECK: usat r8, #1, r10 2519# CHECK: usat r8, #4, r10 2520# CHECK: usat r8, #5, r10, lsl #31 2521# CHECK: usat r8, #16, r10, asr #1 2522 25230x8a 0xf3 0x01 0x08 25240x8a 0xf3 0x04 0x08 25250x8a 0xf3 0xc5 0x78 25260xaa 0xf3 0x50 0x08 2527 2528 2529#------------------------------------------------------------------------------ 2530# USAT16 2531#------------------------------------------------------------------------------ 2532# CHECK: usat16 r2, #2, r7 2533# CHECK: usat16 r3, #15, r5 2534 25350xa7 0xf3 0x02 0x02 25360xa5 0xf3 0x0f 0x03 2537 2538 2539#------------------------------------------------------------------------------ 2540# USAX 2541#------------------------------------------------------------------------------ 2542# CHECK: usax r2, r3, r4 2543# CHECK: it ne 2544# CHECK: usaxne r6, r1, r9 2545# CHECK: usax r2, r3, r4 2546# CHECK: it ne 2547# CHECK: usaxne r6, r1, r9 2548 25490xe3 0xfa 0x44 0xf2 25500x18 0xbf 25510xe1 0xfa 0x49 0xf6 25520xe3 0xfa 0x44 0xf2 25530x18 0xbf 25540xe1 0xfa 0x49 0xf6 2555 2556 2557#------------------------------------------------------------------------------ 2558# USUB16/USUB8 2559#------------------------------------------------------------------------------ 2560# CHECK: usub16 r4, r2, r7 2561# CHECK: usub8 r1, r8, r5 2562# CHECK: ite hi 2563# CHECK: usub16hi r1, r1, r3 2564# CHECK: usub8ls r9, r2, r3 2565 25660xd2 0xfa 0x47 0xf4 25670xc8 0xfa 0x45 0xf1 25680x8c 0xbf 25690xd1 0xfa 0x43 0xf1 25700xc2 0xfa 0x43 0xf9 2571 2572 2573#------------------------------------------------------------------------------ 2574# UXTAB 2575#------------------------------------------------------------------------------ 2576# CHECK: uxtab r2, r3, r4 2577# CHECK: uxtab r4, r5, r6 2578# CHECK: it lt 2579# CHECK: uxtablt r6, r2, r9, ror #8 2580# CHECK: uxtab r5, r1, r4, ror #16 2581# CHECK: uxtab r7, r8, r3, ror #24 2582 25830x53 0xfa 0x84 0xf2 25840x55 0xfa 0x86 0xf4 25850xb8 0xbf 25860x52 0xfa 0x99 0xf6 25870x51 0xfa 0xa4 0xf5 25880x58 0xfa 0xb3 0xf7 2589 2590 2591#------------------------------------------------------------------------------ 2592# UXTAB16 2593#------------------------------------------------------------------------------ 2594# CHECK: it ge 2595# CHECK: uxtab16ge r0, r1, r4 2596# CHECK: uxtab16 r6, r2, r7 2597# CHECK: uxtab16 r3, r5, r8, ror #8 2598# CHECK: uxtab16 r3, r2, r1, ror #16 2599# CHECK: it eq 2600# CHECK: uxtab16eq r1, r2, r3, ror #24 2601 26020xa8 0xbf 26030x31 0xfa 0x84 0xf0 26040x32 0xfa 0x87 0xf6 26050x35 0xfa 0x98 0xf3 26060x32 0xfa 0xa1 0xf3 26070x08 0xbf 26080x32 0xfa 0xb3 0xf1 2609 2610 2611#------------------------------------------------------------------------------ 2612# UXTAH 2613#------------------------------------------------------------------------------ 2614# CHECK: uxtah r1, r3, r9 2615# CHECK: it hi 2616# CHECK: uxtahhi r6, r1, r6 2617# CHECK: uxtah r3, r8, r3, ror #8 2618# CHECK: it lo 2619# CHECK: uxtahlo r2, r2, r4, ror #16 2620# CHECK: uxtah r9, r3, r3, ror #24 2621 26220x13 0xfa 0x89 0xf1 26230x88 0xbf 26240x11 0xfa 0x86 0xf6 26250x18 0xfa 0x93 0xf3 26260x38 0xbf 26270x12 0xfa 0xa4 0xf2 26280x13 0xfa 0xb3 0xf9 2629 2630 2631#------------------------------------------------------------------------------ 2632# UXTB 2633#------------------------------------------------------------------------------ 2634# CHECK: it ge 2635# CHECK: uxtbge r2, r4 2636# CHECK: uxtb r5, r6 2637# CHECK: uxtb.w r6, r9, ror #8 2638# CHECK: it lo 2639# CHECK: uxtblo.w r5, r1, ror #16 2640# CHECK: uxtb.w r8, r3, ror #24 2641 26420xa8 0xbf 26430xe2 0xb2 26440xf5 0xb2 26450x5f 0xfa 0x99 0xf6 26460x38 0xbf 26470x5f 0xfa 0xa1 0xf5 26480x5f 0xfa 0xb3 0xf8 2649 2650 2651#------------------------------------------------------------------------------ 2652# UXTB16 2653#------------------------------------------------------------------------------ 2654# CHECK: uxtb16 r1, r4 2655# CHECK: uxtb16 r6, r7 2656# CHECK: it hs 2657# CHECK: uxtb16hs r3, r5, ror #8 2658# CHECK: uxtb16 r3, r1, ror #16 2659# CHECK: it ge 2660# CHECK: uxtb16ge r2, r3, ror #24 2661 26620x3f 0xfa 0x84 0xf1 26630x3f 0xfa 0x87 0xf6 26640x28 0xbf 26650x3f 0xfa 0x95 0xf3 26660x3f 0xfa 0xa1 0xf3 26670xa8 0xbf 26680x3f 0xfa 0xb3 0xf2 2669 2670 2671#------------------------------------------------------------------------------ 2672# UXTH 2673#------------------------------------------------------------------------------ 2674# CHECK: it ne 2675# CHECK: uxthne.w r3, r9 2676# CHECK: uxth r1, r6 2677# CHECK: uxth.w r3, r8, ror #8 2678# CHECK: it le 2679# CHECK: uxthle.w r2, r2, ror #16 2680# CHECK: uxth.w r9, r3, ror #24 2681 26820x18 0xbf 26830x1f 0xfa 0x89 0xf3 26840xb1 0xb2 26850x1f 0xfa 0x98 0xf3 26860xd8 0xbf 26870x1f 0xfa 0xa2 0xf2 26880x1f 0xfa 0xb3 0xf9 2689 2690 2691#------------------------------------------------------------------------------ 2692# WFE/WFI/YIELD 2693#------------------------------------------------------------------------------ 2694# CHECK: wfe 2695# CHECK: wfi 2696# CHECK: yield 2697# CHECK: itet lt 2698# CHECK: wfelt 2699# CHECK: wfige 2700# CHECK: yieldlt 2701 27020x20 0xbf 27030x30 0xbf 27040x10 0xbf 27050xb6 0xbf 27060x20 0xbf 27070x30 0xbf 27080x10 0xbf 2709 2710#------------------------------------------------------------------------------ 2711# Unallocated hints (They execute as NOPs, but software must not use them.) 2712#------------------------------------------------------------------------------ 2713# CHECK: hint #6 2714# CHECK: hint.w #6 2715# CHECK: hint.w #102 2716 27170x60 0xbf 27180xaf 0xf3 0x06 0x80 27190xaf 0xf3 0x66 0x80 2720 2721