2733 lines · plain
1# RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s2 3#------------------------------------------------------------------------------4# ADC (immediate)5#------------------------------------------------------------------------------6# CHECK: adc r0, r1, #47# CHECK: adcs r0, r1, #08# CHECK: adc r1, r2, #2559# CHECK: adc r3, r7, #557064510# CHECK: adc r8, r12, #285217024011# CHECK: adc r9, r7, #277909648512# CHECK: adc r5, r3, #226492416013# CHECK: adc r4, r2, #213909504014# CHECK: adc r4, r2, #166415# CHECK: adc r0, r0, #116# CHECK: adc r1, r1, #213909504017 180x41 0xf1 0x04 0x00190x51 0xf1 0x00 0x00200x42 0xf1 0xff 0x01210x47 0xf1 0x55 0x13220x4c 0xf1 0xaa 0x28230x47 0xf1 0xa5 0x39240x43 0xf1 0x07 0x45250x42 0xf1 0xff 0x44260x42 0xf5 0xd0 0x64270x40 0xf1 0x01 0x00280x41 0xf1 0xff 0x4129 30#------------------------------------------------------------------------------31# ADC (register)32#------------------------------------------------------------------------------33# CHECK: adc.w r4, r5, r634# CHECK: adcs.w r4, r5, r635# CHECK: adc.w r9, r1, r336# CHECK: adcs.w r9, r1, r337# CHECK: adc.w r0, r1, r3, ror #438# CHECK: adcs.w r0, r1, r3, lsl #739# CHECK: adc.w r0, r1, r3, lsr #3140# CHECK: adcs.w r0, r1, r3, asr #3241# CHECK: adc.w r4, r4, r542# CHECK: adc.w r9, r9, r143# CHECK: adc.w r0, r0, r1, ror #444# CHECK: adc.w r0, r0, r1, lsr #3145 460x45 0xeb 0x06 0x04470x55 0xeb 0x06 0x04480x41 0xeb 0x03 0x09490x51 0xeb 0x03 0x09500x41 0xeb 0x33 0x10510x51 0xeb 0xc3 0x10520x41 0xeb 0xd3 0x70530x51 0xeb 0x23 0x00540x44 0xeb 0x05 0x04550x49 0xeb 0x01 0x09560x40 0xeb 0x31 0x10570x40 0xeb 0xd1 0x7058 59 60#------------------------------------------------------------------------------61# ADD (immediate)62#------------------------------------------------------------------------------63# CHECK: itet eq64# CHECK: addeq r1, r2, #465# CHECK: addwne r5, r3, #102366# CHECK: addweq r4, r5, #29367# CHECK: add.w r2, sp, #102468# CHECK: add.w r2, r8, #6528069# CHECK: addw r2, r3, #25770# CHECK: add.w r12, r6, #25671# CHECK: addw r12, r6, #25672# CHECK: adds.w r1, r2, #49673 740x0a 0xbf750x11 0x1d760x03 0xf2 0xff 0x35770x05 0xf2 0x25 0x14780x0d 0xf5 0x80 0x62790x08 0xf5 0x7f 0x42800x03 0xf2 0x01 0x12810x06 0xf5 0x80 0x7c820x06 0xf2 0x00 0x1c830x12 0xf5 0xf8 0x7184 85 86#------------------------------------------------------------------------------87# ADD (register)88#------------------------------------------------------------------------------89# CHECK: add.w r1, r2, r890# CHECK: add.w r5, r9, r2, asr #3291# CHECK: adds.w r7, r3, r1, lsl #3192# CHECK: adds.w r0, r3, r6, lsr #2593# CHECK: add.w r4, r8, r1, ror #1294 950x02 0xeb 0x08 0x01960x09 0xeb 0x22 0x05970x13 0xeb 0xc1 0x77980x13 0xeb 0x56 0x60990x08 0xeb 0x31 0x34100 101 102#------------------------------------------------------------------------------103# ADR104#------------------------------------------------------------------------------105# CHECK: adr.w r11, #-3270106# CHECK-NEXT: adr.w r11, #-826107# CHECK-NEXT: subw r1, pc, #0108# CHECK-NEXT: adr.w r0, #10241090xaf 0xf6 0xc6 0x4b1100xaf 0xf2 0x3a 0x3b1110xaf 0xf2 0x00 0x011120x0f,0xf2,0x00,0x40113#------------------------------------------------------------------------------114# AND (immediate)115#------------------------------------------------------------------------------116# CHECK: and r2, r5, #1044480117# CHECK: ands r3, r12, #15118# CHECK: and r1, r1, #255119 1200x05 0xf4 0x7f 0x221210x1c 0xf0 0x0f 0x031220x01 0xf0 0xff 0x01123 124 125#------------------------------------------------------------------------------126# AND (register)127#------------------------------------------------------------------------------128# CHECK: and.w r4, r9, r8129# CHECK: and.w r1, r4, r8, asr #3130# CHECK: ands.w r2, r1, r7, lsl #1131# CHECK: ands.w r4, r5, r2, lsr #20132# CHECK: and.w r9, r12, r1, ror #17133 1340x09 0xea 0x08 0x041350x04 0xea 0xe8 0x011360x11 0xea 0x47 0x021370x15 0xea 0x12 0x541380x0c 0xea 0x71 0x49139 140#------------------------------------------------------------------------------141# ASR (immediate)142#------------------------------------------------------------------------------143# CHECK: asr.w r2, r3, #12144# CHECK: asrs.w r8, r3, #32145# CHECK: asrs.w r2, r3, #1146# CHECK: asr.w r2, r3, #4147# CHECK: asrs.w r2, r12, #15148 149# CHECK: asr.w r3, r3, #19150# CHECK: asrs.w r8, r8, #2151# CHECK: asrs.w r7, r7, #5152# CHECK: asr.w r12, r12, #21153 1540x4f 0xea 0x23 0x321550x5f 0xea 0x23 0x081560x5f 0xea 0x63 0x021570x4f 0xea 0x23 0x121580x5f 0xea 0xec 0x32159 1600x4f 0xea 0xe3 0x431610x5f 0xea 0xa8 0x081620x5f 0xea 0x67 0x171630x4f 0xea 0x6c 0x5c164 165 166#------------------------------------------------------------------------------167# ASR (register)168#------------------------------------------------------------------------------169# CHECK: asr.w r3, r4, r2170# CHECK: asr.w r1, r1, r2171# CHECK: asrs.w r3, r4, r8172 1730x44 0xfa 0x02 0xf31740x41 0xfa 0x02 0xf11750x54 0xfa 0x08 0xf3176 177#------------------------------------------------------------------------------178# B179#------------------------------------------------------------------------------180# CHECK: bmi.w #-183396181 1820x13 0xf5 0xce 0xa9183 184# CHECK: b.w #208962185# CHECK: b.w #-16777216186 1870x33 0xf0 0x21 0xb8 # rdar://125857951880x00 0xf4 0x00 0x90189 190#------------------------------------------------------------------------------191# BFC192#------------------------------------------------------------------------------193# CHECK: bfc r5, #3, #17194# CHECK: it lo195# CHECK: bfclo r5, #3, #17196 1970x6f 0xf3 0xd3 0x051980x38 0xbf1990x6f 0xf3 0xd3 0x05200 201 202#------------------------------------------------------------------------------203# BFI204#------------------------------------------------------------------------------205# CHECK: bfi r5, r2, #3, #17206# CHECK: it ne207# CHECK: bfine r5, r2, #3, #17208# CHECK: bfi r6, r0, #0, #32209# CHECK: bfi r6, r0, #31, #1210 2110x62 0xf3 0xd3 0x052120x18 0xbf2130x62 0xf3 0xd3 0x052140x60 0xf3 0x1f 0x062150x60 0xf3 0xdf 0x76216 217 218#------------------------------------------------------------------------------219# BIC220#------------------------------------------------------------------------------221# CHECK: bic r10, r1, #15222# CHECK: bic.w r12, r3, r6223# CHECK: bic.w r11, r2, r6, lsl #12224# CHECK: bic.w r8, r4, r1, lsr #11225# CHECK: bic.w r7, r5, r7, lsr #15226# CHECK: bic.w r6, r7, r9, asr #32227# CHECK: bic.w r5, r6, r8, ror #1228 229# CHECK: bic r1, r1, #15230# CHECK: bic.w r1, r1, r1231# CHECK: bic.w r4, r4, r2, lsl #31232# CHECK: bic.w r6, r6, r3, lsr #12233# CHECK: bic.w r7, r7, r4, lsr #7234# CHECK: bic.w r8, r8, r5, asr #15235# CHECK: bic.w r12, r12, r6, ror #29236 2370x21 0xf0 0x0f 0x0a2380x23 0xea 0x06 0x0c2390x22 0xea 0x06 0x3b2400x24 0xea 0xd1 0x282410x25 0xea 0xd7 0x372420x27 0xea 0x29 0x062430x26 0xea 0x78 0x05244 2450x21 0xf0 0x0f 0x012460x21 0xea 0x01 0x012470x24 0xea 0xc2 0x742480x26 0xea 0x13 0x362490x27 0xea 0xd4 0x172500x28 0xea 0xe5 0x382510x2c 0xea 0x76 0x7c252 253 254#------------------------------------------------------------------------------255# BXJ256#------------------------------------------------------------------------------257# CHECK: bxj r5258# CHECK: it ne259# CHECK: bxjne r7260 2610xc5 0xf3 0x00 0x8f2620x18 0xbf2630xc7 0xf3 0x00 0x8f264 265 266#------------------------------------------------------------------------------267# CBZ/CBNZ268#------------------------------------------------------------------------------269# CHECK: cbnz r7, #6270# CHECK: cbnz r7, #12271# CHECK: cbz r4, #64272 2730x1f 0xb92740x37 0xb92750x04 0xb3276 277 278#------------------------------------------------------------------------------279# CDP/CDP2280#------------------------------------------------------------------------------281# CHECK: cdp p7, #1, c1, c1, c1, #4282# CHECK: cdp2 p7, #1, c1, c1, c1, #4283 2840x11 0xee 0x81 0x172850x11 0xfe 0x81 0x17286 287 288#------------------------------------------------------------------------------289# CLREX290#------------------------------------------------------------------------------291#CHECK: clrex292#CHECK: it ne293#CHECK: clrexne294 2950xbf 0xf3 0x2f 0x8f2960x18 0xbf2970xbf 0xf3 0x2f 0x8f298 299 300#------------------------------------------------------------------------------301# CLZ302#------------------------------------------------------------------------------303#CHECK: clz r1, r2304#CHECK: it eq305#CHECK: clzeq r1, r2306 3070xb2 0xfa 0x82 0xf13080x08 0xbf3090xb2 0xfa 0x82 0xf1310 311 312#------------------------------------------------------------------------------313# CMN314#------------------------------------------------------------------------------315#CHECK: cmn.w r1, #15316#CHECK: cmn.w r8, r6317#CHECK: cmn.w r1, r6, lsl #10318#CHECK: cmn.w r1, r6, lsr #10319#CHECK: cmn.w sp, r6, lsr #10320#CHECK: cmn.w r1, r6, asr #10321#CHECK: cmn.w r1, r6, ror #10322 3230x11 0xf1 0x0f 0x0f3240x18 0xeb 0x06 0x0f3250x11 0xeb 0x86 0x2f3260x11 0xeb 0x96 0x2f3270x1d 0xeb 0x96 0x2f3280x11 0xeb 0xa6 0x2f3290x11 0xeb 0xb6 0x2f330 331 332#------------------------------------------------------------------------------333# CMP334#------------------------------------------------------------------------------335#CHECK: cmp.w r5, #65280336#CHECK: cmp.w r4, r12337#CHECK: cmp.w r9, r6, lsl #12338#CHECK: cmp.w r3, r7, lsr #31339#CHECK: cmp.w sp, r6, lsr #1340#CHECK: cmp.w r2, r5, asr #24341#CHECK: cmp.w r1, r4, ror #15342 3430xb5 0xf5 0x7f 0x4f3440xb4 0xeb 0x0c 0x0f3450xb9 0xeb 0x06 0x3f3460xb3 0xeb 0xd7 0x7f3470xbd 0xeb 0x56 0x0f3480xb2 0xeb 0x25 0x6f3490xb1 0xeb 0xf4 0x3f350 351 352#------------------------------------------------------------------------------353# DBG354#------------------------------------------------------------------------------355#CHECK: dbg #5356#CHECK: dbg #0357#CHECK: dbg #15358 3590xaf 0xf3 0xf5 0x803600xaf 0xf3 0xf0 0x803610xaf 0xf3 0xff 0x80362 363 364#------------------------------------------------------------------------------365# DMB366#------------------------------------------------------------------------------367#CHECK: dmb sy368#CHECK: dmb st369#CHECK: dmb #0xd370#CHECK: dmb #0xc371#CHECK: dmb ish372#CHECK: dmb ishst373#CHECK: dmb #0x9374#CHECK: dmb #0x8375#CHECK: dmb nsh376#CHECK: dmb nshst377#CHECK: dmb #0x5378#CHECK: dmb #0x4379#CHECK: dmb osh380#CHECK: dmb oshst381#CHECK: dmb #0x1382#CHECK: dmb #0x0383 3840xbf 0xf3 0x5f 0x8f3850xbf 0xf3 0x5e 0x8f3860xbf 0xf3 0x5d 0x8f3870xbf 0xf3 0x5c 0x8f3880xbf 0xf3 0x5b 0x8f3890xbf 0xf3 0x5a 0x8f3900xbf 0xf3 0x59 0x8f3910xbf 0xf3 0x58 0x8f3920xbf 0xf3 0x57 0x8f3930xbf 0xf3 0x56 0x8f3940xbf 0xf3 0x55 0x8f3950xbf 0xf3 0x54 0x8f3960xbf 0xf3 0x53 0x8f3970xbf 0xf3 0x52 0x8f3980xbf 0xf3 0x51 0x8f3990xbf 0xf3 0x50 0x8f400 401 402#------------------------------------------------------------------------------403# DSB404#------------------------------------------------------------------------------405#CHECK: dsb sy406#CHECK: dsb st407#CHECK: dsb #0xd408#CHECK: dsb #0xc409#CHECK: dsb ish410#CHECK: dsb ishst411#CHECK: dsb #0x9412#CHECK: dsb #0x8413#CHECK: dsb nsh414#CHECK: dsb nshst415#CHECK: dsb #0x5416#CHECK: pssbb417#CHECK: dsb osh418#CHECK: dsb oshst419#CHECK: dsb #0x1420#CHECK: ssbb421 4220xbf 0xf3 0x4f 0x8f4230xbf 0xf3 0x4e 0x8f4240xbf 0xf3 0x4d 0x8f4250xbf 0xf3 0x4c 0x8f4260xbf 0xf3 0x4b 0x8f4270xbf 0xf3 0x4a 0x8f4280xbf 0xf3 0x49 0x8f4290xbf 0xf3 0x48 0x8f4300xbf 0xf3 0x47 0x8f4310xbf 0xf3 0x46 0x8f4320xbf 0xf3 0x45 0x8f4330xbf 0xf3 0x44 0x8f4340xbf 0xf3 0x43 0x8f4350xbf 0xf3 0x42 0x8f4360xbf 0xf3 0x41 0x8f4370xbf 0xf3 0x40 0x8f438 439 440#------------------------------------------------------------------------------441# EOR442#------------------------------------------------------------------------------443#CHECK: eor r4, r5, #61440444#CHECK: eor.w r4, r5, r6445#CHECK: eor.w r4, r5, r6, lsl #5446#CHECK: eor.w r4, r5, r6, lsr #5447#CHECK: eor.w r4, r5, r6, lsr #5448#CHECK: eor.w r4, r5, r6, asr #5449#CHECK: eor.w r4, r5, r6, ror #5450 4510x85 0xf4 0x70 0x444520x85 0xea 0x06 0x044530x85 0xea 0x46 0x144540x85 0xea 0x56 0x144550x85 0xea 0x56 0x144560x85 0xea 0x66 0x144570x85 0xea 0x76 0x14458 459 460#------------------------------------------------------------------------------461# ISB462#------------------------------------------------------------------------------463#CHECK: isb sy464#CHECK: isb #0xa465 4660xbf 0xf3 0x6f 0x8f4670xbf 0xf3 0x6a 0x8f468 469#------------------------------------------------------------------------------470# IT471#------------------------------------------------------------------------------472# Test encodings of a few full IT blocks, not just the IT instruction473 474# CHECK: iteet eq475# CHECK: addeq r0, r1, r2476# CHECK: nopne477# CHECK: subne r5, r6, r7478# CHECK: addeq r1, r2, #4479 4800x0d 0xbf4810x88 0x184820x00 0xbf4830xf5 0x1b4840x11 0x1d485 486# CHECK: ittee ls487# CHECK: addls r0, r1, r2488# CHECK: nopls489# CHECK: subhi r5, r6, r7490# CHECK: addhi r1, r2, #4491 4920x99 0xbf4930x88 0x184940x00 0xbf4950xf5 0x1b4960x11 0x1d497 498 499#------------------------------------------------------------------------------500# LDMIA501#------------------------------------------------------------------------------502# CHECK: ldm.w r4, {r4, r5, r8, r9}503# CHECK: ldm.w r4, {r5, r6}504# CHECK: ldm.w r5!, {r3, r8}505# CHECK: ldm.w r4, {r4, r5, r8, r9}506# CHECK: ldm.w r4, {r5, r6}507# CHECK: ldm.w r5!, {r3, r8}508# CHECK: ldm.w r5!, {r1, r2}509# CHECK: ldm.w r2, {r1, r2}510 511# CHECK: ldm.w r4, {r4, r5, r8, r9}512# CHECK: ldm.w r4, {r5, r6}513# CHECK: ldm.w r5!, {r3, r8}514# CHECK: ldm.w r4, {r4, r5, r8, r9}515# CHECK: ldm.w r4, {r5, r6}516# CHECK: ldm.w r5!, {r3, r8}517# CHECK: ldm.w r5!, {r3, r8}518 5190x94 0xe8 0x30 0x035200x94 0xe8 0x60 0x005210xb5 0xe8 0x08 0x015220x94 0xe8 0x30 0x035230x94 0xe8 0x60 0x005240xb5 0xe8 0x08 0x015250xb5 0xe8 0x06 0x005260x92 0xe8 0x06 0x00527 5280x94 0xe8 0x30 0x035290x94 0xe8 0x60 0x005300xb5 0xe8 0x08 0x015310x94 0xe8 0x30 0x035320x94 0xe8 0x60 0x005330xb5 0xe8 0x08 0x015340xb5 0xe8 0x08 0x01535 536 537#------------------------------------------------------------------------------538# LDMDB539#------------------------------------------------------------------------------540# CHECK: ldmdb r4, {r4, r5, r8, r9}541# CHECK: ldmdb r4, {r5, r6}542# CHECK: ldmdb r5!, {r3, r8}543# CHECK: ldmdb r5!, {r3, r8}544 5450x14 0xe9 0x30 0x035460x14 0xe9 0x60 0x005470x35 0xe9 0x08 0x015480x35 0xe9 0x08 0x01549 550 551#------------------------------------------------------------------------------552# LDR(immediate)553#------------------------------------------------------------------------------554# CHECK: ldr r5, [r5, #-4]555# CHECK: ldr r5, [r6, #32]556# CHECK: ldr.w r5, [r6, #33]557# CHECK: ldr.w r5, [r6, #257]558# CHECK: ldr.w pc, [r7, #257]559 5600x55 0xf8 0x04 0x5c5610x35 0x6a5620xd6 0xf8 0x21 0x505630xd6 0xf8 0x01 0x515640xd7 0xf8 0x01 0xf1565 566 567#------------------------------------------------------------------------------568# LDR(literal)569#------------------------------------------------------------------------------570# CHECK: ldr.w r4, [pc, #-0]571# CHECK: ldr.w r2, [pc, #-40]572# CHECK: ldr.w r1, [pc, #1024]5730x5f 0xf8 0x00 0x405740x5f 0xf8 0x28 0x205750xdf 0xf8 0x00 0x14576 577 578#------------------------------------------------------------------------------579# LDR(register)580#------------------------------------------------------------------------------581# CHECK: ldr.w r1, [r8, r1]582# CHECK: ldr.w r4, [r5, r2]583# CHECK: ldr.w r6, [r0, r2, lsl #3]584# CHECK: ldr.w r8, [r8, r2, lsl #2]585# CHECK: ldr.w r7, [sp, r2, lsl #1]586# CHECK: ldr.w r7, [sp, r2]587# CHECK: ldr pc, [sp], #12588# CHECK: ldr r2, [r4, #255]!589# CHECK: ldr r8, [sp, #4]!590# CHECK: ldr lr, [sp, #-4]!591# CHECK: ldr lr, [sp, #0]!592# CHECK: ldr r2, [r4], #255593# CHECK: ldr r8, [sp], #4594# CHECK: ldr lr, [sp], #-4595 5960x58 0xf8 0x01 0x105970x55 0xf8 0x02 0x405980x50 0xf8 0x32 0x605990x58 0xf8 0x22 0x806000x5d 0xf8 0x12 0x706010x5d 0xf8 0x02 0x706020x5d 0xf8 0x0c 0xfb6030x54 0xf8 0xff 0x2f6040x5d 0xf8 0x04 0x8f6050x5d 0xf8 0x04 0xed6060x5d 0xf8 0x00 0xef6070x54 0xf8 0xff 0x2b6080x5d 0xf8 0x04 0x8b6090x5d 0xf8 0x04 0xe9610 611 612#------------------------------------------------------------------------------613# LDRB(immediate)614#------------------------------------------------------------------------------615# CHECK: ldrb r5, [r5, #-4]616# CHECK: ldrb.w r5, [r6, #32]617# CHECK: ldrb.w r5, [r6, #33]618# CHECK: ldrb.w r5, [r6, #257]619# CHECK: ldrb.w lr, [r7, #257]620 6210x15 0xf8 0x04 0x5c6220x96 0xf8 0x20 0x506230x96 0xf8 0x21 0x506240x96 0xf8 0x01 0x516250x97 0xf8 0x01 0xe1626 627 628#------------------------------------------------------------------------------629# LDRB(register)630#------------------------------------------------------------------------------631# CHECK: ldrb.w r1, [r8, r1]632# CHECK: ldrb.w r4, [r5, r2]633# CHECK: ldrb.w r6, [r0, r2, lsl #3]634# CHECK: ldrb.w r8, [r8, r2, lsl #2]635# CHECK: ldrb.w r7, [sp, r2, lsl #1]636# CHECK: ldrb.w r7, [sp, r2]637# CHECK: ldrb r5, [r8, #255]!638# CHECK: ldrb r2, [r5, #4]!639# CHECK: ldrb r1, [r4, #-4]!640# CHECK: ldrb r1, [r4, #0]!641# CHECK: ldrb lr, [r3], #255642# CHECK: ldrb r9, [r2], #4643# CHECK: ldrb r3, [sp], #-4644 6450x18 0xf8 0x01 0x106460x15 0xf8 0x02 0x406470x10 0xf8 0x32 0x606480x18 0xf8 0x22 0x806490x1d 0xf8 0x12 0x706500x1d 0xf8 0x02 0x706510x18 0xf8 0xff 0x5f6520x15 0xf8 0x04 0x2f6530x14 0xf8 0x04 0x1d6540x14 0xf8 0x00 0x1f6550x13 0xf8 0xff 0xeb6560x12 0xf8 0x04 0x9b6570x1d 0xf8 0x04 0x39658 659 660#------------------------------------------------------------------------------661# LDRB(literal)662#------------------------------------------------------------------------------663# CHECK: ldrb.w r6, [pc, #-0]664# CHECK: ldrb.w r10, [pc, #227]665# CHECK: ldrb.w r5, [pc, #0]6660x1f 0xf8 0x00 0x606670x9f 0xf8 0xe3 0xa06680x9f 0xf8 0x00 0x50669 670 671#------------------------------------------------------------------------------672# LDRBT673#------------------------------------------------------------------------------674# CHECK: ldrbt r1, [r2]675# CHECK: ldrbt r1, [r8]676# CHECK: ldrbt r1, [r8, #3]677# CHECK: ldrbt r1, [r8, #255]678 6790x12 0xf8 0x00 0x1e6800x18 0xf8 0x00 0x1e6810x18 0xf8 0x03 0x1e6820x18 0xf8 0xff 0x1e683 684 685#------------------------------------------------------------------------------686# LDRD(immediate)687#------------------------------------------------------------------------------688# CHECK: ldrd r3, r5, [r6, #24]689# CHECK: ldrd r3, r5, [r6, #24]!690# CHECK: ldrd r3, r5, [r6], #4691# CHECK: ldrd r3, r5, [r6], #-8692# CHECK: ldrd r3, r5, [r6]693# CHECK: ldrd r8, r1, [r3]694# CHECK: ldrd r0, r1, [r2], #-0695# CHECK: ldrd r0, r1, [r2, #-0]!696# CHECK: ldrd r0, r1, [r2, #0]!697# CHECK: ldrd r0, r1, [r2, #-0]698# CHECK: ldrd r1, r1, [r0], #0699 7000xd6 0xe9 0x06 0x357010xf6 0xe9 0x06 0x357020xf6 0xe8 0x01 0x357030x76 0xe8 0x02 0x357040xd6 0xe9 0x00 0x357050xd3 0xe9 0x00 0x817060x72 0xe8 0x00 0x017070x72 0xe9 0x00 0x017080xf2 0xe9 0x00 0x017090x52 0xe9 0x00 0x017100xf0 0xe8 0x00 0x11711 712 713#------------------------------------------------------------------------------714# FIXME: LDRD(literal)715#------------------------------------------------------------------------------716 717 718#------------------------------------------------------------------------------719# LDREX/LDREXB/LDREXH/LDREXD720#------------------------------------------------------------------------------721# CHECK: ldrex r1, [r4]722# CHECK: ldrex r8, [r4]723# CHECK: ldrex r2, [sp, #128]724# CHECK: ldrexb r5, [r7]725# CHECK: ldrexh r9, [r12]726# CHECK: ldrexd r9, r3, [r4]727 7280x54 0xe8 0x00 0x1f7290x54 0xe8 0x00 0x8f7300x5d 0xe8 0x20 0x2f7310xd7 0xe8 0x4f 0x5f7320xdc 0xe8 0x5f 0x9f7330xd4 0xe8 0x7f 0x93734 735 736#------------------------------------------------------------------------------737# LDRH(immediate)738#------------------------------------------------------------------------------739# CHECK: ldrh r5, [r5, #-4]740# CHECK: ldrh r5, [r6, #32]741# CHECK: ldrh.w r5, [r6, #33]742# CHECK: ldrh.w r5, [r6, #257]743# CHECK: ldrh.w lr, [r7, #257]744 7450x35 0xf8 0x04 0x5c7460x35 0x8c7470xb6 0xf8 0x21 0x507480xb6 0xf8 0x01 0x517490xb7 0xf8 0x01 0xe1750 751 752#------------------------------------------------------------------------------753# LDRH(register)754#------------------------------------------------------------------------------755# CHECK: ldrh.w r1, [r8, r1]756# CHECK: ldrh.w r4, [r5, r2]757# CHECK: ldrh.w r6, [r0, r2, lsl #3]758# CHECK: ldrh.w r8, [r8, r2, lsl #2]759# CHECK: ldrh.w r7, [sp, r2, lsl #1]760# CHECK: ldrh.w r7, [sp, r2]761# CHECK: ldrh r5, [r8, #255]!762# CHECK: ldrh r2, [r5, #4]!763# CHECK: ldrh r1, [r4, #-4]!764# CHECK: ldrh r1, [r4, #0]!765# CHECK: ldrh lr, [r3], #255766# CHECK: ldrh r9, [r2], #4767# CHECK: ldrh r3, [sp], #-4768 7690x38 0xf8 0x01 0x107700x35 0xf8 0x02 0x407710x30 0xf8 0x32 0x607720x38 0xf8 0x22 0x807730x3d 0xf8 0x12 0x707740x3d 0xf8 0x02 0x707750x38 0xf8 0xff 0x5f7760x35 0xf8 0x04 0x2f7770x34 0xf8 0x04 0x1d7780x34 0xf8 0x00 0x1f7790x33 0xf8 0xff 0xeb7800x32 0xf8 0x04 0x9b7810x3d 0xf8 0x04 0x39782 783 784#------------------------------------------------------------------------------785# LDRH(literal)786#------------------------------------------------------------------------------787# CHECK: ldrh.w r7, [pc, #-0]788# CHECK: ldrh.w r5, [pc, #121]789# CHECK: ldrh.w r4, [pc, #0]7900x3f 0xf8 0x00 0x707910xbf 0xf8 0x79 0x507920xbf 0xf8 0x00 0x40793 794 795#------------------------------------------------------------------------------796# LDRSB(immediate)797#------------------------------------------------------------------------------798# CHECK: ldrsb r5, [r5, #-4]799# CHECK: ldrsb.w r5, [r6, #32]800# CHECK: ldrsb.w r5, [r6, #33]801# CHECK: ldrsb.w r5, [r6, #257]802# CHECK: ldrsb.w lr, [r7, #257]803 8040x15 0xf9 0x04 0x5c8050x96 0xf9 0x20 0x508060x96 0xf9 0x21 0x508070x96 0xf9 0x01 0x518080x97 0xf9 0x01 0xe1809 810 811#------------------------------------------------------------------------------812# LDRSB(register)813#------------------------------------------------------------------------------814# CHECK: ldrsb.w r1, [r8, r1]815# CHECK: ldrsb.w r4, [r5, r2]816# CHECK: ldrsb.w r6, [r0, r2, lsl #3]817# CHECK: ldrsb.w r8, [r8, r2, lsl #2]818# CHECK: ldrsb.w r7, [sp, r2, lsl #1]819# CHECK: ldrsb.w r7, [sp, r2]820# CHECK: ldrsb r5, [r8, #255]!821# CHECK: ldrsb r2, [r5, #4]!822# CHECK: ldrsb r1, [r4, #-4]!823# CHECK: ldrsb r1, [r4, #0]!824# CHECK: ldrsb lr, [r3], #255825# CHECK: ldrsb r9, [r2], #4826# CHECK: ldrsb r3, [sp], #-4827 8280x18 0xf9 0x01 0x108290x15 0xf9 0x02 0x408300x10 0xf9 0x32 0x608310x18 0xf9 0x22 0x808320x1d 0xf9 0x12 0x708330x1d 0xf9 0x02 0x708340x18 0xf9 0xff 0x5f8350x15 0xf9 0x04 0x2f8360x14 0xf9 0x04 0x1d8370x14 0xf9 0x00 0x1f8380x13 0xf9 0xff 0xeb8390x12 0xf9 0x04 0x9b8400x1d 0xf9 0x04 0x39841 842 843#------------------------------------------------------------------------------844# LDRSB(literal)845#------------------------------------------------------------------------------846# CHECK: ldrsb.w r0, [pc, #-0]847# CHECK: ldrsb.w r12, [pc, #80]848# CHECK: ldrsb.w r3, [pc, #0]8490x1f 0xf9 0x00 0x008500x9f 0xf9 0x50 0xc08510x9f 0xf9 0x00 0x30852 853 854#------------------------------------------------------------------------------855# LDRSBT856#------------------------------------------------------------------------------857# CHECK: ldrsbt r1, [r2]858# CHECK: ldrsbt r1, [r8]859# CHECK: ldrsbt r1, [r8, #3]860# CHECK: ldrsbt r1, [r8, #255]861 8620x12 0xf9 0x00 0x1e8630x18 0xf9 0x00 0x1e8640x18 0xf9 0x03 0x1e8650x18 0xf9 0xff 0x1e866 867 868#------------------------------------------------------------------------------869# LDRSH(immediate)870#------------------------------------------------------------------------------871# CHECK: ldrsh r5, [r5, #-4]872# CHECK: ldrsh.w r5, [r6, #32]873# CHECK: ldrsh.w r5, [r6, #33]874# CHECK: ldrsh.w r5, [r6, #257]875# CHECK: ldrsh.w lr, [r7, #257]876# CHECK: ldrsh r10, [r5, #-0]877 8780x35 0xf9 0x04 0x5c8790xb6 0xf9 0x20 0x508800xb6 0xf9 0x21 0x508810xb6 0xf9 0x01 0x518820xb7 0xf9 0x01 0xe18830x35 0xf9 0x00 0xac884 885#------------------------------------------------------------------------------886# LDRSH(register)887#------------------------------------------------------------------------------888# CHECK: ldrsh.w r1, [r8, r1]889# CHECK: ldrsh.w r4, [r5, r2]890# CHECK: ldrsh.w r6, [r0, r2, lsl #3]891# CHECK: ldrsh.w r8, [r8, r2, lsl #2]892# CHECK: ldrsh.w r7, [sp, r2, lsl #1]893# CHECK: ldrsh.w r7, [sp, r2]894# CHECK: ldrsh r5, [r8, #255]!895# CHECK: ldrsh r2, [r5, #4]!896# CHECK: ldrsh r1, [r4, #-4]!897# CHECK: ldrsh r1, [r4, #0]!898# CHECK: ldrsh lr, [r3], #255899# CHECK: ldrsh r9, [r2], #4900# CHECK: ldrsh r3, [sp], #-4901 9020x38 0xf9 0x01 0x109030x35 0xf9 0x02 0x409040x30 0xf9 0x32 0x609050x38 0xf9 0x22 0x809060x3d 0xf9 0x12 0x709070x3d 0xf9 0x02 0x709080x38 0xf9 0xff 0x5f9090x35 0xf9 0x04 0x2f9100x34 0xf9 0x04 0x1d9110x34 0xf9 0x00 0x1f9120x33 0xf9 0xff 0xeb9130x32 0xf9 0x04 0x9b9140x3d 0xf9 0x04 0x39915 916 917#------------------------------------------------------------------------------918# LDRSH(literal)919#------------------------------------------------------------------------------920# CHECK: ldrsh.w r0, [pc, #-0]921# CHECK: ldrsh.w r10, [pc, #-231]922# CHECK: ldrsh.w r6, [pc, #0]9230x3f 0xf9 0x00 0x009240x3f 0xf9 0xe7 0xa09250xbf 0xf9 0x00 0x60926 927 928#------------------------------------------------------------------------------929# LDRSHT930#------------------------------------------------------------------------------931# CHECK: ldrsht r1, [r2]932# CHECK: ldrsht r1, [r8]933# CHECK: ldrsht r1, [r8, #3]934# CHECK: ldrsht r1, [r8, #255]935 9360x32 0xf9 0x00 0x1e9370x38 0xf9 0x00 0x1e9380x38 0xf9 0x03 0x1e9390x38 0xf9 0xff 0x1e940 941 942#------------------------------------------------------------------------------943# LDRT944#------------------------------------------------------------------------------945# CHECK: ldrt r1, [r2]946# CHECK: ldrt r2, [r6]947# CHECK: ldrt r3, [r7, #3]948# CHECK: ldrt r4, [r9, #255]949 9500x52 0xf8 0x00 0x1e9510x56 0xf8 0x00 0x2e9520x57 0xf8 0x03 0x3e9530x59 0xf8 0xff 0x4e954 955 956#------------------------------------------------------------------------------957# LSL (immediate)958#------------------------------------------------------------------------------959# CHECK: lsl.w r2, r3, #12960# CHECK: lsls.w r8, r3, #31961# CHECK: lsls.w r2, r3, #1962# CHECK: lsl.w r2, r3, #4963# CHECK: lsls.w r2, r12, #15964 965# CHECK: lsl.w r3, r3, #19966# CHECK: lsls.w r8, r8, #2967# CHECK: lsls.w r7, r7, #5968# CHECK: lsl.w r12, r12, #21969 9700x4f 0xea 0x03 0x329710x5f 0xea 0xc3 0x789720x5f 0xea 0x43 0x029730x4f 0xea 0x03 0x129740x5f 0xea 0xcc 0x32975 9760x4f 0xea 0xc3 0x439770x5f 0xea 0x88 0x089780x5f 0xea 0x47 0x179790x4f 0xea 0x4c 0x5c980 981 982#------------------------------------------------------------------------------983# LSL (register)984#------------------------------------------------------------------------------985# CHECK: lsl.w r3, r4, r2986# CHECK: lsl.w r1, r1, r2987# CHECK: lsls.w r3, r4, r8988 9890x04 0xfa 0x02 0xf39900x01 0xfa 0x02 0xf19910x14 0xfa 0x08 0xf3992 993 994#------------------------------------------------------------------------------995# LSR (immediate)996#------------------------------------------------------------------------------997# CHECK: lsr.w r2, r3, #12998# CHECK: lsrs.w r8, r3, #32999# CHECK: lsrs.w r2, r3, #11000# CHECK: lsr.w r2, r3, #41001# CHECK: lsrs.w r2, r12, #151002 1003# CHECK: lsr.w r3, r3, #191004# CHECK: lsrs.w r8, r8, #21005# CHECK: lsrs.w r7, r7, #51006# CHECK: lsr.w r12, r12, #211007 10080x4f 0xea 0x13 0x3210090x5f 0xea 0x13 0x0810100x5f 0xea 0x53 0x0210110x4f 0xea 0x13 0x1210120x5f 0xea 0xdc 0x321013 10140x4f 0xea 0xd3 0x4310150x5f 0xea 0x98 0x0810160x5f 0xea 0x57 0x1710170x4f 0xea 0x5c 0x5c1018 1019 1020#------------------------------------------------------------------------------1021# LSR (register)1022#------------------------------------------------------------------------------1023# CHECK: lsr.w r3, r4, r21024# CHECK: lsr.w r1, r1, r21025# CHECK: lsrs.w r3, r4, r81026 10270x24 0xfa 0x02 0xf310280x21 0xfa 0x02 0xf110290x34 0xfa 0x08 0xf31030 1031#------------------------------------------------------------------------------1032# MCR/MCR21033#------------------------------------------------------------------------------1034# CHECK: mcr p7, #1, r5, c1, c1, #41035# CHECK: mcr2 p7, #1, r5, c1, c1, #41036 10370x21 0xee 0x91 0x5710380x21 0xfe 0x91 0x571039 1040 1041#------------------------------------------------------------------------------1042# MCRR/MCRR21043#------------------------------------------------------------------------------1044# CHECK: mcrr p7, #15, r5, r4, c11045# CHECK: mcrr2 p7, #15, r5, r4, c11046 10470x44 0xec 0xf1 0x5710480x44 0xfc 0xf1 0x571049 1050 1051#------------------------------------------------------------------------------1052# MLA/MLS1053#------------------------------------------------------------------------------1054# CHECK: mla r1, r2, r3, r41055# CHECK: mls r1, r2, r3, r41056 10570x02 0xfb 0x03 0x4110580x02 0xfb 0x13 0x411059 1060 1061#------------------------------------------------------------------------------1062# MOV(immediate)1063#------------------------------------------------------------------------------1064# CHECK: movs r1, #211065# CHECK: movs.w r1, #211066# CHECK: movs.w r8, #211067# CHECK: movw r0, #655351068# CHECK: movw r1, #437771069# CHECK: movw r1, #437921070# CHECK: mov.w r0, #668467201071# CHECK: mov.w r0, #668467201072# CHECK: movs.w r0, #668467201073 10740x15 0x2110750x5f 0xf0 0x15 0x0110760x5f 0xf0 0x15 0x0810770x4f 0xf6 0xff 0x7010780x4a 0xf6 0x01 0x3110790x4a 0xf6 0x10 0x3110800x4f 0xf0 0x7f 0x7010810x4f 0xf0 0x7f 0x7010820x5f 0xf0 0x7f 0x701083 1084#------------------------------------------------------------------------------1085# MOVT1086#------------------------------------------------------------------------------1087# CHECK: movt r3, #71088# CHECK: movt r6, #655351089# CHECK: it eq1090# CHECK: movteq r4, #40801091 10920xc0 0xf2 0x07 0x0310930xcf 0xf6 0xff 0x7610940x08 0xbf10950xc0 0xf6 0xf0 0x741096 1097#------------------------------------------------------------------------------1098# MRC/MRC21099#------------------------------------------------------------------------------1100# CHECK: mrc p14, #0, r1, c1, c2, #41101# CHECK: mrc2 p14, #0, r1, c1, c2, #41102 11030x11 0xee 0x92 0x1e11040x11 0xfe 0x92 0x1e1105 1106 1107#------------------------------------------------------------------------------1108# MRRC/MRRC21109#------------------------------------------------------------------------------1110# CHECK: mrrc p7, #1, r5, r4, c11111# CHECK: mrrc2 p7, #1, r5, r4, c11112 11130x54 0xec 0x11 0x5711140x54 0xfc 0x11 0x571115 1116 1117#------------------------------------------------------------------------------1118# MRS1119#------------------------------------------------------------------------------1120# CHECK: mrs r8, apsr1121# CHECK: mrs r8, spsr1122 11230xef 0xf3 0x00 0x8811240xff 0xf3 0x00 0x881125 1126 1127#------------------------------------------------------------------------------1128# MSR1129#------------------------------------------------------------------------------1130# CHECK: msr APSR_nzcvq, r11131# CHECK: msr APSR_g, r21132# CHECK: msr APSR_nzcvq, r31133# CHECK: msr APSR_nzcvq, r41134# CHECK: msr APSR_nzcvqg, r51135# CHECK: msr CPSR_fc, r61136# CHECK: msr CPSR_c, r71137# CHECK: msr CPSR_x, r81138# CHECK: msr CPSR_fc, r91139# CHECK: msr CPSR_fc, r111140# CHECK: msr CPSR_fsx, r121141# CHECK: msr SPSR_fc, r01142# CHECK: msr SPSR_fsxc, r51143# CHECK: msr CPSR_fsxc, r81144 11450x81 0xf3 0x00 0x8811460x82 0xf3 0x00 0x8411470x83 0xf3 0x00 0x8811480x84 0xf3 0x00 0x8811490x85 0xf3 0x00 0x8c11500x86 0xf3 0x00 0x8911510x87 0xf3 0x00 0x8111520x88 0xf3 0x00 0x8211530x89 0xf3 0x00 0x8911540x8b 0xf3 0x00 0x8911550x8c 0xf3 0x00 0x8e11560x90 0xf3 0x00 0x8911570x95 0xf3 0x00 0x8f11580x88 0xf3 0x00 0x8f1159 1160 1161#------------------------------------------------------------------------------1162# MUL1163#------------------------------------------------------------------------------1164# CHECK: muls r3, r4, r31165# CHECK: mul r3, r4, r31166# CHECK: mul r3, r4, r61167# CHECK: it eq1168# CHECK: muleq r3, r4, r51169 11700x63 0x4311710x04 0xfb 0x03 0xf311720x04 0xfb 0x06 0xf311730x08 0xbf11740x04 0xfb 0x05 0xf31175 1176 1177#------------------------------------------------------------------------------1178# MVN(immediate)1179#------------------------------------------------------------------------------1180# CHECK: mvns r8, #211181# CHECK: mvn r0, #668467201182# CHECK: mvns r0, #668467201183# CHECK: itte eq1184# CHECK: mvnseq r1, #121185# CHECK: mvneq r1, #121186# CHECK: mvnne r1, #121187 11880x7f 0xf0 0x15 0x0811890x6f 0xf0 0x7f 0x7011900x7f 0xf0 0x7f 0x7011910x06 0xbf11920x7f 0xf0 0x0c 0x0111930x6f 0xf0 0x0c 0x0111940x6f 0xf0 0x0c 0x011195 1196 1197#------------------------------------------------------------------------------1198# MVN(register)1199#------------------------------------------------------------------------------1200# CHECK: mvn.w r2, r31201# CHECK: mvns r2, r31202# CHECK: mvn.w r5, r6, lsl #191203# CHECK: mvn.w r5, r6, lsr #91204# CHECK: mvn.w r5, r6, asr #41205# CHECK: mvn.w r5, r6, ror #61206# CHECK: mvn.w r5, r6, rrx1207# CHECK: it eq1208# CHECK: mvneq r2, r31209 12100x6f 0xea 0x03 0x0212110xda 0x4312120x6f 0xea 0xc6 0x4512130x6f 0xea 0x56 0x2512140x6f 0xea 0x26 0x1512150x6f 0xea 0xb6 0x1512160x6f 0xea 0x36 0x0512170x08 0xbf12180xda 0x431219 1220#------------------------------------------------------------------------------1221# NOP1222#------------------------------------------------------------------------------1223# CHECK: nop.w1224 12250xaf 0xf3 0x00 0x801226 1227 1228#------------------------------------------------------------------------------1229# ORN1230#------------------------------------------------------------------------------1231# CHECK: orn r4, r5, #614401232# CHECK: orn r4, r5, r61233# CHECK: orns r4, r5, r61234# CHECK: orn r4, r5, r6, lsl #51235# CHECK: orns r4, r5, r6, lsr #51236# CHECK: orn r4, r5, r6, lsr #51237# CHECK: orns r4, r5, r6, asr #51238# CHECK: orn r4, r5, r6, ror #51239 12400x65 0xf4 0x70 0x4412410x65 0xea 0x06 0x0412420x75 0xea 0x06 0x0412430x65 0xea 0x46 0x1412440x75 0xea 0x56 0x1412450x65 0xea 0x56 0x1412460x75 0xea 0x66 0x1412470x65 0xea 0x76 0x141248 1249 1250#------------------------------------------------------------------------------1251# ORR1252#------------------------------------------------------------------------------1253# CHECK: orr r4, r5, #614401254# CHECK: orr.w r4, r5, r61255# CHECK: orr.w r4, r5, r6, lsl #51256# CHECK: orrs.w r4, r5, r6, lsr #51257# CHECK: orr.w r4, r5, r6, lsr #51258# CHECK: orrs.w r4, r5, r6, asr #51259# CHECK: orr.w r4, r5, r6, ror #51260 12610x45 0xf4 0x70 0x4412620x45 0xea 0x06 0x0412630x45 0xea 0x46 0x1412640x55 0xea 0x56 0x1412650x45 0xea 0x56 0x1412660x55 0xea 0x66 0x1412670x45 0xea 0x76 0x141268 1269 1270#------------------------------------------------------------------------------1271# PKH1272#------------------------------------------------------------------------------1273# CHECK: pkhbt r2, r2, r31274# CHECK: pkhbt r2, r2, r3, lsl #311275# CHECK: pkhbt r2, r2, r3, lsl #151276 1277# CHECK: pkhtb r2, r2, r3, asr #311278# CHECK: pkhtb r2, r2, r3, asr #151279 12800xc2 0xea 0x03 0x0212810xc2 0xea 0xc3 0x7212820xc2 0xea 0xc3 0x321283 12840xc2 0xea 0xe3 0x7212850xc2 0xea 0xe3 0x321286 1287 1288#------------------------------------------------------------------------------1289# PLD(immediate)1290#------------------------------------------------------------------------------1291# CHECK: pld [r5, #-4]1292# CHECK: pld [r6, #32]1293# CHECK: pld [r6, #33]1294# CHECK: pld [r6, #257]1295# CHECK: pld [r7, #257]1296 12970x15 0xf8 0x04 0xfc12980x96 0xf8 0x20 0xf012990x96 0xf8 0x21 0xf013000x96 0xf8 0x01 0xf113010x97 0xf8 0x01 0xf11302 1303#------------------------------------------------------------------------------1304# PLD(register)1305#------------------------------------------------------------------------------1306# CHECK: pld [r8, r1]1307# CHECK: pld [r5, r2]1308# CHECK: pld [r0, r2, lsl #3]1309# CHECK: pld [r8, r2, lsl #2]1310# CHECK: pld [sp, r2, lsl #1]1311# CHECK: pld [sp, r2]1312 13130x18 0xf8 0x01 0xf013140x15 0xf8 0x02 0xf013150x10 0xf8 0x32 0xf013160x18 0xf8 0x22 0xf013170x1d 0xf8 0x12 0xf013180x1d 0xf8 0x02 0xf01319 1320#------------------------------------------------------------------------------1321# PLD(literal)1322#------------------------------------------------------------------------------1323# CHECK: pld [pc, #-0]1324# CHECK: pld [pc, #455]1325# CHECK: pld [pc, #0]1326 13270x1f 0xf8 0x00 0xf013280x9f 0xf8 0xc7 0xf113290x9f 0xf8 0x00 0xf01330 1331#------------------------------------------------------------------------------1332# PLI(immediate)1333#------------------------------------------------------------------------------1334# CHECK: pli [r5, #-4]1335# CHECK: pli [r6, #32]1336# CHECK: pli [r6, #33]1337# CHECK: pli [r6, #257]1338# CHECK: pli [r7, #257]1339 13400x15 0xf9 0x04 0xfc13410x96 0xf9 0x20 0xf013420x96 0xf9 0x21 0xf013430x96 0xf9 0x01 0xf113440x97 0xf9 0x01 0xf11345 1346#------------------------------------------------------------------------------1347# PLI(register)1348#------------------------------------------------------------------------------1349# CHECK: pli [r8, r1]1350# CHECK: pli [r5, r2]1351# CHECK: pli [r0, r2, lsl #3]1352# CHECK: pli [r8, r2, lsl #2]1353# CHECK: pli [sp, r2, lsl #1]1354# CHECK: pli [sp, r2]1355 13560x18 0xf9 0x01 0xf013570x15 0xf9 0x02 0xf013580x10 0xf9 0x32 0xf013590x18 0xf9 0x22 0xf013600x1d 0xf9 0x12 0xf013610x1d 0xf9 0x02 0xf01362 1363#------------------------------------------------------------------------------1364# PLI(literal)1365#------------------------------------------------------------------------------1366# CHECK: pli [pc, #-0]1367# CHECK: pli [pc, #-328]1368# CHECK: pli [pc, #0]1369 13700x1f 0xf9 0x00 0xf013710x1f 0xf9 0x48 0xf113720x9f 0xf9 0x00 0xf01373 1374 1375#------------------------------------------------------------------------------1376# QADD/QADD16/QADD81377#------------------------------------------------------------------------------1378# CHECK: qadd r1, r2, r31379# CHECK: qadd16 r1, r2, r31380# CHECK: qadd8 r1, r2, r31381# CHECK: itte gt1382# CHECK: qaddgt r1, r2, r31383# CHECK: qadd16gt r1, r2, r31384# CHECK: qadd8le r1, r2, r31385 13860x83 0xfa 0x82 0xf113870x92 0xfa 0x13 0xf113880x82 0xfa 0x13 0xf113890xc6 0xbf13900x83 0xfa 0x82 0xf113910x92 0xfa 0x13 0xf113920x82 0xfa 0x13 0xf11393 1394 1395#------------------------------------------------------------------------------1396# QDADD/QDSUB1397#------------------------------------------------------------------------------1398# CHECK: qdadd r6, r7, r81399# CHECK: qdsub r6, r7, r81400# CHECK: itt hi1401# CHECK: qdaddhi r6, r7, r81402# CHECK: qdsubhi r6, r7, r81403 14040x88 0xfa 0x97 0xf614050x88 0xfa 0xb7 0xf614060x84 0xbf14070x88 0xfa 0x97 0xf614080x88 0xfa 0xb7 0xf61409 1410 1411#------------------------------------------------------------------------------1412# QSAX1413#------------------------------------------------------------------------------1414# CHECK: qsax r9, r12, r01415# CHECK: it eq1416# CHECK: qsaxeq r9, r12, r01417 14180xec 0xfa 0x10 0xf914190x08 0xbf14200xec 0xfa 0x10 0xf91421 1422 1423#------------------------------------------------------------------------------1424# QSUB/QSUB16/QSUB81425#------------------------------------------------------------------------------1426# CHECK: qsub r1, r2, r31427# CHECK: qsub16 r1, r2, r31428# CHECK: qsub8 r1, r2, r31429# CHECK: itet le1430# CHECK: qsuble r1, r2, r31431# CHECK: qsub16gt r1, r2, r31432# CHECK: qsub8le r1, r2, r31433 14340x83 0xfa 0xa2 0xf114350xd2 0xfa 0x13 0xf114360xc2 0xfa 0x13 0xf114370xd6 0xbf14380x83 0xfa 0xa2 0xf114390xd2 0xfa 0x13 0xf114400xc2 0xfa 0x13 0xf11441 1442 1443#------------------------------------------------------------------------------1444# RBIT1445#------------------------------------------------------------------------------1446# CHECK: rbit r1, r21447# CHECK: it ne1448# CHECK: rbitne r1, r21449 14500x92 0xfa 0xa2 0xf114510x18 0xbf14520x92 0xfa 0xa2 0xf11453 1454 1455#------------------------------------------------------------------------------1456# REV1457#------------------------------------------------------------------------------1458# CHECK: rev.w r1, r21459# CHECK: rev.w r2, r81460# CHECK: itt ne1461# CHECK: revne r1, r21462# CHECK: revne.w r1, r81463 14640x92 0xfa 0x82 0xf114650x98 0xfa 0x88 0xf214660x1c 0xbf14670x11 0xba14680x98 0xfa 0x88 0xf11469 1470 1471#------------------------------------------------------------------------------1472# REV161473#------------------------------------------------------------------------------1474# CHECK: rev16.w r1, r21475# CHECK: rev16.w r2, r81476# CHECK: itt ne1477# CHECK: rev16ne r1, r21478# CHECK: rev16ne.w r1, r81479 14800x92 0xfa 0x92 0xf114810x98 0xfa 0x98 0xf214820x1c 0xbf14830x51 0xba14840x98 0xfa 0x98 0xf11485 1486 1487#------------------------------------------------------------------------------1488# REVSH1489#------------------------------------------------------------------------------1490# CHECK: revsh.w r1, r21491# CHECK: revsh.w r2, r81492# CHECK: itt ne1493# CHECK: revshne r1, r21494# CHECK: revshne.w r1, r81495 14960x92 0xfa 0xb2 0xf114970x98 0xfa 0xb8 0xf214980x1c 0xbf14990xd1 0xba15000x98 0xfa 0xb8 0xf11501 1502 1503#------------------------------------------------------------------------------1504# ROR (immediate)1505#------------------------------------------------------------------------------1506# CHECK: ror.w r2, r3, #121507# CHECK: rors.w r8, r3, #311508# CHECK: rors.w r2, r3, #11509# CHECK: ror.w r2, r3, #41510# CHECK: rors.w r2, r12, #151511 1512# CHECK: ror.w r3, r3, #191513# CHECK: rors.w r8, r8, #21514# CHECK: rors.w r7, r7, #51515# CHECK: ror.w r12, r12, #211516 15170x4f 0xea 0x33 0x3215180x5f 0xea 0xf3 0x7815190x5f 0xea 0x73 0x0215200x4f 0xea 0x33 0x1215210x5f 0xea 0xfc 0x321522 15230x4f 0xea 0xf3 0x4315240x5f 0xea 0xb8 0x0815250x5f 0xea 0x77 0x1715260x4f 0xea 0x7c 0x5c1527 1528 1529#------------------------------------------------------------------------------1530# ROR (register)1531#------------------------------------------------------------------------------1532# CHECK: ror.w r3, r4, r21533# CHECK: ror.w r1, r1, r21534# CHECK: rors.w r3, r4, r81535 15360x64 0xfa 0x02 0xf315370x61 0xfa 0x02 0xf115380x74 0xfa 0x08 0xf31539 1540 1541#------------------------------------------------------------------------------1542# RRX1543#------------------------------------------------------------------------------1544# CHECK: rrx r1, r21545# CHECK: rrxs r1, r21546# CHECK: ite lt1547# CHECK: rrxlt r9, r121548# CHECK: rrxsge r8, r31549 15500x4f 0xea 0x32 0x0115510x5f 0xea 0x32 0x0115520xb4 0xbf15530x4f 0xea 0x3c 0x0915540x5f 0xea 0x33 0x081555 1556#------------------------------------------------------------------------------1557# RSB (immediate)1558#------------------------------------------------------------------------------1559# CHECK: rsb.w r2, r5, #10444801560# CHECK: rsbs.w r3, r12, #151561# CHECK: rsb.w r1, r1, #2551562 15630xc5 0xf5 0x7f 0x2215640xdc 0xf1 0x0f 0x0315650xc1 0xf1 0xff 0x011566 1567 1568#------------------------------------------------------------------------------1569# RSB (register)1570#------------------------------------------------------------------------------1571# CHECK: rsb r4, r4, r81572# CHECK: rsb r4, r9, r81573# CHECK: rsb r1, r4, r8, asr #31574# CHECK: rsbs r2, r1, r7, lsl #11575 15760xc4 0xeb 0x08 0x0415770xc9 0xeb 0x08 0x0415780xc4 0xeb 0xe8 0x0115790xd1 0xeb 0x47 0x021580 1581 1582#------------------------------------------------------------------------------1583# SADD161584#------------------------------------------------------------------------------1585# CHECK: sadd16 r3, r4, r81586# CHECK: it ne1587# CHECK: sadd16ne r3, r4, r81588 15890x94 0xfa 0x08 0xf315900x18 0xbf15910x94 0xfa 0x08 0xf31592 1593 1594#------------------------------------------------------------------------------1595# SADD81596#------------------------------------------------------------------------------1597# CHECK: sadd8 r3, r4, r81598# CHECK: it ne1599# CHECK: sadd8ne r3, r4, r81600 16010x84 0xfa 0x08 0xf316020x18 0xbf16030x84 0xfa 0x08 0xf31604 1605 1606#------------------------------------------------------------------------------1607# SASX1608#------------------------------------------------------------------------------1609# CHECK: sasx r9, r2, r71610# CHECK: it ne1611# CHECK: sasxne r2, r5, r61612 16130xa2 0xfa 0x07 0xf916140x18 0xbf16150xa5 0xfa 0x06 0xf21616 1617 1618#------------------------------------------------------------------------------1619# SBC (immediate)1620#------------------------------------------------------------------------------1621# CHECK: sbc r0, r1, #41622# CHECK: sbcs r0, r1, #01623# CHECK: sbc r1, r2, #2551624# CHECK: sbc r3, r7, #55706451625# CHECK: sbc r8, r12, #28521702401626# CHECK: sbc r9, r7, #27790964851627# CHECK: sbc r5, r3, #22649241601628# CHECK: sbc r4, r2, #21390950401629# CHECK: sbc r4, r2, #16641630 16310x61 0xf1 0x04 0x0016320x71 0xf1 0x00 0x0016330x62 0xf1 0xff 0x0116340x67 0xf1 0x55 0x1316350x6c 0xf1 0xaa 0x2816360x67 0xf1 0xa5 0x3916370x63 0xf1 0x07 0x4516380x62 0xf1 0xff 0x4416390x62 0xf5 0xd0 0x641640 1641 1642#------------------------------------------------------------------------------1643# SBC (register)1644#------------------------------------------------------------------------------1645# CHECK: sbc.w r4, r5, r61646# CHECK: sbcs.w r4, r5, r61647# CHECK: sbc.w r9, r1, r31648# CHECK: sbcs.w r9, r1, r31649# CHECK: sbc.w r0, r1, r3, ror #41650# CHECK: sbcs.w r0, r1, r3, lsl #71651# CHECK: sbc.w r0, r1, r3, lsr #311652# CHECK: sbcs.w r0, r1, r3, asr #321653 16540x65 0xeb 0x06 0x0416550x75 0xeb 0x06 0x0416560x61 0xeb 0x03 0x0916570x71 0xeb 0x03 0x0916580x61 0xeb 0x33 0x1016590x71 0xeb 0xc3 0x1016600x61 0xeb 0xd3 0x7016610x71 0xeb 0x23 0x001662 1663 1664#------------------------------------------------------------------------------1665# SBFX1666#------------------------------------------------------------------------------1667# CHECK: sbfx r4, r5, #16, #11668# CHECK: it gt1669# CHECK: sbfxgt r4, r5, #16, #161670 16710x45 0xf3 0x00 0x4416720xc8 0xbf16730x45 0xf3 0x0f 0x441674 1675 1676#------------------------------------------------------------------------------1677# SEL1678#------------------------------------------------------------------------------1679# CHECK: sel r5, r9, r21680# CHECK: it le1681# CHECK: selle r5, r9, r21682 16830xa9 0xfa 0x82 0xf516840xd8 0xbf16850xa9 0xfa 0x82 0xf51686 1687 1688#------------------------------------------------------------------------------1689# SEV1690#------------------------------------------------------------------------------1691# CHECK: sev.w1692# CHECK: it eq1693# CHECK: seveq.w1694 16950xaf 0xf3 0x04 0x8016960x08 0xbf16970xaf 0xf3 0x04 0x801698 1699 1700#------------------------------------------------------------------------------1701# SADD16/SADD81702#------------------------------------------------------------------------------1703# CHECK: sadd16 r1, r2, r31704# CHECK: sadd8 r1, r2, r31705# CHECK: ite gt1706# CHECK: sadd16gt r1, r2, r31707# CHECK: sadd8le r1, r2, r31708 17090x92 0xfa 0x03 0xf117100x82 0xfa 0x03 0xf117110xcc 0xbf17120x92 0xfa 0x03 0xf117130x82 0xfa 0x03 0xf11714 1715 1716#------------------------------------------------------------------------------1717# SHASX1718#------------------------------------------------------------------------------1719# CHECK: shasx r4, r8, r21720# CHECK: it gt1721# CHECK: shasxgt r4, r8, r21722 17230xa8 0xfa 0x22 0xf417240xc8 0xbf17250xa8 0xfa 0x22 0xf41726 1727 1728#------------------------------------------------------------------------------1729# SHASX1730#------------------------------------------------------------------------------1731# CHECK: shsax r4, r8, r21732# CHECK: it gt1733# CHECK: shsaxgt r4, r8, r21734 17350xe8 0xfa 0x22 0xf417360xc8 0xbf17370xe8 0xfa 0x22 0xf41738 1739 1740#------------------------------------------------------------------------------1741# SHSUB16/SHSUB81742#------------------------------------------------------------------------------1743# CHECK: shsub16 r4, r8, r21744# CHECK: shsub8 r4, r8, r21745# CHECK: itt gt1746# CHECK: shsub16gt r4, r8, r21747# CHECK: shsub8gt r4, r8, r21748 17490xd8 0xfa 0x22 0xf417500xc8 0xfa 0x22 0xf417510xc4 0xbf17520xd8 0xfa 0x22 0xf417530xc8 0xfa 0x22 0xf41754 1755 1756#------------------------------------------------------------------------------1757# SMLABB/SMLABT/SMLATB/SMLATT1758#------------------------------------------------------------------------------1759# CHECK: smlabb r3, r1, r9, r01760# CHECK: smlabt r5, r6, r4, r11761# CHECK: smlatb r4, r2, r3, r21762# CHECK: smlatt r8, r3, r8, r41763# CHECK: itete gt1764# CHECK: smlabbgt r3, r1, r9, r01765# CHECK: smlabtle r5, r6, r4, r11766# CHECK: smlatbgt r4, r2, r3, r21767# CHECK: smlattle r8, r3, r8, r41768 17690x11 0xfb 0x09 0x0317700x16 0xfb 0x14 0x1517710x12 0xfb 0x23 0x2417720x13 0xfb 0x38 0x4817730xcb 0xbf17740x11 0xfb 0x09 0x0317750x16 0xfb 0x14 0x1517760x12 0xfb 0x23 0x2417770x13 0xfb 0x38 0x481778 1779 1780#------------------------------------------------------------------------------1781# SMLAD/SMLADX1782#------------------------------------------------------------------------------1783# CHECK: smlad r2, r3, r5, r81784# CHECK: smladx r2, r3, r5, r81785# CHECK: itt hi1786# CHECK: smladhi r2, r3, r5, r81787# CHECK: smladxhi r2, r3, r5, r81788 17890x23 0xfb 0x05 0x8217900x23 0xfb 0x15 0x8217910x84 0xbf17920x23 0xfb 0x05 0x8217930x23 0xfb 0x15 0x821794 1795 1796#------------------------------------------------------------------------------1797# SMLAL1798#------------------------------------------------------------------------------1799# CHECK: smlal r2, r3, r5, r81800# CHECK: it eq1801# CHECK: smlaleq r2, r3, r5, r81802 18030xc5 0xfb 0x08 0x2318040x08 0xbf18050xc5 0xfb 0x08 0x231806 1807 1808#------------------------------------------------------------------------------1809# SMLALBB/SMLALBT/SMLALTB/SMLALTT1810#------------------------------------------------------------------------------1811# CHECK: smlalbb r3, r1, r9, r01812# CHECK: smlalbt r5, r6, r4, r11813# CHECK: smlaltb r4, r2, r3, r21814# CHECK: smlaltt r8, r3, r8, r41815# CHECK: iteet ge1816# CHECK: smlalbbge r3, r1, r9, r01817# CHECK: smlalbtlt r5, r6, r4, r11818# CHECK: smlaltblt r4, r2, r3, r21819# CHECK: smlalttge r8, r3, r8, r41820 18210xc9 0xfb 0x80 0x3118220xc4 0xfb 0x91 0x5618230xc3 0xfb 0xa2 0x4218240xc8 0xfb 0xb4 0x8318250xad 0xbf18260xc9 0xfb 0x80 0x3118270xc4 0xfb 0x91 0x5618280xc3 0xfb 0xa2 0x4218290xc8 0xfb 0xb4 0x831830 1831#------------------------------------------------------------------------------1832# SMLALD/SMLALDX1833#------------------------------------------------------------------------------1834# CHECK: smlald r2, r3, r5, r81835# CHECK: smlaldx r2, r3, r5, r81836# CHECK: ite eq1837# CHECK: smlaldeq r2, r3, r5, r81838# CHECK: smlaldxne r2, r3, r5, r81839 18400xc5 0xfb 0xc8 0x2318410xc5 0xfb 0xd8 0x2318420x0c 0xbf18430xc5 0xfb 0xc8 0x2318440xc5 0xfb 0xd8 0x231845 1846 1847#------------------------------------------------------------------------------1848# SMLAWB/SMLAWT1849#------------------------------------------------------------------------------1850# CHECK: smlawb r2, r3, r10, r81851# CHECK: smlawt r8, r3, r5, r91852# CHECK: ite eq1853# CHECK: smlawbeq r2, r7, r5, r81854# CHECK: smlawtne r1, r3, r0, r81855 18560x33 0xfb 0x0a 0x8218570x33 0xfb 0x15 0x9818580x0c 0xbf18590x37 0xfb 0x05 0x8218600x33 0xfb 0x10 0x811861 1862 1863#------------------------------------------------------------------------------1864# SMLSD/SMLSDX1865#------------------------------------------------------------------------------1866# CHECK: smlsd r2, r3, r5, r81867# CHECK: smlsdx r2, r3, r5, r81868# CHECK: ite le1869# CHECK: smlsdle r2, r3, r5, r81870# CHECK: smlsdxgt r2, r3, r5, r81871 18720x43 0xfb 0x05 0x8218730x43 0xfb 0x15 0x8218740xd4 0xbf18750x43 0xfb 0x05 0x8218760x43 0xfb 0x15 0x821877 1878 1879#------------------------------------------------------------------------------1880# SMLSLD/SMLSLDX1881#------------------------------------------------------------------------------1882# CHECK: smlsld r2, r9, r5, r11883# CHECK: smlsldx r4, r11, r2, r81884# CHECK: ite ge1885# CHECK: smlsldge r8, r2, r5, r61886# CHECK: smlsldxlt r1, r0, r3, r81887 18880xd5 0xfb 0xc1 0x2918890xd2 0xfb 0xd8 0x4b18900xac 0xbf18910xd5 0xfb 0xc6 0x8218920xd3 0xfb 0xd8 0x101893 1894 1895#------------------------------------------------------------------------------1896# SMMLA/SMMLAR1897#------------------------------------------------------------------------------1898# CHECK: smmla r1, r2, r3, r41899# CHECK: smmlar r4, r3, r2, r11900# CHECK: ite lo1901# CHECK: smmlalo r1, r2, r3, r41902# CHECK: smmlarhs r4, r3, r2, r11903 19040x52 0xfb 0x03 0x4119050x53 0xfb 0x12 0x1419060x34 0xbf19070x52 0xfb 0x03 0x4119080x53 0xfb 0x12 0x141909 1910 1911#------------------------------------------------------------------------------1912# SMMLS/SMMLSR1913#------------------------------------------------------------------------------1914# CHECK: smmls r1, r2, r3, r41915# CHECK: smmlsr r4, r3, r2, r11916# CHECK: ite lo1917# CHECK: smmlslo r1, r2, r3, r41918# CHECK: smmlsrhs r4, r3, r2, r11919 19200x62 0xfb 0x03 0x4119210x63 0xfb 0x12 0x1419220x34 0xbf19230x62 0xfb 0x03 0x4119240x63 0xfb 0x12 0x141925 1926#------------------------------------------------------------------------------1927# SSAT1928#------------------------------------------------------------------------------1929# CHECK: ssat r9, #30, r0, asr #21930 19310x20 0xf3 0x9d 0x091932 1933#------------------------------------------------------------------------------1934# STR (immediate)1935#------------------------------------------------------------------------------1936# CHECK: str r10, [r11], #01937 19380x4b 0xf8 0x00 0xab1939 1940#------------------------------------------------------------------------------1941# STRD (immediate)1942#------------------------------------------------------------------------------1943# CHECK: strd r1, r1, [r0], #01944# CHECK: strd r6, r3, [r5], #-81945# CHECK: strd r8, r5, [r5], #-01946# CHECK: strd r7, r4, [r5], #-41947# CHECK: strd r0, r1, [r2, #-0]!1948# CHECK: strd r0, r1, [r2, #0]!1949# CHECK: strd r0, r1, [r2, #-0]1950 19510xe0 0xe8 0x00 0x1119520x65 0xe8 0x02 0x6319530x65 0xe8 0x00 0x8519540x65 0xe8 0x01 0x7419550x62 0xe9 0x00 0x0119560xe2 0xe9 0x00 0x0119570x42 0xe9 0x00 0x011958 1959#------------------------------------------------------------------------------1960# STREX/STREXB/STREXH/STREXD1961#------------------------------------------------------------------------------1962# CHECK: strex r1, r8, [r4]1963# CHECK: strex r8, r2, [r4]1964# CHECK: strex r2, r12, [sp, #128]1965# CHECK: strexb r5, r1, [r7]1966# CHECK: strexh r9, r7, [r12]1967# CHECK: strexd r9, r3, r6, [r4]1968 19690x44 0xe8 0x00 0x8119700x44 0xe8 0x00 0x2819710x4d 0xe8 0x20 0xc219720xc7 0xe8 0x45 0x1f19730xcc 0xe8 0x59 0x7f19740xc4 0xe8 0x79 0x361975 1976 1977#------------------------------------------------------------------------------1978# STRH(immediate)1979#------------------------------------------------------------------------------1980# CHECK: strh r5, [r5, #-4]1981# CHECK: strh r5, [r6, #32]1982# CHECK: strh.w r5, [r6, #33]1983# CHECK: strh.w r5, [r6, #257]1984# CHECK: strh.w lr, [r7, #257]1985# CHECK: strh r5, [r8, #255]!1986# CHECK: strh r2, [r5, #4]!1987# CHECK: strh r1, [r4, #-4]!1988# CHECK: strh r1, [r4, #0]!1989# CHECK: strh lr, [r3], #2551990# CHECK: strh r9, [r2], #41991# CHECK: strh r3, [sp], #-41992 19930x25 0xf8 0x04 0x5c19940x35 0x8419950xa6 0xf8 0x21 0x5019960xa6 0xf8 0x01 0x5119970xa7 0xf8 0x01 0xe119980x28 0xf8 0xff 0x5f19990x25 0xf8 0x04 0x2f20000x24 0xf8 0x04 0x1d20010x24 0xf8 0x00 0x1f20020x23 0xf8 0xff 0xeb20030x22 0xf8 0x04 0x9b20040x2d 0xf8 0x04 0x392005 2006 2007#------------------------------------------------------------------------------2008# STRH(register)2009#------------------------------------------------------------------------------2010# CHECK: strh.w r1, [r8, r1]2011# CHECK: strh.w r4, [r5, r2]2012# CHECK: strh.w r6, [r0, r2, lsl #3]2013# CHECK: strh.w r8, [r8, r2, lsl #2]2014# CHECK: strh.w r7, [sp, r2, lsl #1]2015# CHECK: strh.w r7, [sp, r2]2016 20170x28 0xf8 0x01 0x1020180x25 0xf8 0x02 0x4020190x20 0xf8 0x32 0x6020200x28 0xf8 0x22 0x8020210x2d 0xf8 0x12 0x7020220x2d 0xf8 0x02 0x702023 2024 2025#------------------------------------------------------------------------------2026# STRHT2027#------------------------------------------------------------------------------2028# CHECK: strht r1, [r2]2029# CHECK: strht r1, [r8]2030# CHECK: strht r1, [r8, #3]2031# CHECK: strht r1, [r8, #255]2032 20330x22 0xf8 0x00 0x1e20340x28 0xf8 0x00 0x1e20350x28 0xf8 0x03 0x1e20360x28 0xf8 0xff 0x1e2037 2038 2039#------------------------------------------------------------------------------2040# STRT2041#------------------------------------------------------------------------------2042# CHECK: strt r1, [r2]2043# CHECK: strt r1, [r8]2044# CHECK: strt r1, [r8, #3]2045# CHECK: strt r1, [r8, #255]2046 20470x42 0xf8 0x00 0x1e20480x48 0xf8 0x00 0x1e20490x48 0xf8 0x03 0x1e20500x48 0xf8 0xff 0x1e2051 2052 2053#------------------------------------------------------------------------------2054# SUB (immediate)2055#------------------------------------------------------------------------------2056# CHECK: itet eq2057# CHECK: subeq r1, r2, #42058# CHECK: subwne r5, r3, #10232059# CHECK: subweq r4, r5, #2932060# CHECK: sub.w r2, sp, #10242061# CHECK: sub.w r2, r8, #652802062# CHECK: subw r2, r3, #2572063# CHECK: sub.w r12, r6, #2562064# CHECK: subw r12, r6, #2562065# CHECK: subs.w r1, r2, #4962066# CHECK: subs pc, lr, #42067 20680x0a 0xbf20690x11 0x1f20700xa3 0xf2 0xff 0x3520710xa5 0xf2 0x25 0x1420720xad 0xf5 0x80 0x6220730xa8 0xf5 0x7f 0x4220740xa3 0xf2 0x01 0x1220750xa6 0xf5 0x80 0x7c20760xa6 0xf2 0x00 0x1c20770xb2 0xf5 0xf8 0x7120780xde 0xf3 0x04 0x8f2079 2080 2081#------------------------------------------------------------------------------2082# SUB (register)2083#------------------------------------------------------------------------------2084# CHECK: sub.w r4, r5, r62085# CHECK: sub.w r4, r5, r6, lsl #52086# CHECK: sub.w r4, r5, r6, lsr #52087# CHECK: sub.w r4, r5, r6, lsr #52088# CHECK: sub.w r4, r5, r6, asr #52089# CHECK: sub.w r4, r5, r6, ror #52090# CHECK: sub.w r5, r2, r12, rrx2091 20920xa5 0xeb 0x06 0x0420930xa5 0xeb 0x46 0x1420940xa5 0xeb 0x56 0x1420950xa5 0xeb 0x56 0x1420960xa5 0xeb 0x66 0x1420970xa5 0xeb 0x76 0x1420980xa2 0xeb 0x3c 0x052099 2100 2101#------------------------------------------------------------------------------2102# SVC2103#------------------------------------------------------------------------------2104# CHECK: svc #02105# CHECK: ite eq2106# CHECK: svceq #2552107# CHECK: svcne #332108 21090x00 0xdf21100x0c 0xbf21110xff 0xdf21120x21 0xdf2113 2114#------------------------------------------------------------------------------2115# SXTAB2116#------------------------------------------------------------------------------2117# CHECK: sxtab r2, r3, r42118# CHECK: sxtab r4, r5, r62119# CHECK: it lt2120# CHECK: sxtablt r6, r2, r9, ror #82121# CHECK: sxtab r5, r1, r4, ror #162122# CHECK: sxtab r7, r8, r3, ror #242123 21240x43 0xfa 0x84 0xf221250x45 0xfa 0x86 0xf421260xb8 0xbf21270x42 0xfa 0x99 0xf621280x41 0xfa 0xa4 0xf521290x48 0xfa 0xb3 0xf72130 2131 2132#------------------------------------------------------------------------------2133# SXTAB162134#------------------------------------------------------------------------------2135# CHECK: sxtab16 r6, r2, r72136# CHECK: sxtab16 r3, r5, r8, ror #82137# CHECK: sxtab16 r3, r2, r1, ror #162138# CHECK: ite ne2139# CHECK: sxtab16ne r0, r1, r42140# CHECK: sxtab16eq r1, r2, r3, ror #242141 21420x22 0xfa 0x87 0xf621430x25 0xfa 0x98 0xf321440x22 0xfa 0xa1 0xf321450x14 0xbf21460x21 0xfa 0x84 0xf021470x22 0xfa 0xb3 0xf12148 2149 2150#------------------------------------------------------------------------------2151# SXTAH2152#------------------------------------------------------------------------------2153# CHECK: sxtah r1, r3, r92154# CHECK: sxtah r3, r8, r3, ror #82155# CHECK: sxtah r9, r3, r3, ror #242156# CHECK: ite hi2157# CHECK: sxtahhi r6, r1, r62158# CHECK: sxtahls r2, r2, r4, ror #162159 21600x03 0xfa 0x89 0xf121610x08 0xfa 0x93 0xf321620x03 0xfa 0xb3 0xf921630x8c 0xbf21640x01 0xfa 0x86 0xf621650x02 0xfa 0xa4 0xf22166 2167 2168#------------------------------------------------------------------------------2169# SXTB2170#------------------------------------------------------------------------------2171# CHECK: sxtb r5, r62172# CHECK: sxtb.w r6, r9, ror #82173# CHECK: sxtb.w r8, r3, ror #242174# CHECK: ite ge2175# CHECK: sxtbge r2, r42176# CHECK: sxtblt.w r5, r1, ror #162177 21780x75 0xb221790x4f 0xfa 0x99 0xf621800x4f 0xfa 0xb3 0xf821810xac 0xbf21820x62 0xb221830x4f 0xfa 0xa1 0xf52184 2185 2186#------------------------------------------------------------------------------2187# SXTB162188#------------------------------------------------------------------------------2189# CHECK: sxtb16 r1, r42190# CHECK: sxtb16 r6, r72191# CHECK: sxtb16 r3, r1, ror #162192# CHECK: ite hs2193# CHECK: sxtb16hs r3, r5, ror #82194# CHECK: sxtb16lo r2, r3, ror #242195 21960x2f 0xfa 0x84 0xf121970x2f 0xfa 0x87 0xf621980x2f 0xfa 0xa1 0xf321990x2c 0xbf22000x2f 0xfa 0x95 0xf322010x2f 0xfa 0xb3 0xf22202 2203 2204#------------------------------------------------------------------------------2205# SXTH2206#------------------------------------------------------------------------------2207# CHECK: sxth r1, r62208# CHECK: sxth.w r3, r8, ror #82209# CHECK: sxth.w r9, r3, ror #242210# CHECK: itt ne2211# CHECK: sxthne.w r3, r92212# CHECK: sxthne.w r2, r2, ror #162213 22140x31 0xb222150x0f 0xfa 0x98 0xf322160x0f 0xfa 0xb3 0xf922170x1c 0xbf22180x0f 0xfa 0x89 0xf322190x0f 0xfa 0xa2 0xf22220 2221 2222#------------------------------------------------------------------------------2223# SXTB2224#------------------------------------------------------------------------------2225# CHECK: sxtb r5, r62226# CHECK: sxtb.w r6, r9, ror #82227# CHECK: sxtb.w r8, r3, ror #242228# CHECK: ite ge2229# CHECK: sxtbge r2, r42230# CHECK: sxtblt.w r5, r1, ror #162231 22320x75 0xb222330x4f 0xfa 0x99 0xf622340x4f 0xfa 0xb3 0xf822350xac 0xbf22360x62 0xb222370x4f 0xfa 0xa1 0xf52238 2239 2240#------------------------------------------------------------------------------2241# SXTB162242#------------------------------------------------------------------------------2243# CHECK: sxtb16 r1, r42244# CHECK: sxtb16 r6, r72245# CHECK: sxtb16 r3, r1, ror #162246# CHECK: ite hs2247# CHECK: sxtb16hs r3, r5, ror #82248# CHECK: sxtb16lo r2, r3, ror #242249 22500x2f 0xfa 0x84 0xf122510x2f 0xfa 0x87 0xf622520x2f 0xfa 0xa1 0xf322530x2c 0xbf22540x2f 0xfa 0x95 0xf322550x2f 0xfa 0xb3 0xf22256 2257 2258#------------------------------------------------------------------------------2259# SXTH2260#------------------------------------------------------------------------------2261# CHECK: sxth r1, r62262# CHECK: sxth.w r3, r8, ror #82263# CHECK: sxth.w r9, r3, ror #242264# CHECK: itt ne2265# CHECK: sxthne.w r3, r92266# CHECK: sxthne.w r2, r2, ror #162267 22680x31 0xb222690x0f 0xfa 0x98 0xf322700x0f 0xfa 0xb3 0xf922710x1c 0xbf22720x0f 0xfa 0x89 0xf322730x0f 0xfa 0xa2 0xf22274 2275 2276#------------------------------------------------------------------------------2277# TBB/TBH2278#------------------------------------------------------------------------------2279# CHECK: tbb [r3, r8]2280# CHECK: tbh [r3, r8, lsl #1]2281# CHECK: it eq2282# CHECK: tbbeq [r3, r8]2283# CHECK: it hs2284# CHECK: tbhhs [r3, r8, lsl #1]2285 22860xd3 0xe8 0x08 0xf022870xd3 0xe8 0x18 0xf022880x08 0xbf22890xd3 0xe8 0x08 0xf022900x28 0xbf22910xd3 0xe8 0x18 0xf02292 2293 2294#------------------------------------------------------------------------------2295# TEQ2296#------------------------------------------------------------------------------2297# CHECK: teq.w r5, #614402298# CHECK: teq.w r4, r52299# CHECK: teq.w r4, r5, lsl #52300# CHECK: teq.w r4, r5, lsr #52301# CHECK: teq.w r4, r5, lsr #52302# CHECK: teq.w r4, r5, asr #52303# CHECK: teq.w r4, r5, ror #52304 23050x95 0xf4 0x70 0x4f23060x94 0xea 0x05 0x0f23070x94 0xea 0x45 0x1f23080x94 0xea 0x55 0x1f23090x94 0xea 0x55 0x1f23100x94 0xea 0x65 0x1f23110x94 0xea 0x75 0x1f2312 2313 2314#------------------------------------------------------------------------------2315# TST2316#------------------------------------------------------------------------------2317# CHECK: tst.w r5, #614402318# CHECK: tst r2, r52319# CHECK: tst.w r3, r12, lsl #52320# CHECK: tst.w r4, r11, lsr #42321# CHECK: tst.w r5, r10, lsr #122322# CHECK: tst.w r6, r9, asr #302323# CHECK: tst.w r7, r8, ror #22324 23250x15 0xf4 0x70 0x4f23260x2a 0x4223270x13 0xea 0x4c 0x1f23280x14 0xea 0x1b 0x1f23290x15 0xea 0x1a 0x3f23300x16 0xea 0xa9 0x7f23310x17 0xea 0xb8 0x0f2332 2333 2334#------------------------------------------------------------------------------2335# UADD16/UADD82336#------------------------------------------------------------------------------2337# CHECK: uadd16 r1, r2, r32338# CHECK: uadd8 r1, r2, r32339# CHECK: ite gt2340# CHECK: uadd16gt r1, r2, r32341# CHECK: uadd8le r1, r2, r32342 23430x92 0xfa 0x43 0xf123440x82 0xfa 0x43 0xf123450xcc 0xbf23460x92 0xfa 0x43 0xf123470x82 0xfa 0x43 0xf12348 2349 2350#------------------------------------------------------------------------------2351# UASX2352#------------------------------------------------------------------------------2353# CHECK: uasx r9, r12, r02354# CHECK: it eq2355# CHECK: uasxeq r9, r12, r02356# CHECK: uasx r9, r12, r02357# CHECK: it eq2358# CHECK: uasxeq r9, r12, r02359 23600xac 0xfa 0x40 0xf923610x08 0xbf23620xac 0xfa 0x40 0xf923630xac 0xfa 0x40 0xf923640x08 0xbf23650xac 0xfa 0x40 0xf92366 2367 2368#------------------------------------------------------------------------------2369# UBFX2370#------------------------------------------------------------------------------2371# CHECK: ubfx r4, r5, #16, #12372# CHECK: it gt2373# CHECK: ubfxgt r4, r5, #16, #162374 23750xc5 0xf3 0x00 0x4423760xc8 0xbf23770xc5 0xf3 0x0f 0x442378 2379 2380#------------------------------------------------------------------------------2381# UHADD16/UHADD82382#------------------------------------------------------------------------------2383# CHECK: uhadd16 r4, r8, r22384# CHECK: uhadd8 r4, r8, r22385# CHECK: itt gt2386# CHECK: uhadd16gt r4, r8, r22387# CHECK: uhadd8gt r4, r8, r22388 23890x98 0xfa 0x62 0xf423900x88 0xfa 0x62 0xf423910xc4 0xbf23920x98 0xfa 0x62 0xf423930x88 0xfa 0x62 0xf42394 2395 2396#------------------------------------------------------------------------------2397# UHASX/UHSAX2398#------------------------------------------------------------------------------2399# CHECK: uhasx r4, r1, r52400# CHECK: uhsax r5, r6, r62401# CHECK: itt gt2402# CHECK: uhasxgt r6, r9, r82403# CHECK: uhsaxgt r7, r8, r122404 24050xa1 0xfa 0x65 0xf424060xe6 0xfa 0x66 0xf524070xc4 0xbf24080xa9 0xfa 0x68 0xf624090xe8 0xfa 0x6c 0xf72410 2411#------------------------------------------------------------------------------2412# UHSUB16/UHSUB82413#------------------------------------------------------------------------------2414# CHECK: uhsub16 r5, r8, r32415# CHECK: uhsub8 r1, r7, r62416# CHECK: itt lt2417# CHECK: uhsub16lt r4, r9, r122418# CHECK: uhsub8lt r3, r1, r52419 24200xd8 0xfa 0x63 0xf524210xc7 0xfa 0x66 0xf124220xbc 0xbf24230xd9 0xfa 0x6c 0xf424240xc1 0xfa 0x65 0xf32425 2426 2427#------------------------------------------------------------------------------2428# UMAAL2429#------------------------------------------------------------------------------2430# CHECK: umaal r3, r4, r5, r62431# CHECK: it lt2432# CHECK: umaallt r3, r4, r5, r62433 24340xe5 0xfb 0x66 0x3424350xb8 0xbf24360xe5 0xfb 0x66 0x342437 2438 2439#------------------------------------------------------------------------------2440# UMLAL2441#------------------------------------------------------------------------------2442# CHECK: umlal r2, r4, r6, r82443# CHECK: it gt2444# CHECK: umlalgt r6, r1, r2, r62445 24460xe6 0xfb 0x08 0x2424470xc8 0xbf24480xe2 0xfb 0x06 0x612449 2450 2451#------------------------------------------------------------------------------2452# UMULL2453#------------------------------------------------------------------------------2454# CHECK: umull r2, r4, r6, r82455# CHECK: it gt2456# CHECK: umullgt r6, r1, r2, r62457 24580xa6 0xfb 0x08 0x2424590xc8 0xbf24600xa2 0xfb 0x06 0x612461 2462 2463#------------------------------------------------------------------------------2464# UQADD16/UQADD82465#------------------------------------------------------------------------------2466# CHECK: uqadd16 r1, r2, r32467# CHECK: uqadd8 r3, r4, r82468# CHECK: ite gt2469# CHECK: uqadd16gt r4, r7, r92470# CHECK: uqadd8le r8, r1, r22471 24720x92 0xfa 0x53 0xf124730x84 0xfa 0x58 0xf324740xcc 0xbf24750x97 0xfa 0x59 0xf424760x81 0xfa 0x52 0xf82477 2478 2479#------------------------------------------------------------------------------2480# UQASX/UQSAX2481#------------------------------------------------------------------------------2482# CHECK: uqasx r1, r2, r32483# CHECK: uqsax r3, r4, r82484# CHECK: ite gt2485# CHECK: uqasxgt r4, r7, r92486# CHECK: uqsaxle r8, r1, r22487 24880xa2 0xfa 0x53 0xf124890xe4 0xfa 0x58 0xf324900xcc 0xbf24910xa7 0xfa 0x59 0xf424920xe1 0xfa 0x52 0xf82493 2494 2495#------------------------------------------------------------------------------2496# UQSUB16/UQSUB82497#------------------------------------------------------------------------------2498# CHECK: uqsub8 r8, r2, r92499# CHECK: uqsub16 r1, r9, r72500# CHECK: ite gt2501# CHECK: uqsub8gt r3, r1, r62502# CHECK: uqsub16le r4, r6, r42503 25040xc2 0xfa 0x59 0xf825050xd9 0xfa 0x57 0xf125060xcc 0xbf25070xc1 0xfa 0x56 0xf325080xd6 0xfa 0x54 0xf42509 2510 2511#------------------------------------------------------------------------------2512# UQSUB16/UQSUB82513#------------------------------------------------------------------------------2514# CHECK: usad8 r1, r9, r72515# CHECK: usada8 r8, r2, r9, r122516# CHECK: ite gt2517# CHECK: usada8gt r3, r1, r6, r92518# CHECK: usad8le r4, r6, r42519 25200x79 0xfb 0x07 0xf125210x72 0xfb 0x09 0xc825220xcc 0xbf25230x71 0xfb 0x06 0x9325240x76 0xfb 0x04 0xf42525 2526 2527#------------------------------------------------------------------------------2528# USAT2529#------------------------------------------------------------------------------2530# CHECK: usat r8, #1, r102531# CHECK: usat r8, #4, r102532# CHECK: usat r8, #5, r10, lsl #312533# CHECK: usat r8, #16, r10, asr #12534 25350x8a 0xf3 0x01 0x0825360x8a 0xf3 0x04 0x0825370x8a 0xf3 0xc5 0x7825380xaa 0xf3 0x50 0x082539 2540 2541#------------------------------------------------------------------------------2542# USAT162543#------------------------------------------------------------------------------2544# CHECK: usat16 r2, #2, r72545# CHECK: usat16 r3, #15, r52546 25470xa7 0xf3 0x02 0x0225480xa5 0xf3 0x0f 0x032549 2550 2551#------------------------------------------------------------------------------2552# USAX2553#------------------------------------------------------------------------------2554# CHECK: usax r2, r3, r42555# CHECK: it ne2556# CHECK: usaxne r6, r1, r92557# CHECK: usax r2, r3, r42558# CHECK: it ne2559# CHECK: usaxne r6, r1, r92560 25610xe3 0xfa 0x44 0xf225620x18 0xbf25630xe1 0xfa 0x49 0xf625640xe3 0xfa 0x44 0xf225650x18 0xbf25660xe1 0xfa 0x49 0xf62567 2568 2569#------------------------------------------------------------------------------2570# USUB16/USUB82571#------------------------------------------------------------------------------2572# CHECK: usub16 r4, r2, r72573# CHECK: usub8 r1, r8, r52574# CHECK: ite hi2575# CHECK: usub16hi r1, r1, r32576# CHECK: usub8ls r9, r2, r32577 25780xd2 0xfa 0x47 0xf425790xc8 0xfa 0x45 0xf125800x8c 0xbf25810xd1 0xfa 0x43 0xf125820xc2 0xfa 0x43 0xf92583 2584 2585#------------------------------------------------------------------------------2586# UXTAB2587#------------------------------------------------------------------------------2588# CHECK: uxtab r2, r3, r42589# CHECK: uxtab r4, r5, r62590# CHECK: it lt2591# CHECK: uxtablt r6, r2, r9, ror #82592# CHECK: uxtab r5, r1, r4, ror #162593# CHECK: uxtab r7, r8, r3, ror #242594 25950x53 0xfa 0x84 0xf225960x55 0xfa 0x86 0xf425970xb8 0xbf25980x52 0xfa 0x99 0xf625990x51 0xfa 0xa4 0xf526000x58 0xfa 0xb3 0xf72601 2602 2603#------------------------------------------------------------------------------2604# UXTAB162605#------------------------------------------------------------------------------2606# CHECK: it ge2607# CHECK: uxtab16ge r0, r1, r42608# CHECK: uxtab16 r6, r2, r72609# CHECK: uxtab16 r3, r5, r8, ror #82610# CHECK: uxtab16 r3, r2, r1, ror #162611# CHECK: it eq2612# CHECK: uxtab16eq r1, r2, r3, ror #242613 26140xa8 0xbf26150x31 0xfa 0x84 0xf026160x32 0xfa 0x87 0xf626170x35 0xfa 0x98 0xf326180x32 0xfa 0xa1 0xf326190x08 0xbf26200x32 0xfa 0xb3 0xf12621 2622 2623#------------------------------------------------------------------------------2624# UXTAH2625#------------------------------------------------------------------------------2626# CHECK: uxtah r1, r3, r92627# CHECK: it hi2628# CHECK: uxtahhi r6, r1, r62629# CHECK: uxtah r3, r8, r3, ror #82630# CHECK: it lo2631# CHECK: uxtahlo r2, r2, r4, ror #162632# CHECK: uxtah r9, r3, r3, ror #242633 26340x13 0xfa 0x89 0xf126350x88 0xbf26360x11 0xfa 0x86 0xf626370x18 0xfa 0x93 0xf326380x38 0xbf26390x12 0xfa 0xa4 0xf226400x13 0xfa 0xb3 0xf92641 2642 2643#------------------------------------------------------------------------------2644# UXTB2645#------------------------------------------------------------------------------2646# CHECK: it ge2647# CHECK: uxtbge r2, r42648# CHECK: uxtb r5, r62649# CHECK: uxtb.w r6, r9, ror #82650# CHECK: it lo2651# CHECK: uxtblo.w r5, r1, ror #162652# CHECK: uxtb.w r8, r3, ror #242653 26540xa8 0xbf26550xe2 0xb226560xf5 0xb226570x5f 0xfa 0x99 0xf626580x38 0xbf26590x5f 0xfa 0xa1 0xf526600x5f 0xfa 0xb3 0xf82661 2662 2663#------------------------------------------------------------------------------2664# UXTB162665#------------------------------------------------------------------------------2666# CHECK: uxtb16 r1, r42667# CHECK: uxtb16 r6, r72668# CHECK: it hs2669# CHECK: uxtb16hs r3, r5, ror #82670# CHECK: uxtb16 r3, r1, ror #162671# CHECK: it ge2672# CHECK: uxtb16ge r2, r3, ror #242673 26740x3f 0xfa 0x84 0xf126750x3f 0xfa 0x87 0xf626760x28 0xbf26770x3f 0xfa 0x95 0xf326780x3f 0xfa 0xa1 0xf326790xa8 0xbf26800x3f 0xfa 0xb3 0xf22681 2682 2683#------------------------------------------------------------------------------2684# UXTH2685#------------------------------------------------------------------------------2686# CHECK: it ne2687# CHECK: uxthne.w r3, r92688# CHECK: uxth r1, r62689# CHECK: uxth.w r3, r8, ror #82690# CHECK: it le2691# CHECK: uxthle.w r2, r2, ror #162692# CHECK: uxth.w r9, r3, ror #242693 26940x18 0xbf26950x1f 0xfa 0x89 0xf326960xb1 0xb226970x1f 0xfa 0x98 0xf326980xd8 0xbf26990x1f 0xfa 0xa2 0xf227000x1f 0xfa 0xb3 0xf92701 2702 2703#------------------------------------------------------------------------------2704# WFE/WFI/YIELD2705#------------------------------------------------------------------------------2706# CHECK: wfe2707# CHECK: wfi2708# CHECK: yield2709# CHECK: itet lt2710# CHECK: wfelt2711# CHECK: wfige2712# CHECK: yieldlt2713 27140x20 0xbf27150x30 0xbf27160x10 0xbf27170xb6 0xbf27180x20 0xbf27190x30 0xbf27200x10 0xbf2721 2722#------------------------------------------------------------------------------2723# Unallocated hints (They execute as NOPs, but software must not use them.)2724#------------------------------------------------------------------------------2725# CHECK: hint #62726# CHECK: hint.w #62727# CHECK: hint.w #1022728 27290x60 0xbf27300xaf 0xf3 0x06 0x8027310xaf 0xf3 0x66 0x802732 2733