1# RUN: llvm-mc -triple=thumbv7-apple-darwin -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 960xaf 0xf6 0xc6 0x4b 970xaf 0xf2 0x3a 0x3b 98 99#------------------------------------------------------------------------------ 100# AND (immediate) 101#------------------------------------------------------------------------------ 102# CHECK: and r2, r5, #1044480 103# CHECK: ands r3, r12, #15 104# CHECK: and r1, r1, #255 105 1060x05 0xf4 0x7f 0x22 1070x1c 0xf0 0x0f 0x03 1080x01 0xf0 0xff 0x01 109 110 111#------------------------------------------------------------------------------ 112# AND (register) 113#------------------------------------------------------------------------------ 114# CHECK: and.w r4, r9, r8 115# CHECK: and.w r1, r4, r8, asr #3 116# CHECK: ands.w r2, r1, r7, lsl #1 117# CHECK: ands.w r4, r5, r2, lsr #20 118# CHECK: and.w r9, r12, r1, ror #17 119 1200x09 0xea 0x08 0x04 1210x04 0xea 0xe8 0x01 1220x11 0xea 0x47 0x02 1230x15 0xea 0x12 0x54 1240x0c 0xea 0x71 0x49 125 126#------------------------------------------------------------------------------ 127# ASR (immediate) 128#------------------------------------------------------------------------------ 129# CHECK: asr.w r2, r3, #12 130# CHECK: asrs.w r8, r3, #32 131# CHECK: asrs.w r2, r3, #1 132# CHECK: asr.w r2, r3, #4 133# CHECK: asrs.w r2, r12, #15 134 135# CHECK: asr.w r3, r3, #19 136# CHECK: asrs.w r8, r8, #2 137# CHECK: asrs.w r7, r7, #5 138# CHECK: asr.w r12, r12, #21 139 1400x4f 0xea 0x23 0x32 1410x5f 0xea 0x23 0x08 1420x5f 0xea 0x63 0x02 1430x4f 0xea 0x23 0x12 1440x5f 0xea 0xec 0x32 145 1460x4f 0xea 0xe3 0x43 1470x5f 0xea 0xa8 0x08 1480x5f 0xea 0x67 0x17 1490x4f 0xea 0x6c 0x5c 150 151 152#------------------------------------------------------------------------------ 153# ASR (register) 154#------------------------------------------------------------------------------ 155# CHECK: asr.w r3, r4, r2 156# CHECK: asr.w r1, r1, r2 157# CHECK: asrs.w r3, r4, r8 158 1590x44 0xfa 0x02 0xf3 1600x41 0xfa 0x02 0xf1 1610x54 0xfa 0x08 0xf3 162 163#------------------------------------------------------------------------------ 164# B 165#------------------------------------------------------------------------------ 166# CHECK: bmi.w #-183396 167 1680x13 0xf5 0xce 0xa9 169 170 171#------------------------------------------------------------------------------ 172# BFC 173#------------------------------------------------------------------------------ 174# CHECK: bfc r5, #3, #17 175# CHECK: it lo 176# CHECK: bfclo r5, #3, #17 177 1780x6f 0xf3 0xd3 0x05 1790x38 0xbf 1800x6f 0xf3 0xd3 0x05 181 182 183#------------------------------------------------------------------------------ 184# BFI 185#------------------------------------------------------------------------------ 186# CHECK: bfi r5, r2, #3, #17 187# CHECK: it ne 188# CHECK: bfine r5, r2, #3, #17 189# CHECK: bfi r6, r0, #0, #32 190# CHECK: bfi r6, r0, #31, #1 191 1920x62 0xf3 0xd3 0x05 1930x18 0xbf 1940x62 0xf3 0xd3 0x05 1950x60 0xf3 0x1f 0x06 1960x60 0xf3 0xdf 0x76 197 198 199#------------------------------------------------------------------------------ 200# BIC 201#------------------------------------------------------------------------------ 202# CHECK: bic r10, r1, #15 203# CHECK: bic.w r12, r3, r6 204# CHECK: bic.w r11, r2, r6, lsl #12 205# CHECK: bic.w r8, r4, r1, lsr #11 206# CHECK: bic.w r7, r5, r7, lsr #15 207# CHECK: bic.w r6, r7, r9, asr #32 208# CHECK: bic.w r5, r6, r8, ror #1 209 210# CHECK: bic r1, r1, #15 211# CHECK: bic.w r1, r1, r1 212# CHECK: bic.w r4, r4, r2, lsl #31 213# CHECK: bic.w r6, r6, r3, lsr #12 214# CHECK: bic.w r7, r7, r4, lsr #7 215# CHECK: bic.w r8, r8, r5, asr #15 216# CHECK: bic.w r12, r12, r6, ror #29 217 2180x21 0xf0 0x0f 0x0a 2190x23 0xea 0x06 0x0c 2200x22 0xea 0x06 0x3b 2210x24 0xea 0xd1 0x28 2220x25 0xea 0xd7 0x37 2230x27 0xea 0x29 0x06 2240x26 0xea 0x78 0x05 225 2260x21 0xf0 0x0f 0x01 2270x21 0xea 0x01 0x01 2280x24 0xea 0xc2 0x74 2290x26 0xea 0x13 0x36 2300x27 0xea 0xd4 0x17 2310x28 0xea 0xe5 0x38 2320x2c 0xea 0x76 0x7c 233 234 235#------------------------------------------------------------------------------ 236# BXJ 237#------------------------------------------------------------------------------ 238# CHECK: bxj r5 239# CHECK: it ne 240# CHECK: bxjne r7 241 2420xc5 0xf3 0x00 0x8f 2430x18 0xbf 2440xc7 0xf3 0x00 0x8f 245 246 247#------------------------------------------------------------------------------ 248# CBZ/CBNZ 249#------------------------------------------------------------------------------ 250# CHECK: cbnz r7, #6 251# CHECK: cbnz r7, #12 252 2530x1f 0xb9 2540x37 0xb9 255 256#------------------------------------------------------------------------------ 257# CDP/CDP2 258#------------------------------------------------------------------------------ 259# CHECK: cdp p7, #1, c1, c1, c1, #4 260# CHECK: cdp2 p7, #1, c1, c1, c1, #4 261 2620x11 0xee 0x81 0x17 2630x11 0xfe 0x81 0x17 264 265 266#------------------------------------------------------------------------------ 267# CLREX 268#------------------------------------------------------------------------------ 269#CHECK: clrex 270#CHECK: it ne 271#CHECK: clrexne 272 2730xbf 0xf3 0x2f 0x8f 2740x18 0xbf 2750xbf 0xf3 0x2f 0x8f 276 277 278#------------------------------------------------------------------------------ 279# CLZ 280#------------------------------------------------------------------------------ 281#CHECK: clz r1, r2 282#CHECK: it eq 283#CHECK: clzeq r1, r2 284 2850xb2 0xfa 0x82 0xf1 2860x08 0xbf 2870xb2 0xfa 0x82 0xf1 288 289 290#------------------------------------------------------------------------------ 291# CMN 292#------------------------------------------------------------------------------ 293#CHECK: cmn.w r1, #15 294#CHECK: cmn.w r8, r6 295#CHECK: cmn.w r1, r6, lsl #10 296#CHECK: cmn.w r1, r6, lsr #10 297#CHECK: cmn.w sp, r6, lsr #10 298#CHECK: cmn.w r1, r6, asr #10 299#CHECK: cmn.w r1, r6, ror #10 300 3010x11 0xf1 0x0f 0x0f 3020x18 0xeb 0x06 0x0f 3030x11 0xeb 0x86 0x2f 3040x11 0xeb 0x96 0x2f 3050x1d 0xeb 0x96 0x2f 3060x11 0xeb 0xa6 0x2f 3070x11 0xeb 0xb6 0x2f 308 309 310#------------------------------------------------------------------------------ 311# CMP 312#------------------------------------------------------------------------------ 313#CHECK: cmp.w r5, #65280 314#CHECK: cmp.w r4, r12 315#CHECK: cmp.w r9, r6, lsl #12 316#CHECK: cmp.w r3, r7, lsr #31 317#CHECK: cmp.w sp, r6, lsr #1 318#CHECK: cmp.w r2, r5, asr #24 319#CHECK: cmp.w r1, r4, ror #15 320 3210xb5 0xf5 0x7f 0x4f 3220xb4 0xeb 0x0c 0x0f 3230xb9 0xeb 0x06 0x3f 3240xb3 0xeb 0xd7 0x7f 3250xbd 0xeb 0x56 0x0f 3260xb2 0xeb 0x25 0x6f 3270xb1 0xeb 0xf4 0x3f 328 329 330#------------------------------------------------------------------------------ 331# DBG 332#------------------------------------------------------------------------------ 333#CHECK: dbg #5 334#CHECK: dbg #0 335#CHECK: dbg #15 336 3370xaf 0xf3 0xf5 0x80 3380xaf 0xf3 0xf0 0x80 3390xaf 0xf3 0xff 0x80 340 341 342#------------------------------------------------------------------------------ 343# DMB 344#------------------------------------------------------------------------------ 345#CHECK: dmb sy 346#CHECK: dmb st 347#CHECK: dmb ish 348#CHECK: dmb ishst 349#CHECK: dmb nsh 350#CHECK: dmb nshst 351#CHECK: dmb osh 352#CHECK: dmb oshst 353#CHECK: dmb 354 3550xbf 0xf3 0x5f 0x8f 3560xbf 0xf3 0x5e 0x8f 3570xbf 0xf3 0x5b 0x8f 3580xbf 0xf3 0x5a 0x8f 3590xbf 0xf3 0x57 0x8f 3600xbf 0xf3 0x56 0x8f 3610xbf 0xf3 0x53 0x8f 3620xbf 0xf3 0x52 0x8f 3630xbf 0xf3 0x5f 0x8f 364 365 366#------------------------------------------------------------------------------ 367# DSB 368#------------------------------------------------------------------------------ 369#CHECK: dsb sy 370#CHECK: dsb st 371#CHECK: dsb ish 372#CHECK: dsb ishst 373#CHECK: dsb nsh 374#CHECK: dsb nshst 375#CHECK: dsb osh 376#CHECK: dsb oshst 377 3780xbf 0xf3 0x4f 0x8f 3790xbf 0xf3 0x4e 0x8f 3800xbf 0xf3 0x4b 0x8f 3810xbf 0xf3 0x4a 0x8f 3820xbf 0xf3 0x47 0x8f 3830xbf 0xf3 0x46 0x8f 3840xbf 0xf3 0x43 0x8f 3850xbf 0xf3 0x42 0x8f 386 387 388#------------------------------------------------------------------------------ 389# EOR 390#------------------------------------------------------------------------------ 391#CHECK: eor r4, r5, #61440 392#CHECK: eor.w r4, r5, r6 393#CHECK: eor.w r4, r5, r6, lsl #5 394#CHECK: eor.w r4, r5, r6, lsr #5 395#CHECK: eor.w r4, r5, r6, lsr #5 396#CHECK: eor.w r4, r5, r6, asr #5 397#CHECK: eor.w r4, r5, r6, ror #5 398 3990x85 0xf4 0x70 0x44 4000x85 0xea 0x06 0x04 4010x85 0xea 0x46 0x14 4020x85 0xea 0x56 0x14 4030x85 0xea 0x56 0x14 4040x85 0xea 0x66 0x14 4050x85 0xea 0x76 0x14 406 407 408#------------------------------------------------------------------------------ 409# ISB 410#------------------------------------------------------------------------------ 411#CHECK: isb sy 412 4130xbf 0xf3 0x6f 0x8f 414 415#------------------------------------------------------------------------------ 416# IT 417#------------------------------------------------------------------------------ 418# Test encodings of a few full IT blocks, not just the IT instruction 419 420# CHECK: iteet eq 421# CHECK: addeq r0, r1, r2 422# CHECK: nopne 423# CHECK: subne r5, r6, r7 424# CHECK: addeq r1, r2, #4 425 4260x0d 0xbf 4270x88 0x18 4280x00 0xbf 4290xf5 0x1b 4300x11 0x1d 431 432# CHECK: ittee ls 433# CHECK: addls r0, r1, r2 434# CHECK: nopls 435# CHECK: subhi r5, r6, r7 436# CHECK: addhi r1, r2, #4 437 4380x99 0xbf 4390x88 0x18 4400x00 0xbf 4410xf5 0x1b 4420x11 0x1d 443 444 445#------------------------------------------------------------------------------ 446# LDMIA 447#------------------------------------------------------------------------------ 448# CHECK: ldm.w r4, {r4, r5, r8, r9} 449# CHECK: ldm.w r4, {r5, r6} 450# CHECK: ldm.w r5!, {r3, r8} 451# CHECK: ldm.w r4, {r4, r5, r8, r9} 452# CHECK: ldm.w r4, {r5, r6} 453# CHECK: ldm.w r5!, {r3, r8} 454# CHECK: ldm.w r5!, {r1, r2} 455# CHECK: ldm.w r2, {r1, r2} 456 457# CHECK: ldm.w r4, {r4, r5, r8, r9} 458# CHECK: ldm.w r4, {r5, r6} 459# CHECK: ldm.w r5!, {r3, r8} 460# CHECK: ldm.w r4, {r4, r5, r8, r9} 461# CHECK: ldm.w r4, {r5, r6} 462# CHECK: ldm.w r5!, {r3, r8} 463# CHECK: ldm.w r5!, {r3, r8} 464 4650x94 0xe8 0x30 0x03 4660x94 0xe8 0x60 0x00 4670xb5 0xe8 0x08 0x01 4680x94 0xe8 0x30 0x03 4690x94 0xe8 0x60 0x00 4700xb5 0xe8 0x08 0x01 4710xb5 0xe8 0x06 0x00 4720x92 0xe8 0x06 0x00 473 4740x94 0xe8 0x30 0x03 4750x94 0xe8 0x60 0x00 4760xb5 0xe8 0x08 0x01 4770x94 0xe8 0x30 0x03 4780x94 0xe8 0x60 0x00 4790xb5 0xe8 0x08 0x01 4800xb5 0xe8 0x08 0x01 481 482 483#------------------------------------------------------------------------------ 484# LDMDB 485#------------------------------------------------------------------------------ 486# CHECK: ldmdb r4, {r4, r5, r8, r9} 487# CHECK: ldmdb r4, {r5, r6} 488# CHECK: ldmdb r5!, {r3, r8} 489# CHECK: ldmdb r5!, {r3, r8} 490 4910x14 0xe9 0x30 0x03 4920x14 0xe9 0x60 0x00 4930x35 0xe9 0x08 0x01 4940x35 0xe9 0x08 0x01 495 496 497#------------------------------------------------------------------------------ 498# LDR(immediate) 499#------------------------------------------------------------------------------ 500# CHECK: ldr r5, [r5, #-4] 501# CHECK: ldr r5, [r6, #32] 502# CHECK: ldr.w r5, [r6, #33] 503# CHECK: ldr.w r5, [r6, #257] 504# CHECK: ldr.w pc, [r7, #257] 505 5060x55 0xf8 0x04 0x5c 5070x35 0x6a 5080xd6 0xf8 0x21 0x50 5090xd6 0xf8 0x01 0x51 5100xd7 0xf8 0x01 0xf1 511 512 513#------------------------------------------------------------------------------ 514# LDR(register) 515#------------------------------------------------------------------------------ 516# CHECK: ldr.w r1, [r8, r1] 517# CHECK: ldr.w r4, [r5, r2] 518# CHECK: ldr.w r6, [r0, r2, lsl #3] 519# CHECK: ldr.w r8, [r8, r2, lsl #2] 520# CHECK: ldr.w r7, [sp, r2, lsl #1] 521# CHECK: ldr.w r7, [sp, r2] 522# CHECK: ldr r2, [r4, #255]! 523# CHECK: ldr r8, [sp, #4]! 524# CHECK: ldr lr, [sp, #-4]! 525# CHECK: ldr r2, [r4], #255 526# CHECK: ldr r8, [sp], #4 527# CHECK: ldr lr, [sp], #-4 528 5290x58 0xf8 0x01 0x10 5300x55 0xf8 0x02 0x40 5310x50 0xf8 0x32 0x60 5320x58 0xf8 0x22 0x80 5330x5d 0xf8 0x12 0x70 5340x5d 0xf8 0x02 0x70 5350x54 0xf8 0xff 0x2f 5360x5d 0xf8 0x04 0x8f 5370x5d 0xf8 0x04 0xed 5380x54 0xf8 0xff 0x2b 5390x5d 0xf8 0x04 0x8b 5400x5d 0xf8 0x04 0xe9 541 542 543#------------------------------------------------------------------------------ 544# LDRB(immediate) 545#------------------------------------------------------------------------------ 546# CHECK: ldrb r5, [r5, #-4] 547# CHECK: ldrb.w r5, [r6, #32] 548# CHECK: ldrb.w r5, [r6, #33] 549# CHECK: ldrb.w r5, [r6, #257] 550# CHECK: ldrb.w lr, [r7, #257] 551 5520x15 0xf8 0x04 0x5c 5530x96 0xf8 0x20 0x50 5540x96 0xf8 0x21 0x50 5550x96 0xf8 0x01 0x51 5560x97 0xf8 0x01 0xe1 557 558 559#------------------------------------------------------------------------------ 560# LDRB(register) 561#------------------------------------------------------------------------------ 562# CHECK: ldrb.w r1, [r8, r1] 563# CHECK: ldrb.w r4, [r5, r2] 564# CHECK: ldrb.w r6, [r0, r2, lsl #3] 565# CHECK: ldrb.w r8, [r8, r2, lsl #2] 566# CHECK: ldrb.w r7, [sp, r2, lsl #1] 567# CHECK: ldrb.w r7, [sp, r2] 568# CHECK: ldrb r5, [r8, #255]! 569# CHECK: ldrb r2, [r5, #4]! 570# CHECK: ldrb r1, [r4, #-4]! 571# CHECK: ldrb lr, [r3], #255 572# CHECK: ldrb r9, [r2], #4 573# CHECK: ldrb r3, [sp], #-4 574 5750x18 0xf8 0x01 0x10 5760x15 0xf8 0x02 0x40 5770x10 0xf8 0x32 0x60 5780x18 0xf8 0x22 0x80 5790x1d 0xf8 0x12 0x70 5800x1d 0xf8 0x02 0x70 5810x18 0xf8 0xff 0x5f 5820x15 0xf8 0x04 0x2f 5830x14 0xf8 0x04 0x1d 5840x13 0xf8 0xff 0xeb 5850x12 0xf8 0x04 0x9b 5860x1d 0xf8 0x04 0x39 587 588 589#------------------------------------------------------------------------------ 590# LDRBT 591#------------------------------------------------------------------------------ 592# CHECK: ldrbt r1, [r2] 593# CHECK: ldrbt r1, [r8] 594# CHECK: ldrbt r1, [r8, #3] 595# CHECK: ldrbt r1, [r8, #255] 596 5970x12 0xf8 0x00 0x1e 5980x18 0xf8 0x00 0x1e 5990x18 0xf8 0x03 0x1e 6000x18 0xf8 0xff 0x1e 601 602 603#------------------------------------------------------------------------------ 604# LDRD(immediate) 605#------------------------------------------------------------------------------ 606# CHECK: ldrd r3, r5, [r6, #24] 607# CHECK: ldrd r3, r5, [r6, #24]! 608# CHECK: ldrd r3, r5, [r6], #4 609# CHECK: ldrd r3, r5, [r6], #-8 610# CHECK: ldrd r3, r5, [r6] 611# CHECK: ldrd r8, r1, [r3] 612 6130xd6 0xe9 0x06 0x35 6140xf6 0xe9 0x06 0x35 6150xf6 0xe8 0x01 0x35 6160x76 0xe8 0x02 0x35 6170xd6 0xe9 0x00 0x35 6180xd3 0xe9 0x00 0x81 619 620 621#------------------------------------------------------------------------------ 622# FIXME: LDRD(literal) 623#------------------------------------------------------------------------------ 624 625 626#------------------------------------------------------------------------------ 627# LDREX/LDREXB/LDREXH/LDREXD 628#------------------------------------------------------------------------------ 629# CHECK: ldrex r1, [r4] 630# CHECK: ldrex r8, [r4] 631# CHECK: ldrex r2, [sp, #128] 632# CHECK: ldrexb r5, [r7] 633# CHECK: ldrexh r9, [r12] 634# CHECK: ldrexd r9, r3, [r4] 635 6360x54 0xe8 0x00 0x1f 6370x54 0xe8 0x00 0x8f 6380x5d 0xe8 0x20 0x2f 6390xd7 0xe8 0x4f 0x5f 6400xdc 0xe8 0x5f 0x9f 6410xd4 0xe8 0x7f 0x93 642 643 644#------------------------------------------------------------------------------ 645# LDRH(immediate) 646#------------------------------------------------------------------------------ 647# CHECK: ldrh r5, [r5, #-4] 648# CHECK: ldrh r5, [r6, #32] 649# CHECK: ldrh.w r5, [r6, #33] 650# CHECK: ldrh.w r5, [r6, #257] 651# CHECK: ldrh.w lr, [r7, #257] 652# CHECK: ldrh.w r0, [pc, #-21] 653 6540x35 0xf8 0x04 0x5c 6550x35 0x8c 6560xb6 0xf8 0x21 0x50 6570xb6 0xf8 0x01 0x51 6580xb7 0xf8 0x01 0xe1 6590x3f 0xf8 0x15 0x00 660 661 662#------------------------------------------------------------------------------ 663# LDRH(register) 664#------------------------------------------------------------------------------ 665# CHECK: ldrh.w r1, [r8, r1] 666# CHECK: ldrh.w r4, [r5, r2] 667# CHECK: ldrh.w r6, [r0, r2, lsl #3] 668# CHECK: ldrh.w r8, [r8, r2, lsl #2] 669# CHECK: ldrh.w r7, [sp, r2, lsl #1] 670# CHECK: ldrh.w r7, [sp, r2] 671# CHECK: ldrh r5, [r8, #255]! 672# CHECK: ldrh r2, [r5, #4]! 673# CHECK: ldrh r1, [r4, #-4]! 674# CHECK: ldrh lr, [r3], #255 675# CHECK: ldrh r9, [r2], #4 676# CHECK: ldrh r3, [sp], #-4 677 6780x38 0xf8 0x01 0x10 6790x35 0xf8 0x02 0x40 6800x30 0xf8 0x32 0x60 6810x38 0xf8 0x22 0x80 6820x3d 0xf8 0x12 0x70 6830x3d 0xf8 0x02 0x70 6840x38 0xf8 0xff 0x5f 6850x35 0xf8 0x04 0x2f 6860x34 0xf8 0x04 0x1d 6870x33 0xf8 0xff 0xeb 6880x32 0xf8 0x04 0x9b 6890x3d 0xf8 0x04 0x39 690 691 692#------------------------------------------------------------------------------ 693# LDRSB(immediate) 694#------------------------------------------------------------------------------ 695# CHECK: ldrsb r5, [r5, #-4] 696# CHECK: ldrsb.w r5, [r6, #32] 697# CHECK: ldrsb.w r5, [r6, #33] 698# CHECK: ldrsb.w r5, [r6, #257] 699# CHECK: ldrsb.w lr, [r7, #257] 700 7010x15 0xf9 0x04 0x5c 7020x96 0xf9 0x20 0x50 7030x96 0xf9 0x21 0x50 7040x96 0xf9 0x01 0x51 7050x97 0xf9 0x01 0xe1 706 707 708#------------------------------------------------------------------------------ 709# LDRSB(register) 710#------------------------------------------------------------------------------ 711# CHECK: ldrsb.w r1, [r8, r1] 712# CHECK: ldrsb.w r4, [r5, r2] 713# CHECK: ldrsb.w r6, [r0, r2, lsl #3] 714# CHECK: ldrsb.w r8, [r8, r2, lsl #2] 715# CHECK: ldrsb.w r7, [sp, r2, lsl #1] 716# CHECK: ldrsb.w r7, [sp, r2] 717# CHECK: ldrsb r5, [r8, #255]! 718# CHECK: ldrsb r2, [r5, #4]! 719# CHECK: ldrsb r1, [r4, #-4]! 720# CHECK: ldrsb lr, [r3], #255 721# CHECK: ldrsb r9, [r2], #4 722# CHECK: ldrsb r3, [sp], #-4 723 7240x18 0xf9 0x01 0x10 7250x15 0xf9 0x02 0x40 7260x10 0xf9 0x32 0x60 7270x18 0xf9 0x22 0x80 7280x1d 0xf9 0x12 0x70 7290x1d 0xf9 0x02 0x70 7300x18 0xf9 0xff 0x5f 7310x15 0xf9 0x04 0x2f 7320x14 0xf9 0x04 0x1d 7330x13 0xf9 0xff 0xeb 7340x12 0xf9 0x04 0x9b 7350x1d 0xf9 0x04 0x39 736 737 738#------------------------------------------------------------------------------ 739# LDRSBT 740#------------------------------------------------------------------------------ 741# CHECK: ldrsbt r1, [r2] 742# CHECK: ldrsbt r1, [r8] 743# CHECK: ldrsbt r1, [r8, #3] 744# CHECK: ldrsbt r1, [r8, #255] 745 7460x12 0xf9 0x00 0x1e 7470x18 0xf9 0x00 0x1e 7480x18 0xf9 0x03 0x1e 7490x18 0xf9 0xff 0x1e 750 751 752#------------------------------------------------------------------------------ 753# LDRSH(immediate) 754#------------------------------------------------------------------------------ 755# CHECK: ldrsh r5, [r5, #-4] 756# CHECK: ldrsh.w r5, [r6, #32] 757# CHECK: ldrsh.w r5, [r6, #33] 758# CHECK: ldrsh.w r5, [r6, #257] 759# CHECK: ldrsh.w lr, [r7, #257] 760# CHECK: ldrsh r10, [r5, #-0] 761 7620x35 0xf9 0x04 0x5c 7630xb6 0xf9 0x20 0x50 7640xb6 0xf9 0x21 0x50 7650xb6 0xf9 0x01 0x51 7660xb7 0xf9 0x01 0xe1 7670x35 0xf9 0x00 0xac 768 769#------------------------------------------------------------------------------ 770# LDRSH(register) 771#------------------------------------------------------------------------------ 772# CHECK: ldrsh.w r1, [r8, r1] 773# CHECK: ldrsh.w r4, [r5, r2] 774# CHECK: ldrsh.w r6, [r0, r2, lsl #3] 775# CHECK: ldrsh.w r8, [r8, r2, lsl #2] 776# CHECK: ldrsh.w r7, [sp, r2, lsl #1] 777# CHECK: ldrsh.w r7, [sp, r2] 778# CHECK: ldrsh r5, [r8, #255]! 779# CHECK: ldrsh r2, [r5, #4]! 780# CHECK: ldrsh r1, [r4, #-4]! 781# CHECK: ldrsh lr, [r3], #255 782# CHECK: ldrsh r9, [r2], #4 783# CHECK: ldrsh r3, [sp], #-4 784 7850x38 0xf9 0x01 0x10 7860x35 0xf9 0x02 0x40 7870x30 0xf9 0x32 0x60 7880x38 0xf9 0x22 0x80 7890x3d 0xf9 0x12 0x70 7900x3d 0xf9 0x02 0x70 7910x38 0xf9 0xff 0x5f 7920x35 0xf9 0x04 0x2f 7930x34 0xf9 0x04 0x1d 7940x33 0xf9 0xff 0xeb 7950x32 0xf9 0x04 0x9b 7960x3d 0xf9 0x04 0x39 797 798 799#------------------------------------------------------------------------------ 800# LDRSHT 801#------------------------------------------------------------------------------ 802# CHECK: ldrsht r1, [r2] 803# CHECK: ldrsht r1, [r8] 804# CHECK: ldrsht r1, [r8, #3] 805# CHECK: ldrsht r1, [r8, #255] 806 8070x32 0xf9 0x00 0x1e 8080x38 0xf9 0x00 0x1e 8090x38 0xf9 0x03 0x1e 8100x38 0xf9 0xff 0x1e 811 812 813#------------------------------------------------------------------------------ 814# LDRT 815#------------------------------------------------------------------------------ 816# CHECK: ldrt r1, [r2] 817# CHECK: ldrt r2, [r6] 818# CHECK: ldrt r3, [r7, #3] 819# CHECK: ldrt r4, [r9, #255] 820 8210x52 0xf8 0x00 0x1e 8220x56 0xf8 0x00 0x2e 8230x57 0xf8 0x03 0x3e 8240x59 0xf8 0xff 0x4e 825 826 827#------------------------------------------------------------------------------ 828# LSL (immediate) 829#------------------------------------------------------------------------------ 830# CHECK: lsl.w r2, r3, #12 831# CHECK: lsls.w r8, r3, #31 832# CHECK: lsls.w r2, r3, #1 833# CHECK: lsl.w r2, r3, #4 834# CHECK: lsls.w r2, r12, #15 835 836# CHECK: lsl.w r3, r3, #19 837# CHECK: lsls.w r8, r8, #2 838# CHECK: lsls.w r7, r7, #5 839# CHECK: lsl.w r12, r12, #21 840 8410x4f 0xea 0x03 0x32 8420x5f 0xea 0xc3 0x78 8430x5f 0xea 0x43 0x02 8440x4f 0xea 0x03 0x12 8450x5f 0xea 0xcc 0x32 846 8470x4f 0xea 0xc3 0x43 8480x5f 0xea 0x88 0x08 8490x5f 0xea 0x47 0x17 8500x4f 0xea 0x4c 0x5c 851 852 853#------------------------------------------------------------------------------ 854# LSL (register) 855#------------------------------------------------------------------------------ 856# CHECK: lsl.w r3, r4, r2 857# CHECK: lsl.w r1, r1, r2 858# CHECK: lsls.w r3, r4, r8 859 8600x04 0xfa 0x02 0xf3 8610x01 0xfa 0x02 0xf1 8620x14 0xfa 0x08 0xf3 863 864 865#------------------------------------------------------------------------------ 866# LSR (immediate) 867#------------------------------------------------------------------------------ 868# CHECK: lsr.w r2, r3, #12 869# CHECK: lsrs.w r8, r3, #32 870# CHECK: lsrs.w r2, r3, #1 871# CHECK: lsr.w r2, r3, #4 872# CHECK: lsrs.w r2, r12, #15 873 874# CHECK: lsr.w r3, r3, #19 875# CHECK: lsrs.w r8, r8, #2 876# CHECK: lsrs.w r7, r7, #5 877# CHECK: lsr.w r12, r12, #21 878 8790x4f 0xea 0x13 0x32 8800x5f 0xea 0x13 0x08 8810x5f 0xea 0x53 0x02 8820x4f 0xea 0x13 0x12 8830x5f 0xea 0xdc 0x32 884 8850x4f 0xea 0xd3 0x43 8860x5f 0xea 0x98 0x08 8870x5f 0xea 0x57 0x17 8880x4f 0xea 0x5c 0x5c 889 890 891#------------------------------------------------------------------------------ 892# LSR (register) 893#------------------------------------------------------------------------------ 894# CHECK: lsr.w r3, r4, r2 895# CHECK: lsr.w r1, r1, r2 896# CHECK: lsrs.w r3, r4, r8 897 8980x24 0xfa 0x02 0xf3 8990x21 0xfa 0x02 0xf1 9000x34 0xfa 0x08 0xf3 901 902#------------------------------------------------------------------------------ 903# MCR/MCR2 904#------------------------------------------------------------------------------ 905# CHECK: mcr p7, #1, r5, c1, c1, #4 906# CHECK: mcr2 p7, #1, r5, c1, c1, #4 907 9080x21 0xee 0x91 0x57 9090x21 0xfe 0x91 0x57 910 911 912#------------------------------------------------------------------------------ 913# MCRR/MCRR2 914#------------------------------------------------------------------------------ 915# CHECK: mcrr p7, #15, r5, r4, c1 916# CHECK: mcrr2 p7, #15, r5, r4, c1 917 9180x44 0xec 0xf1 0x57 9190x44 0xfc 0xf1 0x57 920 921 922#------------------------------------------------------------------------------ 923# MLA/MLS 924#------------------------------------------------------------------------------ 925# CHECK: mla r1, r2, r3, r4 926# CHECK: mls r1, r2, r3, r4 927 9280x02 0xfb 0x03 0x41 9290x02 0xfb 0x13 0x41 930 931 932#------------------------------------------------------------------------------ 933# MOV(immediate) 934#------------------------------------------------------------------------------ 935# CHECK: movs r1, #21 936# CHECK: movs.w r1, #21 937# CHECK: movs.w r8, #21 938# CHECK: movw r0, #65535 939# CHECK: movw r1, #43777 940# CHECK: movw r1, #43792 941# CHECK: mov.w r0, #66846720 942# CHECK: mov.w r0, #66846720 943# CHECK: movs.w r0, #66846720 944 9450x15 0x21 9460x5f 0xf0 0x15 0x01 9470x5f 0xf0 0x15 0x08 9480x4f 0xf6 0xff 0x70 9490x4a 0xf6 0x01 0x31 9500x4a 0xf6 0x10 0x31 9510x4f 0xf0 0x7f 0x70 9520x4f 0xf0 0x7f 0x70 9530x5f 0xf0 0x7f 0x70 954 955#------------------------------------------------------------------------------ 956# MOVT 957#------------------------------------------------------------------------------ 958# CHECK: movt r3, #7 959# CHECK: movt r6, #65535 960# CHECK: it eq 961# CHECK: movteq r4, #4080 962 9630xc0 0xf2 0x07 0x03 9640xcf 0xf6 0xff 0x76 9650x08 0xbf 9660xc0 0xf6 0xf0 0x74 967 968#------------------------------------------------------------------------------ 969# MRC/MRC2 970#------------------------------------------------------------------------------ 971# CHECK: mrc p14, #0, r1, c1, c2, #4 972# CHECK: mrc2 p14, #0, r1, c1, c2, #4 973 9740x11 0xee 0x92 0x1e 9750x11 0xfe 0x92 0x1e 976 977 978#------------------------------------------------------------------------------ 979# MRRC/MRRC2 980#------------------------------------------------------------------------------ 981# CHECK: mrrc p7, #1, r5, r4, c1 982# CHECK: mrrc2 p7, #1, r5, r4, c1 983 9840x54 0xec 0x11 0x57 9850x54 0xfc 0x11 0x57 986 987 988#------------------------------------------------------------------------------ 989# MRS 990#------------------------------------------------------------------------------ 991# CHECK: mrs r8, apsr 992# CHECK: mrs r8, spsr 993 9940xef 0xf3 0x00 0x88 9950xff 0xf3 0x00 0x88 996 997 998#------------------------------------------------------------------------------ 999# MSR 1000#------------------------------------------------------------------------------ 1001# CHECK: msr APSR_nzcvq, r1 1002# CHECK: msr APSR_g, r2 1003# CHECK: msr APSR_nzcvq, r3 1004# CHECK: msr APSR_nzcvq, r4 1005# CHECK: msr APSR_nzcvqg, r5 1006# CHECK: msr CPSR_fc, r6 1007# CHECK: msr CPSR_c, r7 1008# CHECK: msr CPSR_x, r8 1009# CHECK: msr CPSR_fc, r9 1010# CHECK: msr CPSR_fc, r11 1011# CHECK: msr CPSR_fsx, r12 1012# CHECK: msr SPSR_fc, r0 1013# CHECK: msr SPSR_fsxc, r5 1014# CHECK: msr CPSR_fsxc, r8 1015 10160x81 0xf3 0x00 0x88 10170x82 0xf3 0x00 0x84 10180x83 0xf3 0x00 0x88 10190x84 0xf3 0x00 0x88 10200x85 0xf3 0x00 0x8c 10210x86 0xf3 0x00 0x89 10220x87 0xf3 0x00 0x81 10230x88 0xf3 0x00 0x82 10240x89 0xf3 0x00 0x89 10250x8b 0xf3 0x00 0x89 10260x8c 0xf3 0x00 0x8e 10270x90 0xf3 0x00 0x89 10280x95 0xf3 0x00 0x8f 10290x88 0xf3 0x00 0x8f 1030 1031 1032#------------------------------------------------------------------------------ 1033# MUL 1034#------------------------------------------------------------------------------ 1035# CHECK: muls r3, r4, r3 1036# CHECK: mul r3, r4, r3 1037# CHECK: mul r3, r4, r6 1038# CHECK: it eq 1039# CHECK: muleq r3, r4, r5 1040 10410x63 0x43 10420x04 0xfb 0x03 0xf3 10430x04 0xfb 0x06 0xf3 10440x08 0xbf 10450x04 0xfb 0x05 0xf3 1046 1047 1048#------------------------------------------------------------------------------ 1049# MVN(immediate) 1050#------------------------------------------------------------------------------ 1051# CHECK: mvns r8, #21 1052# CHECK: mvn r0, #66846720 1053# CHECK: mvns r0, #66846720 1054# CHECK: itte eq 1055# CHECK: mvnseq r1, #12 1056# CHECK: mvneq r1, #12 1057# CHECK: mvnne r1, #12 1058 10590x7f 0xf0 0x15 0x08 10600x6f 0xf0 0x7f 0x70 10610x7f 0xf0 0x7f 0x70 10620x06 0xbf 10630x7f 0xf0 0x0c 0x01 10640x6f 0xf0 0x0c 0x01 10650x6f 0xf0 0x0c 0x01 1066 1067 1068#------------------------------------------------------------------------------ 1069# MVN(register) 1070#------------------------------------------------------------------------------ 1071# CHECK: mvn.w r2, r3 1072# CHECK: mvns r2, r3 1073# CHECK: mvn.w r5, r6, lsl #19 1074# CHECK: mvn.w r5, r6, lsr #9 1075# CHECK: mvn.w r5, r6, asr #4 1076# CHECK: mvn.w r5, r6, ror #6 1077# CHECK: mvn.w r5, r6, rrx 1078# CHECK: it eq 1079# CHECK: mvneq r2, r3 1080 10810x6f 0xea 0x03 0x02 10820xda 0x43 10830x6f 0xea 0xc6 0x45 10840x6f 0xea 0x56 0x25 10850x6f 0xea 0x26 0x15 10860x6f 0xea 0xb6 0x15 10870x6f 0xea 0x36 0x05 10880x08 0xbf 10890xda 0x43 1090 1091#------------------------------------------------------------------------------ 1092# NOP 1093#------------------------------------------------------------------------------ 1094# CHECK: nop.w 1095 10960xaf 0xf3 0x00 0x80 1097 1098 1099#------------------------------------------------------------------------------ 1100# ORN 1101#------------------------------------------------------------------------------ 1102# CHECK: orn r4, r5, #61440 1103# CHECK: orn r4, r5, r6 1104# CHECK: orns r4, r5, r6 1105# CHECK: orn r4, r5, r6, lsl #5 1106# CHECK: orns r4, r5, r6, lsr #5 1107# CHECK: orn r4, r5, r6, lsr #5 1108# CHECK: orns r4, r5, r6, asr #5 1109# CHECK: orn r4, r5, r6, ror #5 1110 11110x65 0xf4 0x70 0x44 11120x65 0xea 0x06 0x04 11130x75 0xea 0x06 0x04 11140x65 0xea 0x46 0x14 11150x75 0xea 0x56 0x14 11160x65 0xea 0x56 0x14 11170x75 0xea 0x66 0x14 11180x65 0xea 0x76 0x14 1119 1120 1121#------------------------------------------------------------------------------ 1122# ORR 1123#------------------------------------------------------------------------------ 1124# CHECK: orr r4, r5, #61440 1125# CHECK: orr.w r4, r5, r6 1126# CHECK: orr.w r4, r5, r6, lsl #5 1127# CHECK: orrs.w r4, r5, r6, lsr #5 1128# CHECK: orr.w r4, r5, r6, lsr #5 1129# CHECK: orrs.w r4, r5, r6, asr #5 1130# CHECK: orr.w r4, r5, r6, ror #5 1131 11320x45 0xf4 0x70 0x44 11330x45 0xea 0x06 0x04 11340x45 0xea 0x46 0x14 11350x55 0xea 0x56 0x14 11360x45 0xea 0x56 0x14 11370x55 0xea 0x66 0x14 11380x45 0xea 0x76 0x14 1139 1140 1141#------------------------------------------------------------------------------ 1142# PKH 1143#------------------------------------------------------------------------------ 1144# CHECK: pkhbt r2, r2, r3 1145# CHECK: pkhbt r2, r2, r3, lsl #31 1146# CHECK: pkhbt r2, r2, r3, lsl #15 1147 1148# CHECK: pkhtb r2, r2, r3, asr #31 1149# CHECK: pkhtb r2, r2, r3, asr #15 1150 11510xc2 0xea 0x03 0x02 11520xc2 0xea 0xc3 0x72 11530xc2 0xea 0xc3 0x32 1154 11550xc2 0xea 0xe3 0x72 11560xc2 0xea 0xe3 0x32 1157 1158 1159#------------------------------------------------------------------------------ 1160# PLD(immediate) 1161#------------------------------------------------------------------------------ 1162# CHECK: pld [r5, #-4] 1163# CHECK: pld [r6, #32] 1164# CHECK: pld [r6, #33] 1165# CHECK: pld [r6, #257] 1166# CHECK: pld [r7, #257] 1167 11680x15 0xf8 0x04 0xfc 11690x96 0xf8 0x20 0xf0 11700x96 0xf8 0x21 0xf0 11710x96 0xf8 0x01 0xf1 11720x97 0xf8 0x01 0xf1 1173 1174#------------------------------------------------------------------------------ 1175# PLD(register) 1176#------------------------------------------------------------------------------ 1177# CHECK: pld [r8, r1] 1178# CHECK: pld [r5, r2] 1179# CHECK: pld [r0, r2, lsl #3] 1180# CHECK: pld [r8, r2, lsl #2] 1181# CHECK: pld [sp, r2, lsl #1] 1182# CHECK: pld [sp, r2] 1183 11840x18 0xf8 0x01 0xf0 11850x15 0xf8 0x02 0xf0 11860x10 0xf8 0x32 0xf0 11870x18 0xf8 0x22 0xf0 11880x1d 0xf8 0x12 0xf0 11890x1d 0xf8 0x02 0xf0 1190 1191#------------------------------------------------------------------------------ 1192# PLI(immediate) 1193#------------------------------------------------------------------------------ 1194# CHECK: pli [r5, #-4] 1195# CHECK: pli [r6, #32] 1196# CHECK: pli [r6, #33] 1197# CHECK: pli [r6, #257] 1198# CHECK: pli [r7, #257] 1199 12000x15 0xf9 0x04 0xfc 12010x96 0xf9 0x20 0xf0 12020x96 0xf9 0x21 0xf0 12030x96 0xf9 0x01 0xf1 12040x97 0xf9 0x01 0xf1 1205 1206#------------------------------------------------------------------------------ 1207# PLI(register) 1208#------------------------------------------------------------------------------ 1209# CHECK: pli [r8, r1] 1210# CHECK: pli [r5, r2] 1211# CHECK: pli [r0, r2, lsl #3] 1212# CHECK: pli [r8, r2, lsl #2] 1213# CHECK: pli [sp, r2, lsl #1] 1214# CHECK: pli [sp, r2] 1215 12160x18 0xf9 0x01 0xf0 12170x15 0xf9 0x02 0xf0 12180x10 0xf9 0x32 0xf0 12190x18 0xf9 0x22 0xf0 12200x1d 0xf9 0x12 0xf0 12210x1d 0xf9 0x02 0xf0 1222 1223 1224#------------------------------------------------------------------------------ 1225# QADD/QADD16/QADD8 1226#------------------------------------------------------------------------------ 1227# CHECK: qadd r1, r2, r3 1228# CHECK: qadd16 r1, r2, r3 1229# CHECK: qadd8 r1, r2, r3 1230# CHECK: itte gt 1231# CHECK: qaddgt r1, r2, r3 1232# CHECK: qadd16gt r1, r2, r3 1233# CHECK: qadd8le r1, r2, r3 1234 12350x83 0xfa 0x82 0xf1 12360x92 0xfa 0x13 0xf1 12370x82 0xfa 0x13 0xf1 12380xc6 0xbf 12390x83 0xfa 0x82 0xf1 12400x92 0xfa 0x13 0xf1 12410x82 0xfa 0x13 0xf1 1242 1243 1244#------------------------------------------------------------------------------ 1245# QDADD/QDSUB 1246#------------------------------------------------------------------------------ 1247# CHECK: qdadd r6, r7, r8 1248# CHECK: qdsub r6, r7, r8 1249# CHECK: itt hi 1250# CHECK: qdaddhi r6, r7, r8 1251# CHECK: qdsubhi r6, r7, r8 1252 12530x88 0xfa 0x97 0xf6 12540x88 0xfa 0xb7 0xf6 12550x84 0xbf 12560x88 0xfa 0x97 0xf6 12570x88 0xfa 0xb7 0xf6 1258 1259 1260#------------------------------------------------------------------------------ 1261# QSAX 1262#------------------------------------------------------------------------------ 1263# CHECK: qsax r9, r12, r0 1264# CHECK: it eq 1265# CHECK: qsaxeq r9, r12, r0 1266 12670xec 0xfa 0x10 0xf9 12680x08 0xbf 12690xec 0xfa 0x10 0xf9 1270 1271 1272#------------------------------------------------------------------------------ 1273# QSUB/QSUB16/QSUB8 1274#------------------------------------------------------------------------------ 1275# CHECK: qsub r1, r2, r3 1276# CHECK: qsub16 r1, r2, r3 1277# CHECK: qsub8 r1, r2, r3 1278# CHECK: itet le 1279# CHECK: qsuble r1, r2, r3 1280# CHECK: qsub16gt r1, r2, r3 1281# CHECK: qsub8le r1, r2, r3 1282 12830x83 0xfa 0xa2 0xf1 12840xd2 0xfa 0x13 0xf1 12850xc2 0xfa 0x13 0xf1 12860xd6 0xbf 12870x83 0xfa 0xa2 0xf1 12880xd2 0xfa 0x13 0xf1 12890xc2 0xfa 0x13 0xf1 1290 1291 1292#------------------------------------------------------------------------------ 1293# RBIT 1294#------------------------------------------------------------------------------ 1295# CHECK: rbit r1, r2 1296# CHECK: it ne 1297# CHECK: rbitne r1, r2 1298 12990x92 0xfa 0xa2 0xf1 13000x18 0xbf 13010x92 0xfa 0xa2 0xf1 1302 1303 1304#------------------------------------------------------------------------------ 1305# REV 1306#------------------------------------------------------------------------------ 1307# CHECK: rev.w r1, r2 1308# CHECK: rev.w r2, r8 1309# CHECK: itt ne 1310# CHECK: revne r1, r2 1311# CHECK: revne.w r1, r8 1312 13130x92 0xfa 0x82 0xf1 13140x98 0xfa 0x88 0xf2 13150x1c 0xbf 13160x11 0xba 13170x98 0xfa 0x88 0xf1 1318 1319 1320#------------------------------------------------------------------------------ 1321# REV16 1322#------------------------------------------------------------------------------ 1323# CHECK: rev16.w r1, r2 1324# CHECK: rev16.w r2, r8 1325# CHECK: itt ne 1326# CHECK: rev16ne r1, r2 1327# CHECK: rev16ne.w r1, r8 1328 13290x92 0xfa 0x92 0xf1 13300x98 0xfa 0x98 0xf2 13310x1c 0xbf 13320x51 0xba 13330x98 0xfa 0x98 0xf1 1334 1335 1336#------------------------------------------------------------------------------ 1337# REVSH 1338#------------------------------------------------------------------------------ 1339# CHECK: revsh.w r1, r2 1340# CHECK: revsh.w r2, r8 1341# CHECK: itt ne 1342# CHECK: revshne r1, r2 1343# CHECK: revshne.w r1, r8 1344 13450x92 0xfa 0xb2 0xf1 13460x98 0xfa 0xb8 0xf2 13470x1c 0xbf 13480xd1 0xba 13490x98 0xfa 0xb8 0xf1 1350 1351 1352#------------------------------------------------------------------------------ 1353# ROR (immediate) 1354#------------------------------------------------------------------------------ 1355# CHECK: ror.w r2, r3, #12 1356# CHECK: rors.w r8, r3, #31 1357# CHECK: rors.w r2, r3, #1 1358# CHECK: ror.w r2, r3, #4 1359# CHECK: rors.w r2, r12, #15 1360 1361# CHECK: ror.w r3, r3, #19 1362# CHECK: rors.w r8, r8, #2 1363# CHECK: rors.w r7, r7, #5 1364# CHECK: ror.w r12, r12, #21 1365 13660x4f 0xea 0x33 0x32 13670x5f 0xea 0xf3 0x78 13680x5f 0xea 0x73 0x02 13690x4f 0xea 0x33 0x12 13700x5f 0xea 0xfc 0x32 1371 13720x4f 0xea 0xf3 0x43 13730x5f 0xea 0xb8 0x08 13740x5f 0xea 0x77 0x17 13750x4f 0xea 0x7c 0x5c 1376 1377 1378#------------------------------------------------------------------------------ 1379# ROR (register) 1380#------------------------------------------------------------------------------ 1381# CHECK: ror.w r3, r4, r2 1382# CHECK: ror.w r1, r1, r2 1383# CHECK: rors.w r3, r4, r8 1384 13850x64 0xfa 0x02 0xf3 13860x61 0xfa 0x02 0xf1 13870x74 0xfa 0x08 0xf3 1388 1389 1390#------------------------------------------------------------------------------ 1391# RRX 1392#------------------------------------------------------------------------------ 1393# CHECK: rrx r1, r2 1394# CHECK: rrxs r1, r2 1395# CHECK: ite lt 1396# CHECK: rrxlt r9, r12 1397# CHECK: rrxsge r8, r3 1398 13990x4f 0xea 0x32 0x01 14000x5f 0xea 0x32 0x01 14010xb4 0xbf 14020x4f 0xea 0x3c 0x09 14030x5f 0xea 0x33 0x08 1404 1405#------------------------------------------------------------------------------ 1406# RSB (immediate) 1407#------------------------------------------------------------------------------ 1408# CHECK: rsb.w r2, r5, #1044480 1409# CHECK: rsbs.w r3, r12, #15 1410# CHECK: rsb.w r1, r1, #255 1411 14120xc5 0xf5 0x7f 0x22 14130xdc 0xf1 0x0f 0x03 14140xc1 0xf1 0xff 0x01 1415 1416 1417#------------------------------------------------------------------------------ 1418# RSB (register) 1419#------------------------------------------------------------------------------ 1420# CHECK: rsb r4, r4, r8 1421# CHECK: rsb r4, r9, r8 1422# CHECK: rsb r1, r4, r8, asr #3 1423# CHECK: rsbs r2, r1, r7, lsl #1 1424 14250xc4 0xeb 0x08 0x04 14260xc9 0xeb 0x08 0x04 14270xc4 0xeb 0xe8 0x01 14280xd1 0xeb 0x47 0x02 1429 1430 1431#------------------------------------------------------------------------------ 1432# SADD16 1433#------------------------------------------------------------------------------ 1434# CHECK: sadd16 r3, r4, r8 1435# CHECK: it ne 1436# CHECK: sadd16ne r3, r4, r8 1437 14380x94 0xfa 0x08 0xf3 14390x18 0xbf 14400x94 0xfa 0x08 0xf3 1441 1442 1443#------------------------------------------------------------------------------ 1444# SADD8 1445#------------------------------------------------------------------------------ 1446# CHECK: sadd8 r3, r4, r8 1447# CHECK: it ne 1448# CHECK: sadd8ne r3, r4, r8 1449 14500x84 0xfa 0x08 0xf3 14510x18 0xbf 14520x84 0xfa 0x08 0xf3 1453 1454 1455#------------------------------------------------------------------------------ 1456# SASX 1457#------------------------------------------------------------------------------ 1458# CHECK: sasx r9, r2, r7 1459# CHECK: it ne 1460# CHECK: sasxne r2, r5, r6 1461 14620xa2 0xfa 0x07 0xf9 14630x18 0xbf 14640xa5 0xfa 0x06 0xf2 1465 1466 1467#------------------------------------------------------------------------------ 1468# SBC (immediate) 1469#------------------------------------------------------------------------------ 1470# CHECK: sbc r0, r1, #4 1471# CHECK: sbcs r0, r1, #0 1472# CHECK: sbc r1, r2, #255 1473# CHECK: sbc r3, r7, #5570645 1474# CHECK: sbc r8, r12, #2852170240 1475# CHECK: sbc r9, r7, #2779096485 1476# CHECK: sbc r5, r3, #2264924160 1477# CHECK: sbc r4, r2, #2139095040 1478# CHECK: sbc r4, r2, #1664 1479 14800x61 0xf1 0x04 0x00 14810x71 0xf1 0x00 0x00 14820x62 0xf1 0xff 0x01 14830x67 0xf1 0x55 0x13 14840x6c 0xf1 0xaa 0x28 14850x67 0xf1 0xa5 0x39 14860x63 0xf1 0x07 0x45 14870x62 0xf1 0xff 0x44 14880x62 0xf5 0xd0 0x64 1489 1490 1491#------------------------------------------------------------------------------ 1492# SBC (register) 1493#------------------------------------------------------------------------------ 1494# CHECK: sbc.w r4, r5, r6 1495# CHECK: sbcs.w r4, r5, r6 1496# CHECK: sbc.w r9, r1, r3 1497# CHECK: sbcs.w r9, r1, r3 1498# CHECK: sbc.w r0, r1, r3, ror #4 1499# CHECK: sbcs.w r0, r1, r3, lsl #7 1500# CHECK: sbc.w r0, r1, r3, lsr #31 1501# CHECK: sbcs.w r0, r1, r3, asr #32 1502 15030x65 0xeb 0x06 0x04 15040x75 0xeb 0x06 0x04 15050x61 0xeb 0x03 0x09 15060x71 0xeb 0x03 0x09 15070x61 0xeb 0x33 0x10 15080x71 0xeb 0xc3 0x10 15090x61 0xeb 0xd3 0x70 15100x71 0xeb 0x23 0x00 1511 1512 1513#------------------------------------------------------------------------------ 1514# SBFX 1515#------------------------------------------------------------------------------ 1516# CHECK: sbfx r4, r5, #16, #1 1517# CHECK: it gt 1518# CHECK: sbfxgt r4, r5, #16, #16 1519 15200x45 0xf3 0x00 0x44 15210xc8 0xbf 15220x45 0xf3 0x0f 0x44 1523 1524 1525#------------------------------------------------------------------------------ 1526# SEL 1527#------------------------------------------------------------------------------ 1528# CHECK: sel r5, r9, r2 1529# CHECK: it le 1530# CHECK: selle r5, r9, r2 1531 15320xa9 0xfa 0x82 0xf5 15330xd8 0xbf 15340xa9 0xfa 0x82 0xf5 1535 1536 1537#------------------------------------------------------------------------------ 1538# SEV 1539#------------------------------------------------------------------------------ 1540# CHECK: sev.w 1541# CHECK: it eq 1542# CHECK: seveq.w 1543 15440xaf 0xf3 0x04 0x80 15450x08 0xbf 15460xaf 0xf3 0x04 0x80 1547 1548 1549#------------------------------------------------------------------------------ 1550# SADD16/SADD8 1551#------------------------------------------------------------------------------ 1552# CHECK: sadd16 r1, r2, r3 1553# CHECK: sadd8 r1, r2, r3 1554# CHECK: ite gt 1555# CHECK: sadd16gt r1, r2, r3 1556# CHECK: sadd8le r1, r2, r3 1557 15580x92 0xfa 0x03 0xf1 15590x82 0xfa 0x03 0xf1 15600xcc 0xbf 15610x92 0xfa 0x03 0xf1 15620x82 0xfa 0x03 0xf1 1563 1564 1565#------------------------------------------------------------------------------ 1566# SHASX 1567#------------------------------------------------------------------------------ 1568# CHECK: shasx r4, r8, r2 1569# CHECK: it gt 1570# CHECK: shasxgt r4, r8, r2 1571 15720xa8 0xfa 0x22 0xf4 15730xc8 0xbf 15740xa8 0xfa 0x22 0xf4 1575 1576 1577#------------------------------------------------------------------------------ 1578# SHASX 1579#------------------------------------------------------------------------------ 1580# CHECK: shsax r4, r8, r2 1581# CHECK: it gt 1582# CHECK: shsaxgt r4, r8, r2 1583 15840xe8 0xfa 0x22 0xf4 15850xc8 0xbf 15860xe8 0xfa 0x22 0xf4 1587 1588 1589#------------------------------------------------------------------------------ 1590# SHSUB16/SHSUB8 1591#------------------------------------------------------------------------------ 1592# CHECK: shsub16 r4, r8, r2 1593# CHECK: shsub8 r4, r8, r2 1594# CHECK: itt gt 1595# CHECK: shsub16gt r4, r8, r2 1596# CHECK: shsub8gt r4, r8, r2 1597 15980xd8 0xfa 0x22 0xf4 15990xc8 0xfa 0x22 0xf4 16000xc4 0xbf 16010xd8 0xfa 0x22 0xf4 16020xc8 0xfa 0x22 0xf4 1603 1604 1605#------------------------------------------------------------------------------ 1606# SMLABB/SMLABT/SMLATB/SMLATT 1607#------------------------------------------------------------------------------ 1608# CHECK: smlabb r3, r1, r9, r0 1609# CHECK: smlabt r5, r6, r4, r1 1610# CHECK: smlatb r4, r2, r3, r2 1611# CHECK: smlatt r8, r3, r8, r4 1612# CHECK: itete gt 1613# CHECK: smlabbgt r3, r1, r9, r0 1614# CHECK: smlabtle r5, r6, r4, r1 1615# CHECK: smlatbgt r4, r2, r3, r2 1616# CHECK: smlattle r8, r3, r8, r4 1617 16180x11 0xfb 0x09 0x03 16190x16 0xfb 0x14 0x15 16200x12 0xfb 0x23 0x24 16210x13 0xfb 0x38 0x48 16220xcb 0xbf 16230x11 0xfb 0x09 0x03 16240x16 0xfb 0x14 0x15 16250x12 0xfb 0x23 0x24 16260x13 0xfb 0x38 0x48 1627 1628 1629#------------------------------------------------------------------------------ 1630# SMLAD/SMLADX 1631#------------------------------------------------------------------------------ 1632# CHECK: smlad r2, r3, r5, r8 1633# CHECK: smladx r2, r3, r5, r8 1634# CHECK: itt hi 1635# CHECK: smladhi r2, r3, r5, r8 1636# CHECK: smladxhi r2, r3, r5, r8 1637 16380x23 0xfb 0x05 0x82 16390x23 0xfb 0x15 0x82 16400x84 0xbf 16410x23 0xfb 0x05 0x82 16420x23 0xfb 0x15 0x82 1643 1644 1645#------------------------------------------------------------------------------ 1646# SMLAL 1647#------------------------------------------------------------------------------ 1648# CHECK: smlal r2, r3, r5, r8 1649# CHECK: it eq 1650# CHECK: smlaleq r2, r3, r5, r8 1651 16520xc5 0xfb 0x08 0x23 16530x08 0xbf 16540xc5 0xfb 0x08 0x23 1655 1656 1657#------------------------------------------------------------------------------ 1658# SMLALBB/SMLALBT/SMLALTB/SMLALTT 1659#------------------------------------------------------------------------------ 1660# CHECK: smlalbb r3, r1, r9, r0 1661# CHECK: smlalbt r5, r6, r4, r1 1662# CHECK: smlaltb r4, r2, r3, r2 1663# CHECK: smlaltt r8, r3, r8, r4 1664# CHECK: iteet ge 1665# CHECK: smlalbbge r3, r1, r9, r0 1666# CHECK: smlalbtlt r5, r6, r4, r1 1667# CHECK: smlaltblt r4, r2, r3, r2 1668# CHECK: smlalttge r8, r3, r8, r4 1669 16700xc9 0xfb 0x80 0x31 16710xc4 0xfb 0x91 0x56 16720xc3 0xfb 0xa2 0x42 16730xc8 0xfb 0xb4 0x83 16740xad 0xbf 16750xc9 0xfb 0x80 0x31 16760xc4 0xfb 0x91 0x56 16770xc3 0xfb 0xa2 0x42 16780xc8 0xfb 0xb4 0x83 1679 1680#------------------------------------------------------------------------------ 1681# SMLALD/SMLALDX 1682#------------------------------------------------------------------------------ 1683# CHECK: smlald r2, r3, r5, r8 1684# CHECK: smlaldx r2, r3, r5, r8 1685# CHECK: ite eq 1686# CHECK: smlaldeq r2, r3, r5, r8 1687# CHECK: smlaldxne r2, r3, r5, r8 1688 16890xc5 0xfb 0xc8 0x23 16900xc5 0xfb 0xd8 0x23 16910x0c 0xbf 16920xc5 0xfb 0xc8 0x23 16930xc5 0xfb 0xd8 0x23 1694 1695 1696#------------------------------------------------------------------------------ 1697# SMLAWB/SMLAWT 1698#------------------------------------------------------------------------------ 1699# CHECK: smlawb r2, r3, r10, r8 1700# CHECK: smlawt r8, r3, r5, r9 1701# CHECK: ite eq 1702# CHECK: smlawbeq r2, r7, r5, r8 1703# CHECK: smlawtne r1, r3, r0, r8 1704 17050x33 0xfb 0x0a 0x82 17060x33 0xfb 0x15 0x98 17070x0c 0xbf 17080x37 0xfb 0x05 0x82 17090x33 0xfb 0x10 0x81 1710 1711 1712#------------------------------------------------------------------------------ 1713# SMLSD/SMLSDX 1714#------------------------------------------------------------------------------ 1715# CHECK: smlsd r2, r3, r5, r8 1716# CHECK: smlsdx r2, r3, r5, r8 1717# CHECK: ite le 1718# CHECK: smlsdle r2, r3, r5, r8 1719# CHECK: smlsdxgt r2, r3, r5, r8 1720 17210x43 0xfb 0x05 0x82 17220x43 0xfb 0x15 0x82 17230xd4 0xbf 17240x43 0xfb 0x05 0x82 17250x43 0xfb 0x15 0x82 1726 1727 1728#------------------------------------------------------------------------------ 1729# SMLSLD/SMLSLDX 1730#------------------------------------------------------------------------------ 1731# CHECK: smlsld r2, r9, r5, r1 1732# CHECK: smlsldx r4, r11, r2, r8 1733# CHECK: ite ge 1734# CHECK: smlsldge r8, r2, r5, r6 1735# CHECK: smlsldxlt r1, r0, r3, r8 1736 17370xd5 0xfb 0xc1 0x29 17380xd2 0xfb 0xd8 0x4b 17390xac 0xbf 17400xd5 0xfb 0xc6 0x82 17410xd3 0xfb 0xd8 0x10 1742 1743 1744#------------------------------------------------------------------------------ 1745# SMMLA/SMMLAR 1746#------------------------------------------------------------------------------ 1747# CHECK: smmla r1, r2, r3, r4 1748# CHECK: smmlar r4, r3, r2, r1 1749# CHECK: ite lo 1750# CHECK: smmlalo r1, r2, r3, r4 1751# CHECK: smmlarhs r4, r3, r2, r1 1752 17530x52 0xfb 0x03 0x41 17540x53 0xfb 0x12 0x14 17550x34 0xbf 17560x52 0xfb 0x03 0x41 17570x53 0xfb 0x12 0x14 1758 1759 1760#------------------------------------------------------------------------------ 1761# SMMLS/SMMLSR 1762#------------------------------------------------------------------------------ 1763# CHECK: smmls r1, r2, r3, r4 1764# CHECK: smmlsr r4, r3, r2, r1 1765# CHECK: ite lo 1766# CHECK: smmlslo r1, r2, r3, r4 1767# CHECK: smmlsrhs r4, r3, r2, r1 1768 17690x62 0xfb 0x03 0x41 17700x63 0xfb 0x12 0x14 17710x34 0xbf 17720x62 0xfb 0x03 0x41 17730x63 0xfb 0x12 0x14 1774 1775#------------------------------------------------------------------------------ 1776# SSAT 1777#------------------------------------------------------------------------------ 1778# CHECK: ssat r9, #30, r0, asr #2 1779 17800x20 0xf3 0x9d 0x09 1781 1782#------------------------------------------------------------------------------ 1783# STR (immediate) 1784#------------------------------------------------------------------------------ 1785# CHECK: str r10, [r11], #0 1786 17870x4b 0xf8 0x00 0xab 1788 1789#------------------------------------------------------------------------------ 1790# STRD (immediate) 1791#------------------------------------------------------------------------------ 1792# CHECK: strd r6, r3, [r5], #-8 1793# CHECK: strd r8, r5, [r5]{{$}} 1794# CHECK: strd r7, r4, [r5], #-4 1795 17960x65 0xe8 0x02 0x63 17970x65 0xe8 0x00 0x85 17980x65 0xe8 0x01 0x74 1799 1800#------------------------------------------------------------------------------ 1801# STREX/STREXB/STREXH/STREXD 1802#------------------------------------------------------------------------------ 1803# CHECK: strex r1, r8, [r4] 1804# CHECK: strex r8, r2, [r4] 1805# CHECK: strex r2, r12, [sp, #128] 1806# CHECK: strexb r5, r1, [r7] 1807# CHECK: strexh r9, r7, [r12] 1808# CHECK: strexd r9, r3, r6, [r4] 1809 18100x44 0xe8 0x00 0x81 18110x44 0xe8 0x00 0x28 18120x4d 0xe8 0x20 0xc2 18130xc7 0xe8 0x45 0x1f 18140xcc 0xe8 0x59 0x7f 18150xc4 0xe8 0x79 0x36 1816 1817 1818#------------------------------------------------------------------------------ 1819# STRH(immediate) 1820#------------------------------------------------------------------------------ 1821# CHECK: strh r5, [r5, #-4] 1822# CHECK: strh r5, [r6, #32] 1823# CHECK: strh.w r5, [r6, #33] 1824# CHECK: strh.w r5, [r6, #257] 1825# CHECK: strh.w lr, [r7, #257] 1826# CHECK: strh r5, [r8, #255]! 1827# CHECK: strh r2, [r5, #4]! 1828# CHECK: strh r1, [r4, #-4]! 1829# CHECK: strh lr, [r3], #255 1830# CHECK: strh r9, [r2], #4 1831# CHECK: strh r3, [sp], #-4 1832 18330x25 0xf8 0x04 0x5c 18340x35 0x84 18350xa6 0xf8 0x21 0x50 18360xa6 0xf8 0x01 0x51 18370xa7 0xf8 0x01 0xe1 18380x28 0xf8 0xff 0x5f 18390x25 0xf8 0x04 0x2f 18400x24 0xf8 0x04 0x1d 18410x23 0xf8 0xff 0xeb 18420x22 0xf8 0x04 0x9b 18430x2d 0xf8 0x04 0x39 1844 1845 1846#------------------------------------------------------------------------------ 1847# STRH(register) 1848#------------------------------------------------------------------------------ 1849# CHECK: strh.w r1, [r8, r1] 1850# CHECK: strh.w r4, [r5, r2] 1851# CHECK: strh.w r6, [r0, r2, lsl #3] 1852# CHECK: strh.w r8, [r8, r2, lsl #2] 1853# CHECK: strh.w r7, [sp, r2, lsl #1] 1854# CHECK: strh.w r7, [sp, r2] 1855 18560x28 0xf8 0x01 0x10 18570x25 0xf8 0x02 0x40 18580x20 0xf8 0x32 0x60 18590x28 0xf8 0x22 0x80 18600x2d 0xf8 0x12 0x70 18610x2d 0xf8 0x02 0x70 1862 1863 1864#------------------------------------------------------------------------------ 1865# STRHT 1866#------------------------------------------------------------------------------ 1867# CHECK: strht r1, [r2] 1868# CHECK: strht r1, [r8] 1869# CHECK: strht r1, [r8, #3] 1870# CHECK: strht r1, [r8, #255] 1871 18720x22 0xf8 0x00 0x1e 18730x28 0xf8 0x00 0x1e 18740x28 0xf8 0x03 0x1e 18750x28 0xf8 0xff 0x1e 1876 1877 1878#------------------------------------------------------------------------------ 1879# STRT 1880#------------------------------------------------------------------------------ 1881# CHECK: strt r1, [r2] 1882# CHECK: strt r1, [r8] 1883# CHECK: strt r1, [r8, #3] 1884# CHECK: strt r1, [r8, #255] 1885 18860x42 0xf8 0x00 0x1e 18870x48 0xf8 0x00 0x1e 18880x48 0xf8 0x03 0x1e 18890x48 0xf8 0xff 0x1e 1890 1891 1892#------------------------------------------------------------------------------ 1893# SUB (immediate) 1894#------------------------------------------------------------------------------ 1895# CHECK: itet eq 1896# CHECK: subeq r1, r2, #4 1897# CHECK: subwne r5, r3, #1023 1898# CHECK: subweq r4, r5, #293 1899# CHECK: sub.w r2, sp, #1024 1900# CHECK: sub.w r2, r8, #65280 1901# CHECK: subw r2, r3, #257 1902# CHECK: sub.w r12, r6, #256 1903# CHECK: subw r12, r6, #256 1904# CHECK: subs.w r1, r2, #496 1905 19060x0a 0xbf 19070x11 0x1f 19080xa3 0xf2 0xff 0x35 19090xa5 0xf2 0x25 0x14 19100xad 0xf5 0x80 0x62 19110xa8 0xf5 0x7f 0x42 19120xa3 0xf2 0x01 0x12 19130xa6 0xf5 0x80 0x7c 19140xa6 0xf2 0x00 0x1c 19150xb2 0xf5 0xf8 0x71 1916 1917 1918#------------------------------------------------------------------------------ 1919# SUB (register) 1920#------------------------------------------------------------------------------ 1921# CHECK: sub.w r4, r5, r6 1922# CHECK: sub.w r4, r5, r6, lsl #5 1923# CHECK: sub.w r4, r5, r6, lsr #5 1924# CHECK: sub.w r4, r5, r6, lsr #5 1925# CHECK: sub.w r4, r5, r6, asr #5 1926# CHECK: sub.w r4, r5, r6, ror #5 1927# CHECK: sub.w r5, r2, r12, rrx 1928 19290xa5 0xeb 0x06 0x04 19300xa5 0xeb 0x46 0x14 19310xa5 0xeb 0x56 0x14 19320xa5 0xeb 0x56 0x14 19330xa5 0xeb 0x66 0x14 19340xa5 0xeb 0x76 0x14 19350xa2 0xeb 0x3c 0x05 1936 1937 1938#------------------------------------------------------------------------------ 1939# SVC 1940#------------------------------------------------------------------------------ 1941# CHECK: svc #0 1942# CHECK: ite eq 1943# CHECK: svceq #255 1944# CHECK: svcne #33 1945 19460x00 0xdf 19470x0c 0xbf 19480xff 0xdf 19490x21 0xdf 1950 1951#------------------------------------------------------------------------------ 1952# SXTAB 1953#------------------------------------------------------------------------------ 1954# CHECK: sxtab r2, r3, r4 1955# CHECK: sxtab r4, r5, r6 1956# CHECK: it lt 1957# CHECK: sxtablt r6, r2, r9, ror #8 1958# CHECK: sxtab r5, r1, r4, ror #16 1959# CHECK: sxtab r7, r8, r3, ror #24 1960 19610x43 0xfa 0x84 0xf2 19620x45 0xfa 0x86 0xf4 19630xb8 0xbf 19640x42 0xfa 0x99 0xf6 19650x41 0xfa 0xa4 0xf5 19660x48 0xfa 0xb3 0xf7 1967 1968 1969#------------------------------------------------------------------------------ 1970# SXTAB16 1971#------------------------------------------------------------------------------ 1972# CHECK: sxtab16 r6, r2, r7 1973# CHECK: sxtab16 r3, r5, r8, ror #8 1974# CHECK: sxtab16 r3, r2, r1, ror #16 1975# CHECK: ite ne 1976# CHECK: sxtab16ne r0, r1, r4 1977# CHECK: sxtab16eq r1, r2, r3, ror #24 1978 19790x22 0xfa 0x87 0xf6 19800x25 0xfa 0x98 0xf3 19810x22 0xfa 0xa1 0xf3 19820x14 0xbf 19830x21 0xfa 0x84 0xf0 19840x22 0xfa 0xb3 0xf1 1985 1986 1987#------------------------------------------------------------------------------ 1988# SXTAH 1989#------------------------------------------------------------------------------ 1990# CHECK: sxtah r1, r3, r9 1991# CHECK: sxtah r3, r8, r3, ror #8 1992# CHECK: sxtah r9, r3, r3, ror #24 1993# CHECK: ite hi 1994# CHECK: sxtahhi r6, r1, r6 1995# CHECK: sxtahls r2, r2, r4, ror #16 1996 19970x03 0xfa 0x89 0xf1 19980x08 0xfa 0x93 0xf3 19990x03 0xfa 0xb3 0xf9 20000x8c 0xbf 20010x01 0xfa 0x86 0xf6 20020x02 0xfa 0xa4 0xf2 2003 2004 2005#------------------------------------------------------------------------------ 2006# SXTB 2007#------------------------------------------------------------------------------ 2008# CHECK: sxtb r5, r6 2009# CHECK: sxtb.w r6, r9, ror #8 2010# CHECK: sxtb.w r8, r3, ror #24 2011# CHECK: ite ge 2012# CHECK: sxtbge r2, r4 2013# CHECK: sxtblt.w r5, r1, ror #16 2014 20150x75 0xb2 20160x4f 0xfa 0x99 0xf6 20170x4f 0xfa 0xb3 0xf8 20180xac 0xbf 20190x62 0xb2 20200x4f 0xfa 0xa1 0xf5 2021 2022 2023#------------------------------------------------------------------------------ 2024# SXTB16 2025#------------------------------------------------------------------------------ 2026# CHECK: sxtb16 r1, r4 2027# CHECK: sxtb16 r6, r7 2028# CHECK: sxtb16 r3, r1, ror #16 2029# CHECK: ite hs 2030# CHECK: sxtb16hs r3, r5, ror #8 2031# CHECK: sxtb16lo r2, r3, ror #24 2032 20330x2f 0xfa 0x84 0xf1 20340x2f 0xfa 0x87 0xf6 20350x2f 0xfa 0xa1 0xf3 20360x2c 0xbf 20370x2f 0xfa 0x95 0xf3 20380x2f 0xfa 0xb3 0xf2 2039 2040 2041#------------------------------------------------------------------------------ 2042# SXTH 2043#------------------------------------------------------------------------------ 2044# CHECK: sxth r1, r6 2045# CHECK: sxth.w r3, r8, ror #8 2046# CHECK: sxth.w r9, r3, ror #24 2047# CHECK: itt ne 2048# CHECK: sxthne.w r3, r9 2049# CHECK: sxthne.w r2, r2, ror #16 2050 20510x31 0xb2 20520x0f 0xfa 0x98 0xf3 20530x0f 0xfa 0xb3 0xf9 20540x1c 0xbf 20550x0f 0xfa 0x89 0xf3 20560x0f 0xfa 0xa2 0xf2 2057 2058 2059#------------------------------------------------------------------------------ 2060# SXTB 2061#------------------------------------------------------------------------------ 2062# CHECK: sxtb r5, r6 2063# CHECK: sxtb.w r6, r9, ror #8 2064# CHECK: sxtb.w r8, r3, ror #24 2065# CHECK: ite ge 2066# CHECK: sxtbge r2, r4 2067# CHECK: sxtblt.w r5, r1, ror #16 2068 20690x75 0xb2 20700x4f 0xfa 0x99 0xf6 20710x4f 0xfa 0xb3 0xf8 20720xac 0xbf 20730x62 0xb2 20740x4f 0xfa 0xa1 0xf5 2075 2076 2077#------------------------------------------------------------------------------ 2078# SXTB16 2079#------------------------------------------------------------------------------ 2080# CHECK: sxtb16 r1, r4 2081# CHECK: sxtb16 r6, r7 2082# CHECK: sxtb16 r3, r1, ror #16 2083# CHECK: ite hs 2084# CHECK: sxtb16hs r3, r5, ror #8 2085# CHECK: sxtb16lo r2, r3, ror #24 2086 20870x2f 0xfa 0x84 0xf1 20880x2f 0xfa 0x87 0xf6 20890x2f 0xfa 0xa1 0xf3 20900x2c 0xbf 20910x2f 0xfa 0x95 0xf3 20920x2f 0xfa 0xb3 0xf2 2093 2094 2095#------------------------------------------------------------------------------ 2096# SXTH 2097#------------------------------------------------------------------------------ 2098# CHECK: sxth r1, r6 2099# CHECK: sxth.w r3, r8, ror #8 2100# CHECK: sxth.w r9, r3, ror #24 2101# CHECK: itt ne 2102# CHECK: sxthne.w r3, r9 2103# CHECK: sxthne.w r2, r2, ror #16 2104 21050x31 0xb2 21060x0f 0xfa 0x98 0xf3 21070x0f 0xfa 0xb3 0xf9 21080x1c 0xbf 21090x0f 0xfa 0x89 0xf3 21100x0f 0xfa 0xa2 0xf2 2111 2112 2113#------------------------------------------------------------------------------ 2114# TBB/TBH 2115#------------------------------------------------------------------------------ 2116# CHECK: tbb [r3, r8] 2117# CHECK: tbh [r3, r8, lsl #1] 2118# CHECK: it eq 2119# CHECK: tbbeq [r3, r8] 2120# CHECK: it hs 2121# CHECK: tbhhs [r3, r8, lsl #1] 2122 21230xd3 0xe8 0x08 0xf0 21240xd3 0xe8 0x18 0xf0 21250x08 0xbf 21260xd3 0xe8 0x08 0xf0 21270x28 0xbf 21280xd3 0xe8 0x18 0xf0 2129 2130 2131#------------------------------------------------------------------------------ 2132# TEQ 2133#------------------------------------------------------------------------------ 2134# CHECK: teq.w r5, #61440 2135# CHECK: teq.w r4, r5 2136# CHECK: teq.w r4, r5, lsl #5 2137# CHECK: teq.w r4, r5, lsr #5 2138# CHECK: teq.w r4, r5, lsr #5 2139# CHECK: teq.w r4, r5, asr #5 2140# CHECK: teq.w r4, r5, ror #5 2141 21420x95 0xf4 0x70 0x4f 21430x94 0xea 0x05 0x0f 21440x94 0xea 0x45 0x1f 21450x94 0xea 0x55 0x1f 21460x94 0xea 0x55 0x1f 21470x94 0xea 0x65 0x1f 21480x94 0xea 0x75 0x1f 2149 2150 2151#------------------------------------------------------------------------------ 2152# TST 2153#------------------------------------------------------------------------------ 2154# CHECK: tst.w r5, #61440 2155# CHECK: tst r2, r5 2156# CHECK: tst.w r3, r12, lsl #5 2157# CHECK: tst.w r4, r11, lsr #4 2158# CHECK: tst.w r5, r10, lsr #12 2159# CHECK: tst.w r6, r9, asr #30 2160# CHECK: tst.w r7, r8, ror #2 2161 21620x15 0xf4 0x70 0x4f 21630x2a 0x42 21640x13 0xea 0x4c 0x1f 21650x14 0xea 0x1b 0x1f 21660x15 0xea 0x1a 0x3f 21670x16 0xea 0xa9 0x7f 21680x17 0xea 0xb8 0x0f 2169 2170 2171#------------------------------------------------------------------------------ 2172# UADD16/UADD8 2173#------------------------------------------------------------------------------ 2174# CHECK: uadd16 r1, r2, r3 2175# CHECK: uadd8 r1, r2, r3 2176# CHECK: ite gt 2177# CHECK: uadd16gt r1, r2, r3 2178# CHECK: uadd8le r1, r2, r3 2179 21800x92 0xfa 0x43 0xf1 21810x82 0xfa 0x43 0xf1 21820xcc 0xbf 21830x92 0xfa 0x43 0xf1 21840x82 0xfa 0x43 0xf1 2185 2186 2187#------------------------------------------------------------------------------ 2188# UASX 2189#------------------------------------------------------------------------------ 2190# CHECK: uasx r9, r12, r0 2191# CHECK: it eq 2192# CHECK: uasxeq r9, r12, r0 2193# CHECK: uasx r9, r12, r0 2194# CHECK: it eq 2195# CHECK: uasxeq r9, r12, r0 2196 21970xac 0xfa 0x40 0xf9 21980x08 0xbf 21990xac 0xfa 0x40 0xf9 22000xac 0xfa 0x40 0xf9 22010x08 0xbf 22020xac 0xfa 0x40 0xf9 2203 2204 2205#------------------------------------------------------------------------------ 2206# UBFX 2207#------------------------------------------------------------------------------ 2208# CHECK: ubfx r4, r5, #16, #1 2209# CHECK: it gt 2210# CHECK: ubfxgt r4, r5, #16, #16 2211 22120xc5 0xf3 0x00 0x44 22130xc8 0xbf 22140xc5 0xf3 0x0f 0x44 2215 2216 2217#------------------------------------------------------------------------------ 2218# UHADD16/UHADD8 2219#------------------------------------------------------------------------------ 2220# CHECK: uhadd16 r4, r8, r2 2221# CHECK: uhadd8 r4, r8, r2 2222# CHECK: itt gt 2223# CHECK: uhadd16gt r4, r8, r2 2224# CHECK: uhadd8gt r4, r8, r2 2225 22260x98 0xfa 0x62 0xf4 22270x88 0xfa 0x62 0xf4 22280xc4 0xbf 22290x98 0xfa 0x62 0xf4 22300x88 0xfa 0x62 0xf4 2231 2232 2233#------------------------------------------------------------------------------ 2234# UHASX/UHSAX 2235#------------------------------------------------------------------------------ 2236# CHECK: uhasx r4, r1, r5 2237# CHECK: uhsax r5, r6, r6 2238# CHECK: itt gt 2239# CHECK: uhasxgt r6, r9, r8 2240# CHECK: uhsaxgt r7, r8, r12 2241 22420xa1 0xfa 0x65 0xf4 22430xe6 0xfa 0x66 0xf5 22440xc4 0xbf 22450xa9 0xfa 0x68 0xf6 22460xe8 0xfa 0x6c 0xf7 2247 2248#------------------------------------------------------------------------------ 2249# UHSUB16/UHSUB8 2250#------------------------------------------------------------------------------ 2251# CHECK: uhsub16 r5, r8, r3 2252# CHECK: uhsub8 r1, r7, r6 2253# CHECK: itt lt 2254# CHECK: uhsub16lt r4, r9, r12 2255# CHECK: uhsub8lt r3, r1, r5 2256 22570xd8 0xfa 0x63 0xf5 22580xc7 0xfa 0x66 0xf1 22590xbc 0xbf 22600xd9 0xfa 0x6c 0xf4 22610xc1 0xfa 0x65 0xf3 2262 2263 2264#------------------------------------------------------------------------------ 2265# UMAAL 2266#------------------------------------------------------------------------------ 2267# CHECK: umaal r3, r4, r5, r6 2268# CHECK: it lt 2269# CHECK: umaallt r3, r4, r5, r6 2270 22710xe5 0xfb 0x66 0x34 22720xb8 0xbf 22730xe5 0xfb 0x66 0x34 2274 2275 2276#------------------------------------------------------------------------------ 2277# UMLAL 2278#------------------------------------------------------------------------------ 2279# CHECK: umlal r2, r4, r6, r8 2280# CHECK: it gt 2281# CHECK: umlalgt r6, r1, r2, r6 2282 22830xe6 0xfb 0x08 0x24 22840xc8 0xbf 22850xe2 0xfb 0x06 0x61 2286 2287 2288#------------------------------------------------------------------------------ 2289# UMULL 2290#------------------------------------------------------------------------------ 2291# CHECK: umull r2, r4, r6, r8 2292# CHECK: it gt 2293# CHECK: umullgt r6, r1, r2, r6 2294 22950xa6 0xfb 0x08 0x24 22960xc8 0xbf 22970xa2 0xfb 0x06 0x61 2298 2299 2300#------------------------------------------------------------------------------ 2301# UQADD16/UQADD8 2302#------------------------------------------------------------------------------ 2303# CHECK: uqadd16 r1, r2, r3 2304# CHECK: uqadd8 r3, r4, r8 2305# CHECK: ite gt 2306# CHECK: uqadd16gt r4, r7, r9 2307# CHECK: uqadd8le r8, r1, r2 2308 23090x92 0xfa 0x53 0xf1 23100x84 0xfa 0x58 0xf3 23110xcc 0xbf 23120x97 0xfa 0x59 0xf4 23130x81 0xfa 0x52 0xf8 2314 2315 2316#------------------------------------------------------------------------------ 2317# UQASX/UQSAX 2318#------------------------------------------------------------------------------ 2319# CHECK: uqasx r1, r2, r3 2320# CHECK: uqsax r3, r4, r8 2321# CHECK: ite gt 2322# CHECK: uqasxgt r4, r7, r9 2323# CHECK: uqsaxle r8, r1, r2 2324 23250xa2 0xfa 0x53 0xf1 23260xe4 0xfa 0x58 0xf3 23270xcc 0xbf 23280xa7 0xfa 0x59 0xf4 23290xe1 0xfa 0x52 0xf8 2330 2331 2332#------------------------------------------------------------------------------ 2333# UQSUB16/UQSUB8 2334#------------------------------------------------------------------------------ 2335# CHECK: uqsub8 r8, r2, r9 2336# CHECK: uqsub16 r1, r9, r7 2337# CHECK: ite gt 2338# CHECK: uqsub8gt r3, r1, r6 2339# CHECK: uqsub16le r4, r6, r4 2340 23410xc2 0xfa 0x59 0xf8 23420xd9 0xfa 0x57 0xf1 23430xcc 0xbf 23440xc1 0xfa 0x56 0xf3 23450xd6 0xfa 0x54 0xf4 2346 2347 2348#------------------------------------------------------------------------------ 2349# UQSUB16/UQSUB8 2350#------------------------------------------------------------------------------ 2351# CHECK: usad8 r1, r9, r7 2352# CHECK: usada8 r8, r2, r9, r12 2353# CHECK: ite gt 2354# CHECK: usada8gt r3, r1, r6, r9 2355# CHECK: usad8le r4, r6, r4 2356 23570x79 0xfb 0x07 0xf1 23580x72 0xfb 0x09 0xc8 23590xcc 0xbf 23600x71 0xfb 0x06 0x93 23610x76 0xfb 0x04 0xf4 2362 2363 2364#------------------------------------------------------------------------------ 2365# USAT 2366#------------------------------------------------------------------------------ 2367# CHECK: usat r8, #1, r10 2368# CHECK: usat r8, #4, r10 2369# CHECK: usat r8, #5, r10, lsl #31 2370# CHECK: usat r8, #16, r10, asr #1 2371 23720x8a 0xf3 0x01 0x08 23730x8a 0xf3 0x04 0x08 23740x8a 0xf3 0xc5 0x78 23750xaa 0xf3 0x50 0x08 2376 2377 2378#------------------------------------------------------------------------------ 2379# USAT16 2380#------------------------------------------------------------------------------ 2381# CHECK: usat16 r2, #2, r7 2382# CHECK: usat16 r3, #15, r5 2383 23840xa7 0xf3 0x02 0x02 23850xa5 0xf3 0x0f 0x03 2386 2387 2388#------------------------------------------------------------------------------ 2389# USAX 2390#------------------------------------------------------------------------------ 2391# CHECK: usax r2, r3, r4 2392# CHECK: it ne 2393# CHECK: usaxne r6, r1, r9 2394# CHECK: usax r2, r3, r4 2395# CHECK: it ne 2396# CHECK: usaxne r6, r1, r9 2397 23980xe3 0xfa 0x44 0xf2 23990x18 0xbf 24000xe1 0xfa 0x49 0xf6 24010xe3 0xfa 0x44 0xf2 24020x18 0xbf 24030xe1 0xfa 0x49 0xf6 2404 2405 2406#------------------------------------------------------------------------------ 2407# USUB16/USUB8 2408#------------------------------------------------------------------------------ 2409# CHECK: usub16 r4, r2, r7 2410# CHECK: usub8 r1, r8, r5 2411# CHECK: ite hi 2412# CHECK: usub16hi r1, r1, r3 2413# CHECK: usub8ls r9, r2, r3 2414 24150xd2 0xfa 0x47 0xf4 24160xc8 0xfa 0x45 0xf1 24170x8c 0xbf 24180xd1 0xfa 0x43 0xf1 24190xc2 0xfa 0x43 0xf9 2420 2421 2422#------------------------------------------------------------------------------ 2423# UXTAB 2424#------------------------------------------------------------------------------ 2425# CHECK: uxtab r2, r3, r4 2426# CHECK: uxtab r4, r5, r6 2427# CHECK: it lt 2428# CHECK: uxtablt r6, r2, r9, ror #8 2429# CHECK: uxtab r5, r1, r4, ror #16 2430# CHECK: uxtab r7, r8, r3, ror #24 2431 24320x53 0xfa 0x84 0xf2 24330x55 0xfa 0x86 0xf4 24340xb8 0xbf 24350x52 0xfa 0x99 0xf6 24360x51 0xfa 0xa4 0xf5 24370x58 0xfa 0xb3 0xf7 2438 2439 2440#------------------------------------------------------------------------------ 2441# UXTAB16 2442#------------------------------------------------------------------------------ 2443# CHECK: it ge 2444# CHECK: uxtab16ge r0, r1, r4 2445# CHECK: uxtab16 r6, r2, r7 2446# CHECK: uxtab16 r3, r5, r8, ror #8 2447# CHECK: uxtab16 r3, r2, r1, ror #16 2448# CHECK: it eq 2449# CHECK: uxtab16eq r1, r2, r3, ror #24 2450 24510xa8 0xbf 24520x31 0xfa 0x84 0xf0 24530x32 0xfa 0x87 0xf6 24540x35 0xfa 0x98 0xf3 24550x32 0xfa 0xa1 0xf3 24560x08 0xbf 24570x32 0xfa 0xb3 0xf1 2458 2459 2460#------------------------------------------------------------------------------ 2461# UXTAH 2462#------------------------------------------------------------------------------ 2463# CHECK: uxtah r1, r3, r9 2464# CHECK: it hi 2465# CHECK: uxtahhi r6, r1, r6 2466# CHECK: uxtah r3, r8, r3, ror #8 2467# CHECK: it lo 2468# CHECK: uxtahlo r2, r2, r4, ror #16 2469# CHECK: uxtah r9, r3, r3, ror #24 2470 24710x13 0xfa 0x89 0xf1 24720x88 0xbf 24730x11 0xfa 0x86 0xf6 24740x18 0xfa 0x93 0xf3 24750x38 0xbf 24760x12 0xfa 0xa4 0xf2 24770x13 0xfa 0xb3 0xf9 2478 2479 2480#------------------------------------------------------------------------------ 2481# UXTB 2482#------------------------------------------------------------------------------ 2483# CHECK: it ge 2484# CHECK: uxtbge r2, r4 2485# CHECK: uxtb r5, r6 2486# CHECK: uxtb.w r6, r9, ror #8 2487# CHECK: it lo 2488# CHECK: uxtblo.w r5, r1, ror #16 2489# CHECK: uxtb.w r8, r3, ror #24 2490 24910xa8 0xbf 24920xe2 0xb2 24930xf5 0xb2 24940x5f 0xfa 0x99 0xf6 24950x38 0xbf 24960x5f 0xfa 0xa1 0xf5 24970x5f 0xfa 0xb3 0xf8 2498 2499 2500#------------------------------------------------------------------------------ 2501# UXTB16 2502#------------------------------------------------------------------------------ 2503# CHECK: uxtb16 r1, r4 2504# CHECK: uxtb16 r6, r7 2505# CHECK: it hs 2506# CHECK: uxtb16hs r3, r5, ror #8 2507# CHECK: uxtb16 r3, r1, ror #16 2508# CHECK: it ge 2509# CHECK: uxtb16ge r2, r3, ror #24 2510 25110x3f 0xfa 0x84 0xf1 25120x3f 0xfa 0x87 0xf6 25130x28 0xbf 25140x3f 0xfa 0x95 0xf3 25150x3f 0xfa 0xa1 0xf3 25160xa8 0xbf 25170x3f 0xfa 0xb3 0xf2 2518 2519 2520#------------------------------------------------------------------------------ 2521# UXTH 2522#------------------------------------------------------------------------------ 2523# CHECK: it ne 2524# CHECK: uxthne.w r3, r9 2525# CHECK: uxth r1, r6 2526# CHECK: uxth.w r3, r8, ror #8 2527# CHECK: it le 2528# CHECK: uxthle.w r2, r2, ror #16 2529# CHECK: uxth.w r9, r3, ror #24 2530 25310x18 0xbf 25320x1f 0xfa 0x89 0xf3 25330xb1 0xb2 25340x1f 0xfa 0x98 0xf3 25350xd8 0xbf 25360x1f 0xfa 0xa2 0xf2 25370x1f 0xfa 0xb3 0xf9 2538 2539 2540#------------------------------------------------------------------------------ 2541# WFE/WFI/YIELD 2542#------------------------------------------------------------------------------ 2543# CHECK: wfe 2544# CHECK: wfi 2545# CHECK: yield 2546# CHECK: itet lt 2547# CHECK: wfelt 2548# CHECK: wfige 2549# CHECK: yieldlt 2550 25510x20 0xbf 25520x30 0xbf 25530x10 0xbf 25540xb6 0xbf 25550x20 0xbf 25560x30 0xbf 25570x10 0xbf 2558 2559