| # RUN: llvm-mc -triple=thumbv7-apple-darwin -disassemble < %s | FileCheck %s |
| |
| #------------------------------------------------------------------------------ |
| # ADC (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: adc r0, r1, #4 |
| # CHECK: adcs r0, r1, #0 |
| # CHECK: adc r1, r2, #255 |
| # CHECK: adc r3, r7, #5570645 |
| # CHECK: adc r8, r12, #2852170240 |
| # CHECK: adc r9, r7, #2779096485 |
| # CHECK: adc r5, r3, #2264924160 |
| # CHECK: adc r4, r2, #2139095040 |
| # CHECK: adc r4, r2, #1664 |
| |
| 0x41 0xf1 0x04 0x00 |
| 0x51 0xf1 0x00 0x00 |
| 0x42 0xf1 0xff 0x01 |
| 0x47 0xf1 0x55 0x13 |
| 0x4c 0xf1 0xaa 0x28 |
| 0x47 0xf1 0xa5 0x39 |
| 0x43 0xf1 0x07 0x45 |
| 0x42 0xf1 0xff 0x44 |
| 0x42 0xf5 0xd0 0x64 |
| |
| #------------------------------------------------------------------------------ |
| # ADC (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: adc.w r4, r5, r6 |
| # CHECK: adcs.w r4, r5, r6 |
| # CHECK: adc.w r9, r1, r3 |
| # CHECK: adcs.w r9, r1, r3 |
| # CHECK: adc.w r0, r1, r3, ror #4 |
| # CHECK: adcs.w r0, r1, r3, lsl #7 |
| # CHECK: adc.w r0, r1, r3, lsr #31 |
| # CHECK: adcs.w r0, r1, r3, asr #32 |
| |
| 0x45 0xeb 0x06 0x04 |
| 0x55 0xeb 0x06 0x04 |
| 0x41 0xeb 0x03 0x09 |
| 0x51 0xeb 0x03 0x09 |
| 0x41 0xeb 0x33 0x10 |
| 0x51 0xeb 0xc3 0x10 |
| 0x41 0xeb 0xd3 0x70 |
| 0x51 0xeb 0x23 0x00 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ADD (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: itet eq |
| # CHECK: addeq r1, r2, #4 |
| # CHECK: addwne r5, r3, #1023 |
| # CHECK: addweq r4, r5, #293 |
| # CHECK: add.w r2, sp, #1024 |
| # CHECK: add.w r2, r8, #65280 |
| # CHECK: addw r2, r3, #257 |
| # CHECK: add.w r12, r6, #256 |
| # CHECK: addw r12, r6, #256 |
| # CHECK: adds.w r1, r2, #496 |
| |
| 0x0a 0xbf |
| 0x11 0x1d |
| 0x03 0xf2 0xff 0x35 |
| 0x05 0xf2 0x25 0x14 |
| 0x0d 0xf5 0x80 0x62 |
| 0x08 0xf5 0x7f 0x42 |
| 0x03 0xf2 0x01 0x12 |
| 0x06 0xf5 0x80 0x7c |
| 0x06 0xf2 0x00 0x1c |
| 0x12 0xf5 0xf8 0x71 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ADD (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: add.w r1, r2, r8 |
| # CHECK: add.w r5, r9, r2, asr #32 |
| # CHECK: adds.w r7, r3, r1, lsl #31 |
| # CHECK: adds.w r0, r3, r6, lsr #25 |
| # CHECK: add.w r4, r8, r1, ror #12 |
| |
| 0x02 0xeb 0x08 0x01 |
| 0x09 0xeb 0x22 0x05 |
| 0x13 0xeb 0xc1 0x77 |
| 0x13 0xeb 0x56 0x60 |
| 0x08 0xeb 0x31 0x34 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ADR |
| #------------------------------------------------------------------------------ |
| # CHECK: subw r11, pc, #3270 |
| # CHECK: subw r11, pc, #826 |
| |
| 0xaf 0xf6 0xc6 0x4b |
| 0xaf 0xf2 0x3a 0x3b |
| |
| #------------------------------------------------------------------------------ |
| # AND (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: and r2, r5, #1044480 |
| # CHECK: ands r3, r12, #15 |
| # CHECK: and r1, r1, #255 |
| |
| 0x05 0xf4 0x7f 0x22 |
| 0x1c 0xf0 0x0f 0x03 |
| 0x01 0xf0 0xff 0x01 |
| |
| |
| #------------------------------------------------------------------------------ |
| # AND (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: and.w r4, r9, r8 |
| # CHECK: and.w r1, r4, r8, asr #3 |
| # CHECK: ands.w r2, r1, r7, lsl #1 |
| # CHECK: ands.w r4, r5, r2, lsr #20 |
| # CHECK: and.w r9, r12, r1, ror #17 |
| |
| 0x09 0xea 0x08 0x04 |
| 0x04 0xea 0xe8 0x01 |
| 0x11 0xea 0x47 0x02 |
| 0x15 0xea 0x12 0x54 |
| 0x0c 0xea 0x71 0x49 |
| |
| #------------------------------------------------------------------------------ |
| # ASR (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: asr.w r2, r3, #12 |
| # CHECK: asrs.w r8, r3, #32 |
| # CHECK: asrs.w r2, r3, #1 |
| # CHECK: asr.w r2, r3, #4 |
| # CHECK: asrs.w r2, r12, #15 |
| |
| # CHECK: asr.w r3, r3, #19 |
| # CHECK: asrs.w r8, r8, #2 |
| # CHECK: asrs.w r7, r7, #5 |
| # CHECK: asr.w r12, r12, #21 |
| |
| 0x4f 0xea 0x23 0x32 |
| 0x5f 0xea 0x23 0x08 |
| 0x5f 0xea 0x63 0x02 |
| 0x4f 0xea 0x23 0x12 |
| 0x5f 0xea 0xec 0x32 |
| |
| 0x4f 0xea 0xe3 0x43 |
| 0x5f 0xea 0xa8 0x08 |
| 0x5f 0xea 0x67 0x17 |
| 0x4f 0xea 0x6c 0x5c |
| |
| |
| #------------------------------------------------------------------------------ |
| # ASR (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: asr.w r3, r4, r2 |
| # CHECK: asr.w r1, r1, r2 |
| # CHECK: asrs.w r3, r4, r8 |
| |
| 0x44 0xfa 0x02 0xf3 |
| 0x41 0xfa 0x02 0xf1 |
| 0x54 0xfa 0x08 0xf3 |
| |
| #------------------------------------------------------------------------------ |
| # B |
| #------------------------------------------------------------------------------ |
| # CHECK: bmi.w #-183396 |
| |
| 0x13 0xf5 0xce 0xa9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # BFC |
| #------------------------------------------------------------------------------ |
| # CHECK: bfc r5, #3, #17 |
| # CHECK: it lo |
| # CHECK: bfclo r5, #3, #17 |
| |
| 0x6f 0xf3 0xd3 0x05 |
| 0x38 0xbf |
| 0x6f 0xf3 0xd3 0x05 |
| |
| |
| #------------------------------------------------------------------------------ |
| # BFI |
| #------------------------------------------------------------------------------ |
| # CHECK: bfi r5, r2, #3, #17 |
| # CHECK: it ne |
| # CHECK: bfine r5, r2, #3, #17 |
| # CHECK: bfi r6, r0, #0, #32 |
| # CHECK: bfi r6, r0, #31, #1 |
| |
| 0x62 0xf3 0xd3 0x05 |
| 0x18 0xbf |
| 0x62 0xf3 0xd3 0x05 |
| 0x60 0xf3 0x1f 0x06 |
| 0x60 0xf3 0xdf 0x76 |
| |
| |
| #------------------------------------------------------------------------------ |
| # BIC |
| #------------------------------------------------------------------------------ |
| # CHECK: bic r10, r1, #15 |
| # CHECK: bic.w r12, r3, r6 |
| # CHECK: bic.w r11, r2, r6, lsl #12 |
| # CHECK: bic.w r8, r4, r1, lsr #11 |
| # CHECK: bic.w r7, r5, r7, lsr #15 |
| # CHECK: bic.w r6, r7, r9, asr #32 |
| # CHECK: bic.w r5, r6, r8, ror #1 |
| |
| # CHECK: bic r1, r1, #15 |
| # CHECK: bic.w r1, r1, r1 |
| # CHECK: bic.w r4, r4, r2, lsl #31 |
| # CHECK: bic.w r6, r6, r3, lsr #12 |
| # CHECK: bic.w r7, r7, r4, lsr #7 |
| # CHECK: bic.w r8, r8, r5, asr #15 |
| # CHECK: bic.w r12, r12, r6, ror #29 |
| |
| 0x21 0xf0 0x0f 0x0a |
| 0x23 0xea 0x06 0x0c |
| 0x22 0xea 0x06 0x3b |
| 0x24 0xea 0xd1 0x28 |
| 0x25 0xea 0xd7 0x37 |
| 0x27 0xea 0x29 0x06 |
| 0x26 0xea 0x78 0x05 |
| |
| 0x21 0xf0 0x0f 0x01 |
| 0x21 0xea 0x01 0x01 |
| 0x24 0xea 0xc2 0x74 |
| 0x26 0xea 0x13 0x36 |
| 0x27 0xea 0xd4 0x17 |
| 0x28 0xea 0xe5 0x38 |
| 0x2c 0xea 0x76 0x7c |
| |
| |
| #------------------------------------------------------------------------------ |
| # BXJ |
| #------------------------------------------------------------------------------ |
| # CHECK: bxj r5 |
| # CHECK: it ne |
| # CHECK: bxjne r7 |
| |
| 0xc5 0xf3 0x00 0x8f |
| 0x18 0xbf |
| 0xc7 0xf3 0x00 0x8f |
| |
| |
| #------------------------------------------------------------------------------ |
| # CBZ/CBNZ |
| #------------------------------------------------------------------------------ |
| # CHECK: cbnz r7, #6 |
| # CHECK: cbnz r7, #12 |
| |
| 0x1f 0xb9 |
| 0x37 0xb9 |
| |
| #------------------------------------------------------------------------------ |
| # CDP/CDP2 |
| #------------------------------------------------------------------------------ |
| # CHECK: cdp p7, #1, c1, c1, c1, #4 |
| # CHECK: cdp2 p7, #1, c1, c1, c1, #4 |
| |
| 0x11 0xee 0x81 0x17 |
| 0x11 0xfe 0x81 0x17 |
| |
| |
| #------------------------------------------------------------------------------ |
| # CLREX |
| #------------------------------------------------------------------------------ |
| #CHECK: clrex |
| #CHECK: it ne |
| #CHECK: clrexne |
| |
| 0xbf 0xf3 0x2f 0x8f |
| 0x18 0xbf |
| 0xbf 0xf3 0x2f 0x8f |
| |
| |
| #------------------------------------------------------------------------------ |
| # CLZ |
| #------------------------------------------------------------------------------ |
| #CHECK: clz r1, r2 |
| #CHECK: it eq |
| #CHECK: clzeq r1, r2 |
| |
| 0xb2 0xfa 0x82 0xf1 |
| 0x08 0xbf |
| 0xb2 0xfa 0x82 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # CMN |
| #------------------------------------------------------------------------------ |
| #CHECK: cmn.w r1, #15 |
| #CHECK: cmn.w r8, r6 |
| #CHECK: cmn.w r1, r6, lsl #10 |
| #CHECK: cmn.w r1, r6, lsr #10 |
| #CHECK: cmn.w sp, r6, lsr #10 |
| #CHECK: cmn.w r1, r6, asr #10 |
| #CHECK: cmn.w r1, r6, ror #10 |
| |
| 0x11 0xf1 0x0f 0x0f |
| 0x18 0xeb 0x06 0x0f |
| 0x11 0xeb 0x86 0x2f |
| 0x11 0xeb 0x96 0x2f |
| 0x1d 0xeb 0x96 0x2f |
| 0x11 0xeb 0xa6 0x2f |
| 0x11 0xeb 0xb6 0x2f |
| |
| |
| #------------------------------------------------------------------------------ |
| # CMP |
| #------------------------------------------------------------------------------ |
| #CHECK: cmp.w r5, #65280 |
| #CHECK: cmp.w r4, r12 |
| #CHECK: cmp.w r9, r6, lsl #12 |
| #CHECK: cmp.w r3, r7, lsr #31 |
| #CHECK: cmp.w sp, r6, lsr #1 |
| #CHECK: cmp.w r2, r5, asr #24 |
| #CHECK: cmp.w r1, r4, ror #15 |
| |
| 0xb5 0xf5 0x7f 0x4f |
| 0xb4 0xeb 0x0c 0x0f |
| 0xb9 0xeb 0x06 0x3f |
| 0xb3 0xeb 0xd7 0x7f |
| 0xbd 0xeb 0x56 0x0f |
| 0xb2 0xeb 0x25 0x6f |
| 0xb1 0xeb 0xf4 0x3f |
| |
| |
| #------------------------------------------------------------------------------ |
| # DBG |
| #------------------------------------------------------------------------------ |
| #CHECK: dbg #5 |
| #CHECK: dbg #0 |
| #CHECK: dbg #15 |
| |
| 0xaf 0xf3 0xf5 0x80 |
| 0xaf 0xf3 0xf0 0x80 |
| 0xaf 0xf3 0xff 0x80 |
| |
| |
| #------------------------------------------------------------------------------ |
| # DMB |
| #------------------------------------------------------------------------------ |
| #CHECK: dmb sy |
| #CHECK: dmb st |
| #CHECK: dmb ish |
| #CHECK: dmb ishst |
| #CHECK: dmb nsh |
| #CHECK: dmb nshst |
| #CHECK: dmb osh |
| #CHECK: dmb oshst |
| #CHECK: dmb |
| |
| 0xbf 0xf3 0x5f 0x8f |
| 0xbf 0xf3 0x5e 0x8f |
| 0xbf 0xf3 0x5b 0x8f |
| 0xbf 0xf3 0x5a 0x8f |
| 0xbf 0xf3 0x57 0x8f |
| 0xbf 0xf3 0x56 0x8f |
| 0xbf 0xf3 0x53 0x8f |
| 0xbf 0xf3 0x52 0x8f |
| 0xbf 0xf3 0x5f 0x8f |
| |
| |
| #------------------------------------------------------------------------------ |
| # DSB |
| #------------------------------------------------------------------------------ |
| #CHECK: dsb sy |
| #CHECK: dsb st |
| #CHECK: dsb ish |
| #CHECK: dsb ishst |
| #CHECK: dsb nsh |
| #CHECK: dsb nshst |
| #CHECK: dsb osh |
| #CHECK: dsb oshst |
| |
| 0xbf 0xf3 0x4f 0x8f |
| 0xbf 0xf3 0x4e 0x8f |
| 0xbf 0xf3 0x4b 0x8f |
| 0xbf 0xf3 0x4a 0x8f |
| 0xbf 0xf3 0x47 0x8f |
| 0xbf 0xf3 0x46 0x8f |
| 0xbf 0xf3 0x43 0x8f |
| 0xbf 0xf3 0x42 0x8f |
| |
| |
| #------------------------------------------------------------------------------ |
| # EOR |
| #------------------------------------------------------------------------------ |
| #CHECK: eor r4, r5, #61440 |
| #CHECK: eor.w r4, r5, r6 |
| #CHECK: eor.w r4, r5, r6, lsl #5 |
| #CHECK: eor.w r4, r5, r6, lsr #5 |
| #CHECK: eor.w r4, r5, r6, lsr #5 |
| #CHECK: eor.w r4, r5, r6, asr #5 |
| #CHECK: eor.w r4, r5, r6, ror #5 |
| |
| 0x85 0xf4 0x70 0x44 |
| 0x85 0xea 0x06 0x04 |
| 0x85 0xea 0x46 0x14 |
| 0x85 0xea 0x56 0x14 |
| 0x85 0xea 0x56 0x14 |
| 0x85 0xea 0x66 0x14 |
| 0x85 0xea 0x76 0x14 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ISB |
| #------------------------------------------------------------------------------ |
| #CHECK: isb sy |
| |
| 0xbf 0xf3 0x6f 0x8f |
| |
| #------------------------------------------------------------------------------ |
| # IT |
| #------------------------------------------------------------------------------ |
| # Test encodings of a few full IT blocks, not just the IT instruction |
| |
| # CHECK: iteet eq |
| # CHECK: addeq r0, r1, r2 |
| # CHECK: nopne |
| # CHECK: subne r5, r6, r7 |
| # CHECK: addeq r1, r2, #4 |
| |
| 0x0d 0xbf |
| 0x88 0x18 |
| 0x00 0xbf |
| 0xf5 0x1b |
| 0x11 0x1d |
| |
| # CHECK: ittee ls |
| # CHECK: addls r0, r1, r2 |
| # CHECK: nopls |
| # CHECK: subhi r5, r6, r7 |
| # CHECK: addhi r1, r2, #4 |
| |
| 0x99 0xbf |
| 0x88 0x18 |
| 0x00 0xbf |
| 0xf5 0x1b |
| 0x11 0x1d |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDMIA |
| #------------------------------------------------------------------------------ |
| # CHECK: ldm.w r4, {r4, r5, r8, r9} |
| # CHECK: ldm.w r4, {r5, r6} |
| # CHECK: ldm.w r5!, {r3, r8} |
| # CHECK: ldm.w r4, {r4, r5, r8, r9} |
| # CHECK: ldm.w r4, {r5, r6} |
| # CHECK: ldm.w r5!, {r3, r8} |
| # CHECK: ldm.w r5!, {r1, r2} |
| # CHECK: ldm.w r2, {r1, r2} |
| |
| # CHECK: ldm.w r4, {r4, r5, r8, r9} |
| # CHECK: ldm.w r4, {r5, r6} |
| # CHECK: ldm.w r5!, {r3, r8} |
| # CHECK: ldm.w r4, {r4, r5, r8, r9} |
| # CHECK: ldm.w r4, {r5, r6} |
| # CHECK: ldm.w r5!, {r3, r8} |
| # CHECK: ldm.w r5!, {r3, r8} |
| |
| 0x94 0xe8 0x30 0x03 |
| 0x94 0xe8 0x60 0x00 |
| 0xb5 0xe8 0x08 0x01 |
| 0x94 0xe8 0x30 0x03 |
| 0x94 0xe8 0x60 0x00 |
| 0xb5 0xe8 0x08 0x01 |
| 0xb5 0xe8 0x06 0x00 |
| 0x92 0xe8 0x06 0x00 |
| |
| 0x94 0xe8 0x30 0x03 |
| 0x94 0xe8 0x60 0x00 |
| 0xb5 0xe8 0x08 0x01 |
| 0x94 0xe8 0x30 0x03 |
| 0x94 0xe8 0x60 0x00 |
| 0xb5 0xe8 0x08 0x01 |
| 0xb5 0xe8 0x08 0x01 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDMDB |
| #------------------------------------------------------------------------------ |
| # CHECK: ldmdb r4, {r4, r5, r8, r9} |
| # CHECK: ldmdb r4, {r5, r6} |
| # CHECK: ldmdb r5!, {r3, r8} |
| # CHECK: ldmdb r5!, {r3, r8} |
| |
| 0x14 0xe9 0x30 0x03 |
| 0x14 0xe9 0x60 0x00 |
| 0x35 0xe9 0x08 0x01 |
| 0x35 0xe9 0x08 0x01 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDR(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldr r5, [r5, #-4] |
| # CHECK: ldr r5, [r6, #32] |
| # CHECK: ldr.w r5, [r6, #33] |
| # CHECK: ldr.w r5, [r6, #257] |
| # CHECK: ldr.w pc, [r7, #257] |
| |
| 0x55 0xf8 0x04 0x5c |
| 0x35 0x6a |
| 0xd6 0xf8 0x21 0x50 |
| 0xd6 0xf8 0x01 0x51 |
| 0xd7 0xf8 0x01 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDR(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldr.w r1, [r8, r1] |
| # CHECK: ldr.w r4, [r5, r2] |
| # CHECK: ldr.w r6, [r0, r2, lsl #3] |
| # CHECK: ldr.w r8, [r8, r2, lsl #2] |
| # CHECK: ldr.w r7, [sp, r2, lsl #1] |
| # CHECK: ldr.w r7, [sp, r2] |
| # CHECK: ldr r2, [r4, #255]! |
| # CHECK: ldr r8, [sp, #4]! |
| # CHECK: ldr lr, [sp, #-4]! |
| # CHECK: ldr r2, [r4], #255 |
| # CHECK: ldr r8, [sp], #4 |
| # CHECK: ldr lr, [sp], #-4 |
| |
| 0x58 0xf8 0x01 0x10 |
| 0x55 0xf8 0x02 0x40 |
| 0x50 0xf8 0x32 0x60 |
| 0x58 0xf8 0x22 0x80 |
| 0x5d 0xf8 0x12 0x70 |
| 0x5d 0xf8 0x02 0x70 |
| 0x54 0xf8 0xff 0x2f |
| 0x5d 0xf8 0x04 0x8f |
| 0x5d 0xf8 0x04 0xed |
| 0x54 0xf8 0xff 0x2b |
| 0x5d 0xf8 0x04 0x8b |
| 0x5d 0xf8 0x04 0xe9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRB(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrb r5, [r5, #-4] |
| # CHECK: ldrb.w r5, [r6, #32] |
| # CHECK: ldrb.w r5, [r6, #33] |
| # CHECK: ldrb.w r5, [r6, #257] |
| # CHECK: ldrb.w lr, [r7, #257] |
| |
| 0x15 0xf8 0x04 0x5c |
| 0x96 0xf8 0x20 0x50 |
| 0x96 0xf8 0x21 0x50 |
| 0x96 0xf8 0x01 0x51 |
| 0x97 0xf8 0x01 0xe1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRB(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrb.w r1, [r8, r1] |
| # CHECK: ldrb.w r4, [r5, r2] |
| # CHECK: ldrb.w r6, [r0, r2, lsl #3] |
| # CHECK: ldrb.w r8, [r8, r2, lsl #2] |
| # CHECK: ldrb.w r7, [sp, r2, lsl #1] |
| # CHECK: ldrb.w r7, [sp, r2] |
| # CHECK: ldrb r5, [r8, #255]! |
| # CHECK: ldrb r2, [r5, #4]! |
| # CHECK: ldrb r1, [r4, #-4]! |
| # CHECK: ldrb lr, [r3], #255 |
| # CHECK: ldrb r9, [r2], #4 |
| # CHECK: ldrb r3, [sp], #-4 |
| |
| 0x18 0xf8 0x01 0x10 |
| 0x15 0xf8 0x02 0x40 |
| 0x10 0xf8 0x32 0x60 |
| 0x18 0xf8 0x22 0x80 |
| 0x1d 0xf8 0x12 0x70 |
| 0x1d 0xf8 0x02 0x70 |
| 0x18 0xf8 0xff 0x5f |
| 0x15 0xf8 0x04 0x2f |
| 0x14 0xf8 0x04 0x1d |
| 0x13 0xf8 0xff 0xeb |
| 0x12 0xf8 0x04 0x9b |
| 0x1d 0xf8 0x04 0x39 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRBT |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrbt r1, [r2] |
| # CHECK: ldrbt r1, [r8] |
| # CHECK: ldrbt r1, [r8, #3] |
| # CHECK: ldrbt r1, [r8, #255] |
| |
| 0x12 0xf8 0x00 0x1e |
| 0x18 0xf8 0x00 0x1e |
| 0x18 0xf8 0x03 0x1e |
| 0x18 0xf8 0xff 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRD(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrd r3, r5, [r6, #24] |
| # CHECK: ldrd r3, r5, [r6, #24]! |
| # CHECK: ldrd r3, r5, [r6], #4 |
| # CHECK: ldrd r3, r5, [r6], #-8 |
| # CHECK: ldrd r3, r5, [r6] |
| # CHECK: ldrd r8, r1, [r3] |
| |
| 0xd6 0xe9 0x06 0x35 |
| 0xf6 0xe9 0x06 0x35 |
| 0xf6 0xe8 0x01 0x35 |
| 0x76 0xe8 0x02 0x35 |
| 0xd6 0xe9 0x00 0x35 |
| 0xd3 0xe9 0x00 0x81 |
| |
| |
| #------------------------------------------------------------------------------ |
| # FIXME: LDRD(literal) |
| #------------------------------------------------------------------------------ |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDREX/LDREXB/LDREXH/LDREXD |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrex r1, [r4] |
| # CHECK: ldrex r8, [r4] |
| # CHECK: ldrex r2, [sp, #128] |
| # CHECK: ldrexb r5, [r7] |
| # CHECK: ldrexh r9, [r12] |
| # CHECK: ldrexd r9, r3, [r4] |
| |
| 0x54 0xe8 0x00 0x1f |
| 0x54 0xe8 0x00 0x8f |
| 0x5d 0xe8 0x20 0x2f |
| 0xd7 0xe8 0x4f 0x5f |
| 0xdc 0xe8 0x5f 0x9f |
| 0xd4 0xe8 0x7f 0x93 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRH(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrh r5, [r5, #-4] |
| # CHECK: ldrh r5, [r6, #32] |
| # CHECK: ldrh.w r5, [r6, #33] |
| # CHECK: ldrh.w r5, [r6, #257] |
| # CHECK: ldrh.w lr, [r7, #257] |
| # CHECK: ldrh.w r0, [pc, #-21] |
| |
| 0x35 0xf8 0x04 0x5c |
| 0x35 0x8c |
| 0xb6 0xf8 0x21 0x50 |
| 0xb6 0xf8 0x01 0x51 |
| 0xb7 0xf8 0x01 0xe1 |
| 0x3f 0xf8 0x15 0x00 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRH(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrh.w r1, [r8, r1] |
| # CHECK: ldrh.w r4, [r5, r2] |
| # CHECK: ldrh.w r6, [r0, r2, lsl #3] |
| # CHECK: ldrh.w r8, [r8, r2, lsl #2] |
| # CHECK: ldrh.w r7, [sp, r2, lsl #1] |
| # CHECK: ldrh.w r7, [sp, r2] |
| # CHECK: ldrh r5, [r8, #255]! |
| # CHECK: ldrh r2, [r5, #4]! |
| # CHECK: ldrh r1, [r4, #-4]! |
| # CHECK: ldrh lr, [r3], #255 |
| # CHECK: ldrh r9, [r2], #4 |
| # CHECK: ldrh r3, [sp], #-4 |
| |
| 0x38 0xf8 0x01 0x10 |
| 0x35 0xf8 0x02 0x40 |
| 0x30 0xf8 0x32 0x60 |
| 0x38 0xf8 0x22 0x80 |
| 0x3d 0xf8 0x12 0x70 |
| 0x3d 0xf8 0x02 0x70 |
| 0x38 0xf8 0xff 0x5f |
| 0x35 0xf8 0x04 0x2f |
| 0x34 0xf8 0x04 0x1d |
| 0x33 0xf8 0xff 0xeb |
| 0x32 0xf8 0x04 0x9b |
| 0x3d 0xf8 0x04 0x39 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRSB(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsb r5, [r5, #-4] |
| # CHECK: ldrsb.w r5, [r6, #32] |
| # CHECK: ldrsb.w r5, [r6, #33] |
| # CHECK: ldrsb.w r5, [r6, #257] |
| # CHECK: ldrsb.w lr, [r7, #257] |
| |
| 0x15 0xf9 0x04 0x5c |
| 0x96 0xf9 0x20 0x50 |
| 0x96 0xf9 0x21 0x50 |
| 0x96 0xf9 0x01 0x51 |
| 0x97 0xf9 0x01 0xe1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRSB(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsb.w r1, [r8, r1] |
| # CHECK: ldrsb.w r4, [r5, r2] |
| # CHECK: ldrsb.w r6, [r0, r2, lsl #3] |
| # CHECK: ldrsb.w r8, [r8, r2, lsl #2] |
| # CHECK: ldrsb.w r7, [sp, r2, lsl #1] |
| # CHECK: ldrsb.w r7, [sp, r2] |
| # CHECK: ldrsb r5, [r8, #255]! |
| # CHECK: ldrsb r2, [r5, #4]! |
| # CHECK: ldrsb r1, [r4, #-4]! |
| # CHECK: ldrsb lr, [r3], #255 |
| # CHECK: ldrsb r9, [r2], #4 |
| # CHECK: ldrsb r3, [sp], #-4 |
| |
| 0x18 0xf9 0x01 0x10 |
| 0x15 0xf9 0x02 0x40 |
| 0x10 0xf9 0x32 0x60 |
| 0x18 0xf9 0x22 0x80 |
| 0x1d 0xf9 0x12 0x70 |
| 0x1d 0xf9 0x02 0x70 |
| 0x18 0xf9 0xff 0x5f |
| 0x15 0xf9 0x04 0x2f |
| 0x14 0xf9 0x04 0x1d |
| 0x13 0xf9 0xff 0xeb |
| 0x12 0xf9 0x04 0x9b |
| 0x1d 0xf9 0x04 0x39 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRSBT |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsbt r1, [r2] |
| # CHECK: ldrsbt r1, [r8] |
| # CHECK: ldrsbt r1, [r8, #3] |
| # CHECK: ldrsbt r1, [r8, #255] |
| |
| 0x12 0xf9 0x00 0x1e |
| 0x18 0xf9 0x00 0x1e |
| 0x18 0xf9 0x03 0x1e |
| 0x18 0xf9 0xff 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRSH(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsh r5, [r5, #-4] |
| # CHECK: ldrsh.w r5, [r6, #32] |
| # CHECK: ldrsh.w r5, [r6, #33] |
| # CHECK: ldrsh.w r5, [r6, #257] |
| # CHECK: ldrsh.w lr, [r7, #257] |
| # CHECK: ldrsh r10, [r5, #-0] |
| |
| 0x35 0xf9 0x04 0x5c |
| 0xb6 0xf9 0x20 0x50 |
| 0xb6 0xf9 0x21 0x50 |
| 0xb6 0xf9 0x01 0x51 |
| 0xb7 0xf9 0x01 0xe1 |
| 0x35 0xf9 0x00 0xac |
| |
| #------------------------------------------------------------------------------ |
| # LDRSH(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsh.w r1, [r8, r1] |
| # CHECK: ldrsh.w r4, [r5, r2] |
| # CHECK: ldrsh.w r6, [r0, r2, lsl #3] |
| # CHECK: ldrsh.w r8, [r8, r2, lsl #2] |
| # CHECK: ldrsh.w r7, [sp, r2, lsl #1] |
| # CHECK: ldrsh.w r7, [sp, r2] |
| # CHECK: ldrsh r5, [r8, #255]! |
| # CHECK: ldrsh r2, [r5, #4]! |
| # CHECK: ldrsh r1, [r4, #-4]! |
| # CHECK: ldrsh lr, [r3], #255 |
| # CHECK: ldrsh r9, [r2], #4 |
| # CHECK: ldrsh r3, [sp], #-4 |
| |
| 0x38 0xf9 0x01 0x10 |
| 0x35 0xf9 0x02 0x40 |
| 0x30 0xf9 0x32 0x60 |
| 0x38 0xf9 0x22 0x80 |
| 0x3d 0xf9 0x12 0x70 |
| 0x3d 0xf9 0x02 0x70 |
| 0x38 0xf9 0xff 0x5f |
| 0x35 0xf9 0x04 0x2f |
| 0x34 0xf9 0x04 0x1d |
| 0x33 0xf9 0xff 0xeb |
| 0x32 0xf9 0x04 0x9b |
| 0x3d 0xf9 0x04 0x39 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRSHT |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrsht r1, [r2] |
| # CHECK: ldrsht r1, [r8] |
| # CHECK: ldrsht r1, [r8, #3] |
| # CHECK: ldrsht r1, [r8, #255] |
| |
| 0x32 0xf9 0x00 0x1e |
| 0x38 0xf9 0x00 0x1e |
| 0x38 0xf9 0x03 0x1e |
| 0x38 0xf9 0xff 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # LDRT |
| #------------------------------------------------------------------------------ |
| # CHECK: ldrt r1, [r2] |
| # CHECK: ldrt r2, [r6] |
| # CHECK: ldrt r3, [r7, #3] |
| # CHECK: ldrt r4, [r9, #255] |
| |
| 0x52 0xf8 0x00 0x1e |
| 0x56 0xf8 0x00 0x2e |
| 0x57 0xf8 0x03 0x3e |
| 0x59 0xf8 0xff 0x4e |
| |
| |
| #------------------------------------------------------------------------------ |
| # LSL (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: lsl.w r2, r3, #12 |
| # CHECK: lsls.w r8, r3, #31 |
| # CHECK: lsls.w r2, r3, #1 |
| # CHECK: lsl.w r2, r3, #4 |
| # CHECK: lsls.w r2, r12, #15 |
| |
| # CHECK: lsl.w r3, r3, #19 |
| # CHECK: lsls.w r8, r8, #2 |
| # CHECK: lsls.w r7, r7, #5 |
| # CHECK: lsl.w r12, r12, #21 |
| |
| 0x4f 0xea 0x03 0x32 |
| 0x5f 0xea 0xc3 0x78 |
| 0x5f 0xea 0x43 0x02 |
| 0x4f 0xea 0x03 0x12 |
| 0x5f 0xea 0xcc 0x32 |
| |
| 0x4f 0xea 0xc3 0x43 |
| 0x5f 0xea 0x88 0x08 |
| 0x5f 0xea 0x47 0x17 |
| 0x4f 0xea 0x4c 0x5c |
| |
| |
| #------------------------------------------------------------------------------ |
| # LSL (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: lsl.w r3, r4, r2 |
| # CHECK: lsl.w r1, r1, r2 |
| # CHECK: lsls.w r3, r4, r8 |
| |
| 0x04 0xfa 0x02 0xf3 |
| 0x01 0xfa 0x02 0xf1 |
| 0x14 0xfa 0x08 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # LSR (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: lsr.w r2, r3, #12 |
| # CHECK: lsrs.w r8, r3, #32 |
| # CHECK: lsrs.w r2, r3, #1 |
| # CHECK: lsr.w r2, r3, #4 |
| # CHECK: lsrs.w r2, r12, #15 |
| |
| # CHECK: lsr.w r3, r3, #19 |
| # CHECK: lsrs.w r8, r8, #2 |
| # CHECK: lsrs.w r7, r7, #5 |
| # CHECK: lsr.w r12, r12, #21 |
| |
| 0x4f 0xea 0x13 0x32 |
| 0x5f 0xea 0x13 0x08 |
| 0x5f 0xea 0x53 0x02 |
| 0x4f 0xea 0x13 0x12 |
| 0x5f 0xea 0xdc 0x32 |
| |
| 0x4f 0xea 0xd3 0x43 |
| 0x5f 0xea 0x98 0x08 |
| 0x5f 0xea 0x57 0x17 |
| 0x4f 0xea 0x5c 0x5c |
| |
| |
| #------------------------------------------------------------------------------ |
| # LSR (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: lsr.w r3, r4, r2 |
| # CHECK: lsr.w r1, r1, r2 |
| # CHECK: lsrs.w r3, r4, r8 |
| |
| 0x24 0xfa 0x02 0xf3 |
| 0x21 0xfa 0x02 0xf1 |
| 0x34 0xfa 0x08 0xf3 |
| |
| #------------------------------------------------------------------------------ |
| # MCR/MCR2 |
| #------------------------------------------------------------------------------ |
| # CHECK: mcr p7, #1, r5, c1, c1, #4 |
| # CHECK: mcr2 p7, #1, r5, c1, c1, #4 |
| |
| 0x21 0xee 0x91 0x57 |
| 0x21 0xfe 0x91 0x57 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MCRR/MCRR2 |
| #------------------------------------------------------------------------------ |
| # CHECK: mcrr p7, #15, r5, r4, c1 |
| # CHECK: mcrr2 p7, #15, r5, r4, c1 |
| |
| 0x44 0xec 0xf1 0x57 |
| 0x44 0xfc 0xf1 0x57 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MLA/MLS |
| #------------------------------------------------------------------------------ |
| # CHECK: mla r1, r2, r3, r4 |
| # CHECK: mls r1, r2, r3, r4 |
| |
| 0x02 0xfb 0x03 0x41 |
| 0x02 0xfb 0x13 0x41 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MOV(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: movs r1, #21 |
| # CHECK: movs.w r1, #21 |
| # CHECK: movs.w r8, #21 |
| # CHECK: movw r0, #65535 |
| # CHECK: movw r1, #43777 |
| # CHECK: movw r1, #43792 |
| # CHECK: mov.w r0, #66846720 |
| # CHECK: mov.w r0, #66846720 |
| # CHECK: movs.w r0, #66846720 |
| |
| 0x15 0x21 |
| 0x5f 0xf0 0x15 0x01 |
| 0x5f 0xf0 0x15 0x08 |
| 0x4f 0xf6 0xff 0x70 |
| 0x4a 0xf6 0x01 0x31 |
| 0x4a 0xf6 0x10 0x31 |
| 0x4f 0xf0 0x7f 0x70 |
| 0x4f 0xf0 0x7f 0x70 |
| 0x5f 0xf0 0x7f 0x70 |
| |
| #------------------------------------------------------------------------------ |
| # MOVT |
| #------------------------------------------------------------------------------ |
| # CHECK: movt r3, #7 |
| # CHECK: movt r6, #65535 |
| # CHECK: it eq |
| # CHECK: movteq r4, #4080 |
| |
| 0xc0 0xf2 0x07 0x03 |
| 0xcf 0xf6 0xff 0x76 |
| 0x08 0xbf |
| 0xc0 0xf6 0xf0 0x74 |
| |
| #------------------------------------------------------------------------------ |
| # MRC/MRC2 |
| #------------------------------------------------------------------------------ |
| # CHECK: mrc p14, #0, r1, c1, c2, #4 |
| # CHECK: mrc2 p14, #0, r1, c1, c2, #4 |
| |
| 0x11 0xee 0x92 0x1e |
| 0x11 0xfe 0x92 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # MRRC/MRRC2 |
| #------------------------------------------------------------------------------ |
| # CHECK: mrrc p7, #1, r5, r4, c1 |
| # CHECK: mrrc2 p7, #1, r5, r4, c1 |
| |
| 0x54 0xec 0x11 0x57 |
| 0x54 0xfc 0x11 0x57 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MRS |
| #------------------------------------------------------------------------------ |
| # CHECK: mrs r8, apsr |
| # CHECK: mrs r8, spsr |
| |
| 0xef 0xf3 0x00 0x88 |
| 0xff 0xf3 0x00 0x88 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MSR |
| #------------------------------------------------------------------------------ |
| # CHECK: msr APSR_nzcvq, r1 |
| # CHECK: msr APSR_g, r2 |
| # CHECK: msr APSR_nzcvq, r3 |
| # CHECK: msr APSR_nzcvq, r4 |
| # CHECK: msr APSR_nzcvqg, r5 |
| # CHECK: msr CPSR_fc, r6 |
| # CHECK: msr CPSR_c, r7 |
| # CHECK: msr CPSR_x, r8 |
| # CHECK: msr CPSR_fc, r9 |
| # CHECK: msr CPSR_fc, r11 |
| # CHECK: msr CPSR_fsx, r12 |
| # CHECK: msr SPSR_fc, r0 |
| # CHECK: msr SPSR_fsxc, r5 |
| # CHECK: msr CPSR_fsxc, r8 |
| |
| 0x81 0xf3 0x00 0x88 |
| 0x82 0xf3 0x00 0x84 |
| 0x83 0xf3 0x00 0x88 |
| 0x84 0xf3 0x00 0x88 |
| 0x85 0xf3 0x00 0x8c |
| 0x86 0xf3 0x00 0x89 |
| 0x87 0xf3 0x00 0x81 |
| 0x88 0xf3 0x00 0x82 |
| 0x89 0xf3 0x00 0x89 |
| 0x8b 0xf3 0x00 0x89 |
| 0x8c 0xf3 0x00 0x8e |
| 0x90 0xf3 0x00 0x89 |
| 0x95 0xf3 0x00 0x8f |
| 0x88 0xf3 0x00 0x8f |
| |
| |
| #------------------------------------------------------------------------------ |
| # MUL |
| #------------------------------------------------------------------------------ |
| # CHECK: muls r3, r4, r3 |
| # CHECK: mul r3, r4, r3 |
| # CHECK: mul r3, r4, r6 |
| # CHECK: it eq |
| # CHECK: muleq r3, r4, r5 |
| |
| 0x63 0x43 |
| 0x04 0xfb 0x03 0xf3 |
| 0x04 0xfb 0x06 0xf3 |
| 0x08 0xbf |
| 0x04 0xfb 0x05 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MVN(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: mvns r8, #21 |
| # CHECK: mvn r0, #66846720 |
| # CHECK: mvns r0, #66846720 |
| # CHECK: itte eq |
| # CHECK: mvnseq r1, #12 |
| # CHECK: mvneq r1, #12 |
| # CHECK: mvnne r1, #12 |
| |
| 0x7f 0xf0 0x15 0x08 |
| 0x6f 0xf0 0x7f 0x70 |
| 0x7f 0xf0 0x7f 0x70 |
| 0x06 0xbf |
| 0x7f 0xf0 0x0c 0x01 |
| 0x6f 0xf0 0x0c 0x01 |
| 0x6f 0xf0 0x0c 0x01 |
| |
| |
| #------------------------------------------------------------------------------ |
| # MVN(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: mvn.w r2, r3 |
| # CHECK: mvns r2, r3 |
| # CHECK: mvn.w r5, r6, lsl #19 |
| # CHECK: mvn.w r5, r6, lsr #9 |
| # CHECK: mvn.w r5, r6, asr #4 |
| # CHECK: mvn.w r5, r6, ror #6 |
| # CHECK: mvn.w r5, r6, rrx |
| # CHECK: it eq |
| # CHECK: mvneq r2, r3 |
| |
| 0x6f 0xea 0x03 0x02 |
| 0xda 0x43 |
| 0x6f 0xea 0xc6 0x45 |
| 0x6f 0xea 0x56 0x25 |
| 0x6f 0xea 0x26 0x15 |
| 0x6f 0xea 0xb6 0x15 |
| 0x6f 0xea 0x36 0x05 |
| 0x08 0xbf |
| 0xda 0x43 |
| |
| #------------------------------------------------------------------------------ |
| # NOP |
| #------------------------------------------------------------------------------ |
| # CHECK: nop.w |
| |
| 0xaf 0xf3 0x00 0x80 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ORN |
| #------------------------------------------------------------------------------ |
| # CHECK: orn r4, r5, #61440 |
| # CHECK: orn r4, r5, r6 |
| # CHECK: orns r4, r5, r6 |
| # CHECK: orn r4, r5, r6, lsl #5 |
| # CHECK: orns r4, r5, r6, lsr #5 |
| # CHECK: orn r4, r5, r6, lsr #5 |
| # CHECK: orns r4, r5, r6, asr #5 |
| # CHECK: orn r4, r5, r6, ror #5 |
| |
| 0x65 0xf4 0x70 0x44 |
| 0x65 0xea 0x06 0x04 |
| 0x75 0xea 0x06 0x04 |
| 0x65 0xea 0x46 0x14 |
| 0x75 0xea 0x56 0x14 |
| 0x65 0xea 0x56 0x14 |
| 0x75 0xea 0x66 0x14 |
| 0x65 0xea 0x76 0x14 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ORR |
| #------------------------------------------------------------------------------ |
| # CHECK: orr r4, r5, #61440 |
| # CHECK: orr.w r4, r5, r6 |
| # CHECK: orr.w r4, r5, r6, lsl #5 |
| # CHECK: orrs.w r4, r5, r6, lsr #5 |
| # CHECK: orr.w r4, r5, r6, lsr #5 |
| # CHECK: orrs.w r4, r5, r6, asr #5 |
| # CHECK: orr.w r4, r5, r6, ror #5 |
| |
| 0x45 0xf4 0x70 0x44 |
| 0x45 0xea 0x06 0x04 |
| 0x45 0xea 0x46 0x14 |
| 0x55 0xea 0x56 0x14 |
| 0x45 0xea 0x56 0x14 |
| 0x55 0xea 0x66 0x14 |
| 0x45 0xea 0x76 0x14 |
| |
| |
| #------------------------------------------------------------------------------ |
| # PKH |
| #------------------------------------------------------------------------------ |
| # CHECK: pkhbt r2, r2, r3 |
| # CHECK: pkhbt r2, r2, r3, lsl #31 |
| # CHECK: pkhbt r2, r2, r3, lsl #15 |
| |
| # CHECK: pkhtb r2, r2, r3, asr #31 |
| # CHECK: pkhtb r2, r2, r3, asr #15 |
| |
| 0xc2 0xea 0x03 0x02 |
| 0xc2 0xea 0xc3 0x72 |
| 0xc2 0xea 0xc3 0x32 |
| |
| 0xc2 0xea 0xe3 0x72 |
| 0xc2 0xea 0xe3 0x32 |
| |
| |
| #------------------------------------------------------------------------------ |
| # PLD(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: pld [r5, #-4] |
| # CHECK: pld [r6, #32] |
| # CHECK: pld [r6, #33] |
| # CHECK: pld [r6, #257] |
| # CHECK: pld [r7, #257] |
| |
| 0x15 0xf8 0x04 0xfc |
| 0x96 0xf8 0x20 0xf0 |
| 0x96 0xf8 0x21 0xf0 |
| 0x96 0xf8 0x01 0xf1 |
| 0x97 0xf8 0x01 0xf1 |
| |
| #------------------------------------------------------------------------------ |
| # PLD(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: pld [r8, r1] |
| # CHECK: pld [r5, r2] |
| # CHECK: pld [r0, r2, lsl #3] |
| # CHECK: pld [r8, r2, lsl #2] |
| # CHECK: pld [sp, r2, lsl #1] |
| # CHECK: pld [sp, r2] |
| |
| 0x18 0xf8 0x01 0xf0 |
| 0x15 0xf8 0x02 0xf0 |
| 0x10 0xf8 0x32 0xf0 |
| 0x18 0xf8 0x22 0xf0 |
| 0x1d 0xf8 0x12 0xf0 |
| 0x1d 0xf8 0x02 0xf0 |
| |
| #------------------------------------------------------------------------------ |
| # PLI(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: pli [r5, #-4] |
| # CHECK: pli [r6, #32] |
| # CHECK: pli [r6, #33] |
| # CHECK: pli [r6, #257] |
| # CHECK: pli [r7, #257] |
| |
| 0x15 0xf9 0x04 0xfc |
| 0x96 0xf9 0x20 0xf0 |
| 0x96 0xf9 0x21 0xf0 |
| 0x96 0xf9 0x01 0xf1 |
| 0x97 0xf9 0x01 0xf1 |
| |
| #------------------------------------------------------------------------------ |
| # PLI(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: pli [r8, r1] |
| # CHECK: pli [r5, r2] |
| # CHECK: pli [r0, r2, lsl #3] |
| # CHECK: pli [r8, r2, lsl #2] |
| # CHECK: pli [sp, r2, lsl #1] |
| # CHECK: pli [sp, r2] |
| |
| 0x18 0xf9 0x01 0xf0 |
| 0x15 0xf9 0x02 0xf0 |
| 0x10 0xf9 0x32 0xf0 |
| 0x18 0xf9 0x22 0xf0 |
| 0x1d 0xf9 0x12 0xf0 |
| 0x1d 0xf9 0x02 0xf0 |
| |
| |
| #------------------------------------------------------------------------------ |
| # QADD/QADD16/QADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: qadd r1, r2, r3 |
| # CHECK: qadd16 r1, r2, r3 |
| # CHECK: qadd8 r1, r2, r3 |
| # CHECK: itte gt |
| # CHECK: qaddgt r1, r2, r3 |
| # CHECK: qadd16gt r1, r2, r3 |
| # CHECK: qadd8le r1, r2, r3 |
| |
| 0x83 0xfa 0x82 0xf1 |
| 0x92 0xfa 0x13 0xf1 |
| 0x82 0xfa 0x13 0xf1 |
| 0xc6 0xbf |
| 0x83 0xfa 0x82 0xf1 |
| 0x92 0xfa 0x13 0xf1 |
| 0x82 0xfa 0x13 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # QDADD/QDSUB |
| #------------------------------------------------------------------------------ |
| # CHECK: qdadd r6, r7, r8 |
| # CHECK: qdsub r6, r7, r8 |
| # CHECK: itt hi |
| # CHECK: qdaddhi r6, r7, r8 |
| # CHECK: qdsubhi r6, r7, r8 |
| |
| 0x88 0xfa 0x97 0xf6 |
| 0x88 0xfa 0xb7 0xf6 |
| 0x84 0xbf |
| 0x88 0xfa 0x97 0xf6 |
| 0x88 0xfa 0xb7 0xf6 |
| |
| |
| #------------------------------------------------------------------------------ |
| # QSAX |
| #------------------------------------------------------------------------------ |
| # CHECK: qsax r9, r12, r0 |
| # CHECK: it eq |
| # CHECK: qsaxeq r9, r12, r0 |
| |
| 0xec 0xfa 0x10 0xf9 |
| 0x08 0xbf |
| 0xec 0xfa 0x10 0xf9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # QSUB/QSUB16/QSUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: qsub r1, r2, r3 |
| # CHECK: qsub16 r1, r2, r3 |
| # CHECK: qsub8 r1, r2, r3 |
| # CHECK: itet le |
| # CHECK: qsuble r1, r2, r3 |
| # CHECK: qsub16gt r1, r2, r3 |
| # CHECK: qsub8le r1, r2, r3 |
| |
| 0x83 0xfa 0xa2 0xf1 |
| 0xd2 0xfa 0x13 0xf1 |
| 0xc2 0xfa 0x13 0xf1 |
| 0xd6 0xbf |
| 0x83 0xfa 0xa2 0xf1 |
| 0xd2 0xfa 0x13 0xf1 |
| 0xc2 0xfa 0x13 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # RBIT |
| #------------------------------------------------------------------------------ |
| # CHECK: rbit r1, r2 |
| # CHECK: it ne |
| # CHECK: rbitne r1, r2 |
| |
| 0x92 0xfa 0xa2 0xf1 |
| 0x18 0xbf |
| 0x92 0xfa 0xa2 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # REV |
| #------------------------------------------------------------------------------ |
| # CHECK: rev.w r1, r2 |
| # CHECK: rev.w r2, r8 |
| # CHECK: itt ne |
| # CHECK: revne r1, r2 |
| # CHECK: revne.w r1, r8 |
| |
| 0x92 0xfa 0x82 0xf1 |
| 0x98 0xfa 0x88 0xf2 |
| 0x1c 0xbf |
| 0x11 0xba |
| 0x98 0xfa 0x88 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # REV16 |
| #------------------------------------------------------------------------------ |
| # CHECK: rev16.w r1, r2 |
| # CHECK: rev16.w r2, r8 |
| # CHECK: itt ne |
| # CHECK: rev16ne r1, r2 |
| # CHECK: rev16ne.w r1, r8 |
| |
| 0x92 0xfa 0x92 0xf1 |
| 0x98 0xfa 0x98 0xf2 |
| 0x1c 0xbf |
| 0x51 0xba |
| 0x98 0xfa 0x98 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # REVSH |
| #------------------------------------------------------------------------------ |
| # CHECK: revsh.w r1, r2 |
| # CHECK: revsh.w r2, r8 |
| # CHECK: itt ne |
| # CHECK: revshne r1, r2 |
| # CHECK: revshne.w r1, r8 |
| |
| 0x92 0xfa 0xb2 0xf1 |
| 0x98 0xfa 0xb8 0xf2 |
| 0x1c 0xbf |
| 0xd1 0xba |
| 0x98 0xfa 0xb8 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # ROR (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: ror.w r2, r3, #12 |
| # CHECK: rors.w r8, r3, #31 |
| # CHECK: rors.w r2, r3, #1 |
| # CHECK: ror.w r2, r3, #4 |
| # CHECK: rors.w r2, r12, #15 |
| |
| # CHECK: ror.w r3, r3, #19 |
| # CHECK: rors.w r8, r8, #2 |
| # CHECK: rors.w r7, r7, #5 |
| # CHECK: ror.w r12, r12, #21 |
| |
| 0x4f 0xea 0x33 0x32 |
| 0x5f 0xea 0xf3 0x78 |
| 0x5f 0xea 0x73 0x02 |
| 0x4f 0xea 0x33 0x12 |
| 0x5f 0xea 0xfc 0x32 |
| |
| 0x4f 0xea 0xf3 0x43 |
| 0x5f 0xea 0xb8 0x08 |
| 0x5f 0xea 0x77 0x17 |
| 0x4f 0xea 0x7c 0x5c |
| |
| |
| #------------------------------------------------------------------------------ |
| # ROR (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: ror.w r3, r4, r2 |
| # CHECK: ror.w r1, r1, r2 |
| # CHECK: rors.w r3, r4, r8 |
| |
| 0x64 0xfa 0x02 0xf3 |
| 0x61 0xfa 0x02 0xf1 |
| 0x74 0xfa 0x08 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # RRX |
| #------------------------------------------------------------------------------ |
| # CHECK: rrx r1, r2 |
| # CHECK: rrxs r1, r2 |
| # CHECK: ite lt |
| # CHECK: rrxlt r9, r12 |
| # CHECK: rrxsge r8, r3 |
| |
| 0x4f 0xea 0x32 0x01 |
| 0x5f 0xea 0x32 0x01 |
| 0xb4 0xbf |
| 0x4f 0xea 0x3c 0x09 |
| 0x5f 0xea 0x33 0x08 |
| |
| #------------------------------------------------------------------------------ |
| # RSB (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: rsb.w r2, r5, #1044480 |
| # CHECK: rsbs.w r3, r12, #15 |
| # CHECK: rsb.w r1, r1, #255 |
| |
| 0xc5 0xf5 0x7f 0x22 |
| 0xdc 0xf1 0x0f 0x03 |
| 0xc1 0xf1 0xff 0x01 |
| |
| |
| #------------------------------------------------------------------------------ |
| # RSB (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: rsb r4, r4, r8 |
| # CHECK: rsb r4, r9, r8 |
| # CHECK: rsb r1, r4, r8, asr #3 |
| # CHECK: rsbs r2, r1, r7, lsl #1 |
| |
| 0xc4 0xeb 0x08 0x04 |
| 0xc9 0xeb 0x08 0x04 |
| 0xc4 0xeb 0xe8 0x01 |
| 0xd1 0xeb 0x47 0x02 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SADD16 |
| #------------------------------------------------------------------------------ |
| # CHECK: sadd16 r3, r4, r8 |
| # CHECK: it ne |
| # CHECK: sadd16ne r3, r4, r8 |
| |
| 0x94 0xfa 0x08 0xf3 |
| 0x18 0xbf |
| 0x94 0xfa 0x08 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: sadd8 r3, r4, r8 |
| # CHECK: it ne |
| # CHECK: sadd8ne r3, r4, r8 |
| |
| 0x84 0xfa 0x08 0xf3 |
| 0x18 0xbf |
| 0x84 0xfa 0x08 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SASX |
| #------------------------------------------------------------------------------ |
| # CHECK: sasx r9, r2, r7 |
| # CHECK: it ne |
| # CHECK: sasxne r2, r5, r6 |
| |
| 0xa2 0xfa 0x07 0xf9 |
| 0x18 0xbf |
| 0xa5 0xfa 0x06 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SBC (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: sbc r0, r1, #4 |
| # CHECK: sbcs r0, r1, #0 |
| # CHECK: sbc r1, r2, #255 |
| # CHECK: sbc r3, r7, #5570645 |
| # CHECK: sbc r8, r12, #2852170240 |
| # CHECK: sbc r9, r7, #2779096485 |
| # CHECK: sbc r5, r3, #2264924160 |
| # CHECK: sbc r4, r2, #2139095040 |
| # CHECK: sbc r4, r2, #1664 |
| |
| 0x61 0xf1 0x04 0x00 |
| 0x71 0xf1 0x00 0x00 |
| 0x62 0xf1 0xff 0x01 |
| 0x67 0xf1 0x55 0x13 |
| 0x6c 0xf1 0xaa 0x28 |
| 0x67 0xf1 0xa5 0x39 |
| 0x63 0xf1 0x07 0x45 |
| 0x62 0xf1 0xff 0x44 |
| 0x62 0xf5 0xd0 0x64 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SBC (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: sbc.w r4, r5, r6 |
| # CHECK: sbcs.w r4, r5, r6 |
| # CHECK: sbc.w r9, r1, r3 |
| # CHECK: sbcs.w r9, r1, r3 |
| # CHECK: sbc.w r0, r1, r3, ror #4 |
| # CHECK: sbcs.w r0, r1, r3, lsl #7 |
| # CHECK: sbc.w r0, r1, r3, lsr #31 |
| # CHECK: sbcs.w r0, r1, r3, asr #32 |
| |
| 0x65 0xeb 0x06 0x04 |
| 0x75 0xeb 0x06 0x04 |
| 0x61 0xeb 0x03 0x09 |
| 0x71 0xeb 0x03 0x09 |
| 0x61 0xeb 0x33 0x10 |
| 0x71 0xeb 0xc3 0x10 |
| 0x61 0xeb 0xd3 0x70 |
| 0x71 0xeb 0x23 0x00 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SBFX |
| #------------------------------------------------------------------------------ |
| # CHECK: sbfx r4, r5, #16, #1 |
| # CHECK: it gt |
| # CHECK: sbfxgt r4, r5, #16, #16 |
| |
| 0x45 0xf3 0x00 0x44 |
| 0xc8 0xbf |
| 0x45 0xf3 0x0f 0x44 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SEL |
| #------------------------------------------------------------------------------ |
| # CHECK: sel r5, r9, r2 |
| # CHECK: it le |
| # CHECK: selle r5, r9, r2 |
| |
| 0xa9 0xfa 0x82 0xf5 |
| 0xd8 0xbf |
| 0xa9 0xfa 0x82 0xf5 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SEV |
| #------------------------------------------------------------------------------ |
| # CHECK: sev.w |
| # CHECK: it eq |
| # CHECK: seveq.w |
| |
| 0xaf 0xf3 0x04 0x80 |
| 0x08 0xbf |
| 0xaf 0xf3 0x04 0x80 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SADD16/SADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: sadd16 r1, r2, r3 |
| # CHECK: sadd8 r1, r2, r3 |
| # CHECK: ite gt |
| # CHECK: sadd16gt r1, r2, r3 |
| # CHECK: sadd8le r1, r2, r3 |
| |
| 0x92 0xfa 0x03 0xf1 |
| 0x82 0xfa 0x03 0xf1 |
| 0xcc 0xbf |
| 0x92 0xfa 0x03 0xf1 |
| 0x82 0xfa 0x03 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SHASX |
| #------------------------------------------------------------------------------ |
| # CHECK: shasx r4, r8, r2 |
| # CHECK: it gt |
| # CHECK: shasxgt r4, r8, r2 |
| |
| 0xa8 0xfa 0x22 0xf4 |
| 0xc8 0xbf |
| 0xa8 0xfa 0x22 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SHASX |
| #------------------------------------------------------------------------------ |
| # CHECK: shsax r4, r8, r2 |
| # CHECK: it gt |
| # CHECK: shsaxgt r4, r8, r2 |
| |
| 0xe8 0xfa 0x22 0xf4 |
| 0xc8 0xbf |
| 0xe8 0xfa 0x22 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SHSUB16/SHSUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: shsub16 r4, r8, r2 |
| # CHECK: shsub8 r4, r8, r2 |
| # CHECK: itt gt |
| # CHECK: shsub16gt r4, r8, r2 |
| # CHECK: shsub8gt r4, r8, r2 |
| |
| 0xd8 0xfa 0x22 0xf4 |
| 0xc8 0xfa 0x22 0xf4 |
| 0xc4 0xbf |
| 0xd8 0xfa 0x22 0xf4 |
| 0xc8 0xfa 0x22 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLABB/SMLABT/SMLATB/SMLATT |
| #------------------------------------------------------------------------------ |
| # CHECK: smlabb r3, r1, r9, r0 |
| # CHECK: smlabt r5, r6, r4, r1 |
| # CHECK: smlatb r4, r2, r3, r2 |
| # CHECK: smlatt r8, r3, r8, r4 |
| # CHECK: itete gt |
| # CHECK: smlabbgt r3, r1, r9, r0 |
| # CHECK: smlabtle r5, r6, r4, r1 |
| # CHECK: smlatbgt r4, r2, r3, r2 |
| # CHECK: smlattle r8, r3, r8, r4 |
| |
| 0x11 0xfb 0x09 0x03 |
| 0x16 0xfb 0x14 0x15 |
| 0x12 0xfb 0x23 0x24 |
| 0x13 0xfb 0x38 0x48 |
| 0xcb 0xbf |
| 0x11 0xfb 0x09 0x03 |
| 0x16 0xfb 0x14 0x15 |
| 0x12 0xfb 0x23 0x24 |
| 0x13 0xfb 0x38 0x48 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLAD/SMLADX |
| #------------------------------------------------------------------------------ |
| # CHECK: smlad r2, r3, r5, r8 |
| # CHECK: smladx r2, r3, r5, r8 |
| # CHECK: itt hi |
| # CHECK: smladhi r2, r3, r5, r8 |
| # CHECK: smladxhi r2, r3, r5, r8 |
| |
| 0x23 0xfb 0x05 0x82 |
| 0x23 0xfb 0x15 0x82 |
| 0x84 0xbf |
| 0x23 0xfb 0x05 0x82 |
| 0x23 0xfb 0x15 0x82 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLAL |
| #------------------------------------------------------------------------------ |
| # CHECK: smlal r2, r3, r5, r8 |
| # CHECK: it eq |
| # CHECK: smlaleq r2, r3, r5, r8 |
| |
| 0xc5 0xfb 0x08 0x23 |
| 0x08 0xbf |
| 0xc5 0xfb 0x08 0x23 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLALBB/SMLALBT/SMLALTB/SMLALTT |
| #------------------------------------------------------------------------------ |
| # CHECK: smlalbb r3, r1, r9, r0 |
| # CHECK: smlalbt r5, r6, r4, r1 |
| # CHECK: smlaltb r4, r2, r3, r2 |
| # CHECK: smlaltt r8, r3, r8, r4 |
| # CHECK: iteet ge |
| # CHECK: smlalbbge r3, r1, r9, r0 |
| # CHECK: smlalbtlt r5, r6, r4, r1 |
| # CHECK: smlaltblt r4, r2, r3, r2 |
| # CHECK: smlalttge r8, r3, r8, r4 |
| |
| 0xc9 0xfb 0x80 0x31 |
| 0xc4 0xfb 0x91 0x56 |
| 0xc3 0xfb 0xa2 0x42 |
| 0xc8 0xfb 0xb4 0x83 |
| 0xad 0xbf |
| 0xc9 0xfb 0x80 0x31 |
| 0xc4 0xfb 0x91 0x56 |
| 0xc3 0xfb 0xa2 0x42 |
| 0xc8 0xfb 0xb4 0x83 |
| |
| #------------------------------------------------------------------------------ |
| # SMLALD/SMLALDX |
| #------------------------------------------------------------------------------ |
| # CHECK: smlald r2, r3, r5, r8 |
| # CHECK: smlaldx r2, r3, r5, r8 |
| # CHECK: ite eq |
| # CHECK: smlaldeq r2, r3, r5, r8 |
| # CHECK: smlaldxne r2, r3, r5, r8 |
| |
| 0xc5 0xfb 0xc8 0x23 |
| 0xc5 0xfb 0xd8 0x23 |
| 0x0c 0xbf |
| 0xc5 0xfb 0xc8 0x23 |
| 0xc5 0xfb 0xd8 0x23 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLAWB/SMLAWT |
| #------------------------------------------------------------------------------ |
| # CHECK: smlawb r2, r3, r10, r8 |
| # CHECK: smlawt r8, r3, r5, r9 |
| # CHECK: ite eq |
| # CHECK: smlawbeq r2, r7, r5, r8 |
| # CHECK: smlawtne r1, r3, r0, r8 |
| |
| 0x33 0xfb 0x0a 0x82 |
| 0x33 0xfb 0x15 0x98 |
| 0x0c 0xbf |
| 0x37 0xfb 0x05 0x82 |
| 0x33 0xfb 0x10 0x81 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLSD/SMLSDX |
| #------------------------------------------------------------------------------ |
| # CHECK: smlsd r2, r3, r5, r8 |
| # CHECK: smlsdx r2, r3, r5, r8 |
| # CHECK: ite le |
| # CHECK: smlsdle r2, r3, r5, r8 |
| # CHECK: smlsdxgt r2, r3, r5, r8 |
| |
| 0x43 0xfb 0x05 0x82 |
| 0x43 0xfb 0x15 0x82 |
| 0xd4 0xbf |
| 0x43 0xfb 0x05 0x82 |
| 0x43 0xfb 0x15 0x82 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMLSLD/SMLSLDX |
| #------------------------------------------------------------------------------ |
| # CHECK: smlsld r2, r9, r5, r1 |
| # CHECK: smlsldx r4, r11, r2, r8 |
| # CHECK: ite ge |
| # CHECK: smlsldge r8, r2, r5, r6 |
| # CHECK: smlsldxlt r1, r0, r3, r8 |
| |
| 0xd5 0xfb 0xc1 0x29 |
| 0xd2 0xfb 0xd8 0x4b |
| 0xac 0xbf |
| 0xd5 0xfb 0xc6 0x82 |
| 0xd3 0xfb 0xd8 0x10 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMMLA/SMMLAR |
| #------------------------------------------------------------------------------ |
| # CHECK: smmla r1, r2, r3, r4 |
| # CHECK: smmlar r4, r3, r2, r1 |
| # CHECK: ite lo |
| # CHECK: smmlalo r1, r2, r3, r4 |
| # CHECK: smmlarhs r4, r3, r2, r1 |
| |
| 0x52 0xfb 0x03 0x41 |
| 0x53 0xfb 0x12 0x14 |
| 0x34 0xbf |
| 0x52 0xfb 0x03 0x41 |
| 0x53 0xfb 0x12 0x14 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SMMLS/SMMLSR |
| #------------------------------------------------------------------------------ |
| # CHECK: smmls r1, r2, r3, r4 |
| # CHECK: smmlsr r4, r3, r2, r1 |
| # CHECK: ite lo |
| # CHECK: smmlslo r1, r2, r3, r4 |
| # CHECK: smmlsrhs r4, r3, r2, r1 |
| |
| 0x62 0xfb 0x03 0x41 |
| 0x63 0xfb 0x12 0x14 |
| 0x34 0xbf |
| 0x62 0xfb 0x03 0x41 |
| 0x63 0xfb 0x12 0x14 |
| |
| #------------------------------------------------------------------------------ |
| # SSAT |
| #------------------------------------------------------------------------------ |
| # CHECK: ssat r9, #30, r0, asr #2 |
| |
| 0x20 0xf3 0x9d 0x09 |
| |
| #------------------------------------------------------------------------------ |
| # STR (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: str r10, [r11], #0 |
| |
| 0x4b 0xf8 0x00 0xab |
| |
| #------------------------------------------------------------------------------ |
| # STRD (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: strd r6, r3, [r5], #-8 |
| # CHECK: strd r8, r5, [r5]{{$}} |
| # CHECK: strd r7, r4, [r5], #-4 |
| |
| 0x65 0xe8 0x02 0x63 |
| 0x65 0xe8 0x00 0x85 |
| 0x65 0xe8 0x01 0x74 |
| |
| #------------------------------------------------------------------------------ |
| # STREX/STREXB/STREXH/STREXD |
| #------------------------------------------------------------------------------ |
| # CHECK: strex r1, r8, [r4] |
| # CHECK: strex r8, r2, [r4] |
| # CHECK: strex r2, r12, [sp, #128] |
| # CHECK: strexb r5, r1, [r7] |
| # CHECK: strexh r9, r7, [r12] |
| # CHECK: strexd r9, r3, r6, [r4] |
| |
| 0x44 0xe8 0x00 0x81 |
| 0x44 0xe8 0x00 0x28 |
| 0x4d 0xe8 0x20 0xc2 |
| 0xc7 0xe8 0x45 0x1f |
| 0xcc 0xe8 0x59 0x7f |
| 0xc4 0xe8 0x79 0x36 |
| |
| |
| #------------------------------------------------------------------------------ |
| # STRH(immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: strh r5, [r5, #-4] |
| # CHECK: strh r5, [r6, #32] |
| # CHECK: strh.w r5, [r6, #33] |
| # CHECK: strh.w r5, [r6, #257] |
| # CHECK: strh.w lr, [r7, #257] |
| # CHECK: strh r5, [r8, #255]! |
| # CHECK: strh r2, [r5, #4]! |
| # CHECK: strh r1, [r4, #-4]! |
| # CHECK: strh lr, [r3], #255 |
| # CHECK: strh r9, [r2], #4 |
| # CHECK: strh r3, [sp], #-4 |
| |
| 0x25 0xf8 0x04 0x5c |
| 0x35 0x84 |
| 0xa6 0xf8 0x21 0x50 |
| 0xa6 0xf8 0x01 0x51 |
| 0xa7 0xf8 0x01 0xe1 |
| 0x28 0xf8 0xff 0x5f |
| 0x25 0xf8 0x04 0x2f |
| 0x24 0xf8 0x04 0x1d |
| 0x23 0xf8 0xff 0xeb |
| 0x22 0xf8 0x04 0x9b |
| 0x2d 0xf8 0x04 0x39 |
| |
| |
| #------------------------------------------------------------------------------ |
| # STRH(register) |
| #------------------------------------------------------------------------------ |
| # CHECK: strh.w r1, [r8, r1] |
| # CHECK: strh.w r4, [r5, r2] |
| # CHECK: strh.w r6, [r0, r2, lsl #3] |
| # CHECK: strh.w r8, [r8, r2, lsl #2] |
| # CHECK: strh.w r7, [sp, r2, lsl #1] |
| # CHECK: strh.w r7, [sp, r2] |
| |
| 0x28 0xf8 0x01 0x10 |
| 0x25 0xf8 0x02 0x40 |
| 0x20 0xf8 0x32 0x60 |
| 0x28 0xf8 0x22 0x80 |
| 0x2d 0xf8 0x12 0x70 |
| 0x2d 0xf8 0x02 0x70 |
| |
| |
| #------------------------------------------------------------------------------ |
| # STRHT |
| #------------------------------------------------------------------------------ |
| # CHECK: strht r1, [r2] |
| # CHECK: strht r1, [r8] |
| # CHECK: strht r1, [r8, #3] |
| # CHECK: strht r1, [r8, #255] |
| |
| 0x22 0xf8 0x00 0x1e |
| 0x28 0xf8 0x00 0x1e |
| 0x28 0xf8 0x03 0x1e |
| 0x28 0xf8 0xff 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # STRT |
| #------------------------------------------------------------------------------ |
| # CHECK: strt r1, [r2] |
| # CHECK: strt r1, [r8] |
| # CHECK: strt r1, [r8, #3] |
| # CHECK: strt r1, [r8, #255] |
| |
| 0x42 0xf8 0x00 0x1e |
| 0x48 0xf8 0x00 0x1e |
| 0x48 0xf8 0x03 0x1e |
| 0x48 0xf8 0xff 0x1e |
| |
| |
| #------------------------------------------------------------------------------ |
| # SUB (immediate) |
| #------------------------------------------------------------------------------ |
| # CHECK: itet eq |
| # CHECK: subeq r1, r2, #4 |
| # CHECK: subwne r5, r3, #1023 |
| # CHECK: subweq r4, r5, #293 |
| # CHECK: sub.w r2, sp, #1024 |
| # CHECK: sub.w r2, r8, #65280 |
| # CHECK: subw r2, r3, #257 |
| # CHECK: sub.w r12, r6, #256 |
| # CHECK: subw r12, r6, #256 |
| # CHECK: subs.w r1, r2, #496 |
| |
| 0x0a 0xbf |
| 0x11 0x1f |
| 0xa3 0xf2 0xff 0x35 |
| 0xa5 0xf2 0x25 0x14 |
| 0xad 0xf5 0x80 0x62 |
| 0xa8 0xf5 0x7f 0x42 |
| 0xa3 0xf2 0x01 0x12 |
| 0xa6 0xf5 0x80 0x7c |
| 0xa6 0xf2 0x00 0x1c |
| 0xb2 0xf5 0xf8 0x71 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SUB (register) |
| #------------------------------------------------------------------------------ |
| # CHECK: sub.w r4, r5, r6 |
| # CHECK: sub.w r4, r5, r6, lsl #5 |
| # CHECK: sub.w r4, r5, r6, lsr #5 |
| # CHECK: sub.w r4, r5, r6, lsr #5 |
| # CHECK: sub.w r4, r5, r6, asr #5 |
| # CHECK: sub.w r4, r5, r6, ror #5 |
| # CHECK: sub.w r5, r2, r12, rrx |
| |
| 0xa5 0xeb 0x06 0x04 |
| 0xa5 0xeb 0x46 0x14 |
| 0xa5 0xeb 0x56 0x14 |
| 0xa5 0xeb 0x56 0x14 |
| 0xa5 0xeb 0x66 0x14 |
| 0xa5 0xeb 0x76 0x14 |
| 0xa2 0xeb 0x3c 0x05 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SVC |
| #------------------------------------------------------------------------------ |
| # CHECK: svc #0 |
| # CHECK: ite eq |
| # CHECK: svceq #255 |
| # CHECK: svcne #33 |
| |
| 0x00 0xdf |
| 0x0c 0xbf |
| 0xff 0xdf |
| 0x21 0xdf |
| |
| #------------------------------------------------------------------------------ |
| # SXTAB |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtab r2, r3, r4 |
| # CHECK: sxtab r4, r5, r6 |
| # CHECK: it lt |
| # CHECK: sxtablt r6, r2, r9, ror #8 |
| # CHECK: sxtab r5, r1, r4, ror #16 |
| # CHECK: sxtab r7, r8, r3, ror #24 |
| |
| 0x43 0xfa 0x84 0xf2 |
| 0x45 0xfa 0x86 0xf4 |
| 0xb8 0xbf |
| 0x42 0xfa 0x99 0xf6 |
| 0x41 0xfa 0xa4 0xf5 |
| 0x48 0xfa 0xb3 0xf7 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTAB16 |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtab16 r6, r2, r7 |
| # CHECK: sxtab16 r3, r5, r8, ror #8 |
| # CHECK: sxtab16 r3, r2, r1, ror #16 |
| # CHECK: ite ne |
| # CHECK: sxtab16ne r0, r1, r4 |
| # CHECK: sxtab16eq r1, r2, r3, ror #24 |
| |
| 0x22 0xfa 0x87 0xf6 |
| 0x25 0xfa 0x98 0xf3 |
| 0x22 0xfa 0xa1 0xf3 |
| 0x14 0xbf |
| 0x21 0xfa 0x84 0xf0 |
| 0x22 0xfa 0xb3 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTAH |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtah r1, r3, r9 |
| # CHECK: sxtah r3, r8, r3, ror #8 |
| # CHECK: sxtah r9, r3, r3, ror #24 |
| # CHECK: ite hi |
| # CHECK: sxtahhi r6, r1, r6 |
| # CHECK: sxtahls r2, r2, r4, ror #16 |
| |
| 0x03 0xfa 0x89 0xf1 |
| 0x08 0xfa 0x93 0xf3 |
| 0x03 0xfa 0xb3 0xf9 |
| 0x8c 0xbf |
| 0x01 0xfa 0x86 0xf6 |
| 0x02 0xfa 0xa4 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTB |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtb r5, r6 |
| # CHECK: sxtb.w r6, r9, ror #8 |
| # CHECK: sxtb.w r8, r3, ror #24 |
| # CHECK: ite ge |
| # CHECK: sxtbge r2, r4 |
| # CHECK: sxtblt.w r5, r1, ror #16 |
| |
| 0x75 0xb2 |
| 0x4f 0xfa 0x99 0xf6 |
| 0x4f 0xfa 0xb3 0xf8 |
| 0xac 0xbf |
| 0x62 0xb2 |
| 0x4f 0xfa 0xa1 0xf5 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTB16 |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtb16 r1, r4 |
| # CHECK: sxtb16 r6, r7 |
| # CHECK: sxtb16 r3, r1, ror #16 |
| # CHECK: ite hs |
| # CHECK: sxtb16hs r3, r5, ror #8 |
| # CHECK: sxtb16lo r2, r3, ror #24 |
| |
| 0x2f 0xfa 0x84 0xf1 |
| 0x2f 0xfa 0x87 0xf6 |
| 0x2f 0xfa 0xa1 0xf3 |
| 0x2c 0xbf |
| 0x2f 0xfa 0x95 0xf3 |
| 0x2f 0xfa 0xb3 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTH |
| #------------------------------------------------------------------------------ |
| # CHECK: sxth r1, r6 |
| # CHECK: sxth.w r3, r8, ror #8 |
| # CHECK: sxth.w r9, r3, ror #24 |
| # CHECK: itt ne |
| # CHECK: sxthne.w r3, r9 |
| # CHECK: sxthne.w r2, r2, ror #16 |
| |
| 0x31 0xb2 |
| 0x0f 0xfa 0x98 0xf3 |
| 0x0f 0xfa 0xb3 0xf9 |
| 0x1c 0xbf |
| 0x0f 0xfa 0x89 0xf3 |
| 0x0f 0xfa 0xa2 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTB |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtb r5, r6 |
| # CHECK: sxtb.w r6, r9, ror #8 |
| # CHECK: sxtb.w r8, r3, ror #24 |
| # CHECK: ite ge |
| # CHECK: sxtbge r2, r4 |
| # CHECK: sxtblt.w r5, r1, ror #16 |
| |
| 0x75 0xb2 |
| 0x4f 0xfa 0x99 0xf6 |
| 0x4f 0xfa 0xb3 0xf8 |
| 0xac 0xbf |
| 0x62 0xb2 |
| 0x4f 0xfa 0xa1 0xf5 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTB16 |
| #------------------------------------------------------------------------------ |
| # CHECK: sxtb16 r1, r4 |
| # CHECK: sxtb16 r6, r7 |
| # CHECK: sxtb16 r3, r1, ror #16 |
| # CHECK: ite hs |
| # CHECK: sxtb16hs r3, r5, ror #8 |
| # CHECK: sxtb16lo r2, r3, ror #24 |
| |
| 0x2f 0xfa 0x84 0xf1 |
| 0x2f 0xfa 0x87 0xf6 |
| 0x2f 0xfa 0xa1 0xf3 |
| 0x2c 0xbf |
| 0x2f 0xfa 0x95 0xf3 |
| 0x2f 0xfa 0xb3 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # SXTH |
| #------------------------------------------------------------------------------ |
| # CHECK: sxth r1, r6 |
| # CHECK: sxth.w r3, r8, ror #8 |
| # CHECK: sxth.w r9, r3, ror #24 |
| # CHECK: itt ne |
| # CHECK: sxthne.w r3, r9 |
| # CHECK: sxthne.w r2, r2, ror #16 |
| |
| 0x31 0xb2 |
| 0x0f 0xfa 0x98 0xf3 |
| 0x0f 0xfa 0xb3 0xf9 |
| 0x1c 0xbf |
| 0x0f 0xfa 0x89 0xf3 |
| 0x0f 0xfa 0xa2 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # TBB/TBH |
| #------------------------------------------------------------------------------ |
| # CHECK: tbb [r3, r8] |
| # CHECK: tbh [r3, r8, lsl #1] |
| # CHECK: it eq |
| # CHECK: tbbeq [r3, r8] |
| # CHECK: it hs |
| # CHECK: tbhhs [r3, r8, lsl #1] |
| |
| 0xd3 0xe8 0x08 0xf0 |
| 0xd3 0xe8 0x18 0xf0 |
| 0x08 0xbf |
| 0xd3 0xe8 0x08 0xf0 |
| 0x28 0xbf |
| 0xd3 0xe8 0x18 0xf0 |
| |
| |
| #------------------------------------------------------------------------------ |
| # TEQ |
| #------------------------------------------------------------------------------ |
| # CHECK: teq.w r5, #61440 |
| # CHECK: teq.w r4, r5 |
| # CHECK: teq.w r4, r5, lsl #5 |
| # CHECK: teq.w r4, r5, lsr #5 |
| # CHECK: teq.w r4, r5, lsr #5 |
| # CHECK: teq.w r4, r5, asr #5 |
| # CHECK: teq.w r4, r5, ror #5 |
| |
| 0x95 0xf4 0x70 0x4f |
| 0x94 0xea 0x05 0x0f |
| 0x94 0xea 0x45 0x1f |
| 0x94 0xea 0x55 0x1f |
| 0x94 0xea 0x55 0x1f |
| 0x94 0xea 0x65 0x1f |
| 0x94 0xea 0x75 0x1f |
| |
| |
| #------------------------------------------------------------------------------ |
| # TST |
| #------------------------------------------------------------------------------ |
| # CHECK: tst.w r5, #61440 |
| # CHECK: tst r2, r5 |
| # CHECK: tst.w r3, r12, lsl #5 |
| # CHECK: tst.w r4, r11, lsr #4 |
| # CHECK: tst.w r5, r10, lsr #12 |
| # CHECK: tst.w r6, r9, asr #30 |
| # CHECK: tst.w r7, r8, ror #2 |
| |
| 0x15 0xf4 0x70 0x4f |
| 0x2a 0x42 |
| 0x13 0xea 0x4c 0x1f |
| 0x14 0xea 0x1b 0x1f |
| 0x15 0xea 0x1a 0x3f |
| 0x16 0xea 0xa9 0x7f |
| 0x17 0xea 0xb8 0x0f |
| |
| |
| #------------------------------------------------------------------------------ |
| # UADD16/UADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: uadd16 r1, r2, r3 |
| # CHECK: uadd8 r1, r2, r3 |
| # CHECK: ite gt |
| # CHECK: uadd16gt r1, r2, r3 |
| # CHECK: uadd8le r1, r2, r3 |
| |
| 0x92 0xfa 0x43 0xf1 |
| 0x82 0xfa 0x43 0xf1 |
| 0xcc 0xbf |
| 0x92 0xfa 0x43 0xf1 |
| 0x82 0xfa 0x43 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UASX |
| #------------------------------------------------------------------------------ |
| # CHECK: uasx r9, r12, r0 |
| # CHECK: it eq |
| # CHECK: uasxeq r9, r12, r0 |
| # CHECK: uasx r9, r12, r0 |
| # CHECK: it eq |
| # CHECK: uasxeq r9, r12, r0 |
| |
| 0xac 0xfa 0x40 0xf9 |
| 0x08 0xbf |
| 0xac 0xfa 0x40 0xf9 |
| 0xac 0xfa 0x40 0xf9 |
| 0x08 0xbf |
| 0xac 0xfa 0x40 0xf9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UBFX |
| #------------------------------------------------------------------------------ |
| # CHECK: ubfx r4, r5, #16, #1 |
| # CHECK: it gt |
| # CHECK: ubfxgt r4, r5, #16, #16 |
| |
| 0xc5 0xf3 0x00 0x44 |
| 0xc8 0xbf |
| 0xc5 0xf3 0x0f 0x44 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UHADD16/UHADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: uhadd16 r4, r8, r2 |
| # CHECK: uhadd8 r4, r8, r2 |
| # CHECK: itt gt |
| # CHECK: uhadd16gt r4, r8, r2 |
| # CHECK: uhadd8gt r4, r8, r2 |
| |
| 0x98 0xfa 0x62 0xf4 |
| 0x88 0xfa 0x62 0xf4 |
| 0xc4 0xbf |
| 0x98 0xfa 0x62 0xf4 |
| 0x88 0xfa 0x62 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UHASX/UHSAX |
| #------------------------------------------------------------------------------ |
| # CHECK: uhasx r4, r1, r5 |
| # CHECK: uhsax r5, r6, r6 |
| # CHECK: itt gt |
| # CHECK: uhasxgt r6, r9, r8 |
| # CHECK: uhsaxgt r7, r8, r12 |
| |
| 0xa1 0xfa 0x65 0xf4 |
| 0xe6 0xfa 0x66 0xf5 |
| 0xc4 0xbf |
| 0xa9 0xfa 0x68 0xf6 |
| 0xe8 0xfa 0x6c 0xf7 |
| |
| #------------------------------------------------------------------------------ |
| # UHSUB16/UHSUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: uhsub16 r5, r8, r3 |
| # CHECK: uhsub8 r1, r7, r6 |
| # CHECK: itt lt |
| # CHECK: uhsub16lt r4, r9, r12 |
| # CHECK: uhsub8lt r3, r1, r5 |
| |
| 0xd8 0xfa 0x63 0xf5 |
| 0xc7 0xfa 0x66 0xf1 |
| 0xbc 0xbf |
| 0xd9 0xfa 0x6c 0xf4 |
| 0xc1 0xfa 0x65 0xf3 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UMAAL |
| #------------------------------------------------------------------------------ |
| # CHECK: umaal r3, r4, r5, r6 |
| # CHECK: it lt |
| # CHECK: umaallt r3, r4, r5, r6 |
| |
| 0xe5 0xfb 0x66 0x34 |
| 0xb8 0xbf |
| 0xe5 0xfb 0x66 0x34 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UMLAL |
| #------------------------------------------------------------------------------ |
| # CHECK: umlal r2, r4, r6, r8 |
| # CHECK: it gt |
| # CHECK: umlalgt r6, r1, r2, r6 |
| |
| 0xe6 0xfb 0x08 0x24 |
| 0xc8 0xbf |
| 0xe2 0xfb 0x06 0x61 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UMULL |
| #------------------------------------------------------------------------------ |
| # CHECK: umull r2, r4, r6, r8 |
| # CHECK: it gt |
| # CHECK: umullgt r6, r1, r2, r6 |
| |
| 0xa6 0xfb 0x08 0x24 |
| 0xc8 0xbf |
| 0xa2 0xfb 0x06 0x61 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UQADD16/UQADD8 |
| #------------------------------------------------------------------------------ |
| # CHECK: uqadd16 r1, r2, r3 |
| # CHECK: uqadd8 r3, r4, r8 |
| # CHECK: ite gt |
| # CHECK: uqadd16gt r4, r7, r9 |
| # CHECK: uqadd8le r8, r1, r2 |
| |
| 0x92 0xfa 0x53 0xf1 |
| 0x84 0xfa 0x58 0xf3 |
| 0xcc 0xbf |
| 0x97 0xfa 0x59 0xf4 |
| 0x81 0xfa 0x52 0xf8 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UQASX/UQSAX |
| #------------------------------------------------------------------------------ |
| # CHECK: uqasx r1, r2, r3 |
| # CHECK: uqsax r3, r4, r8 |
| # CHECK: ite gt |
| # CHECK: uqasxgt r4, r7, r9 |
| # CHECK: uqsaxle r8, r1, r2 |
| |
| 0xa2 0xfa 0x53 0xf1 |
| 0xe4 0xfa 0x58 0xf3 |
| 0xcc 0xbf |
| 0xa7 0xfa 0x59 0xf4 |
| 0xe1 0xfa 0x52 0xf8 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UQSUB16/UQSUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: uqsub8 r8, r2, r9 |
| # CHECK: uqsub16 r1, r9, r7 |
| # CHECK: ite gt |
| # CHECK: uqsub8gt r3, r1, r6 |
| # CHECK: uqsub16le r4, r6, r4 |
| |
| 0xc2 0xfa 0x59 0xf8 |
| 0xd9 0xfa 0x57 0xf1 |
| 0xcc 0xbf |
| 0xc1 0xfa 0x56 0xf3 |
| 0xd6 0xfa 0x54 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UQSUB16/UQSUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: usad8 r1, r9, r7 |
| # CHECK: usada8 r8, r2, r9, r12 |
| # CHECK: ite gt |
| # CHECK: usada8gt r3, r1, r6, r9 |
| # CHECK: usad8le r4, r6, r4 |
| |
| 0x79 0xfb 0x07 0xf1 |
| 0x72 0xfb 0x09 0xc8 |
| 0xcc 0xbf |
| 0x71 0xfb 0x06 0x93 |
| 0x76 0xfb 0x04 0xf4 |
| |
| |
| #------------------------------------------------------------------------------ |
| # USAT |
| #------------------------------------------------------------------------------ |
| # CHECK: usat r8, #1, r10 |
| # CHECK: usat r8, #4, r10 |
| # CHECK: usat r8, #5, r10, lsl #31 |
| # CHECK: usat r8, #16, r10, asr #1 |
| |
| 0x8a 0xf3 0x01 0x08 |
| 0x8a 0xf3 0x04 0x08 |
| 0x8a 0xf3 0xc5 0x78 |
| 0xaa 0xf3 0x50 0x08 |
| |
| |
| #------------------------------------------------------------------------------ |
| # USAT16 |
| #------------------------------------------------------------------------------ |
| # CHECK: usat16 r2, #2, r7 |
| # CHECK: usat16 r3, #15, r5 |
| |
| 0xa7 0xf3 0x02 0x02 |
| 0xa5 0xf3 0x0f 0x03 |
| |
| |
| #------------------------------------------------------------------------------ |
| # USAX |
| #------------------------------------------------------------------------------ |
| # CHECK: usax r2, r3, r4 |
| # CHECK: it ne |
| # CHECK: usaxne r6, r1, r9 |
| # CHECK: usax r2, r3, r4 |
| # CHECK: it ne |
| # CHECK: usaxne r6, r1, r9 |
| |
| 0xe3 0xfa 0x44 0xf2 |
| 0x18 0xbf |
| 0xe1 0xfa 0x49 0xf6 |
| 0xe3 0xfa 0x44 0xf2 |
| 0x18 0xbf |
| 0xe1 0xfa 0x49 0xf6 |
| |
| |
| #------------------------------------------------------------------------------ |
| # USUB16/USUB8 |
| #------------------------------------------------------------------------------ |
| # CHECK: usub16 r4, r2, r7 |
| # CHECK: usub8 r1, r8, r5 |
| # CHECK: ite hi |
| # CHECK: usub16hi r1, r1, r3 |
| # CHECK: usub8ls r9, r2, r3 |
| |
| 0xd2 0xfa 0x47 0xf4 |
| 0xc8 0xfa 0x45 0xf1 |
| 0x8c 0xbf |
| 0xd1 0xfa 0x43 0xf1 |
| 0xc2 0xfa 0x43 0xf9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTAB |
| #------------------------------------------------------------------------------ |
| # CHECK: uxtab r2, r3, r4 |
| # CHECK: uxtab r4, r5, r6 |
| # CHECK: it lt |
| # CHECK: uxtablt r6, r2, r9, ror #8 |
| # CHECK: uxtab r5, r1, r4, ror #16 |
| # CHECK: uxtab r7, r8, r3, ror #24 |
| |
| 0x53 0xfa 0x84 0xf2 |
| 0x55 0xfa 0x86 0xf4 |
| 0xb8 0xbf |
| 0x52 0xfa 0x99 0xf6 |
| 0x51 0xfa 0xa4 0xf5 |
| 0x58 0xfa 0xb3 0xf7 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTAB16 |
| #------------------------------------------------------------------------------ |
| # CHECK: it ge |
| # CHECK: uxtab16ge r0, r1, r4 |
| # CHECK: uxtab16 r6, r2, r7 |
| # CHECK: uxtab16 r3, r5, r8, ror #8 |
| # CHECK: uxtab16 r3, r2, r1, ror #16 |
| # CHECK: it eq |
| # CHECK: uxtab16eq r1, r2, r3, ror #24 |
| |
| 0xa8 0xbf |
| 0x31 0xfa 0x84 0xf0 |
| 0x32 0xfa 0x87 0xf6 |
| 0x35 0xfa 0x98 0xf3 |
| 0x32 0xfa 0xa1 0xf3 |
| 0x08 0xbf |
| 0x32 0xfa 0xb3 0xf1 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTAH |
| #------------------------------------------------------------------------------ |
| # CHECK: uxtah r1, r3, r9 |
| # CHECK: it hi |
| # CHECK: uxtahhi r6, r1, r6 |
| # CHECK: uxtah r3, r8, r3, ror #8 |
| # CHECK: it lo |
| # CHECK: uxtahlo r2, r2, r4, ror #16 |
| # CHECK: uxtah r9, r3, r3, ror #24 |
| |
| 0x13 0xfa 0x89 0xf1 |
| 0x88 0xbf |
| 0x11 0xfa 0x86 0xf6 |
| 0x18 0xfa 0x93 0xf3 |
| 0x38 0xbf |
| 0x12 0xfa 0xa4 0xf2 |
| 0x13 0xfa 0xb3 0xf9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTB |
| #------------------------------------------------------------------------------ |
| # CHECK: it ge |
| # CHECK: uxtbge r2, r4 |
| # CHECK: uxtb r5, r6 |
| # CHECK: uxtb.w r6, r9, ror #8 |
| # CHECK: it lo |
| # CHECK: uxtblo.w r5, r1, ror #16 |
| # CHECK: uxtb.w r8, r3, ror #24 |
| |
| 0xa8 0xbf |
| 0xe2 0xb2 |
| 0xf5 0xb2 |
| 0x5f 0xfa 0x99 0xf6 |
| 0x38 0xbf |
| 0x5f 0xfa 0xa1 0xf5 |
| 0x5f 0xfa 0xb3 0xf8 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTB16 |
| #------------------------------------------------------------------------------ |
| # CHECK: uxtb16 r1, r4 |
| # CHECK: uxtb16 r6, r7 |
| # CHECK: it hs |
| # CHECK: uxtb16hs r3, r5, ror #8 |
| # CHECK: uxtb16 r3, r1, ror #16 |
| # CHECK: it ge |
| # CHECK: uxtb16ge r2, r3, ror #24 |
| |
| 0x3f 0xfa 0x84 0xf1 |
| 0x3f 0xfa 0x87 0xf6 |
| 0x28 0xbf |
| 0x3f 0xfa 0x95 0xf3 |
| 0x3f 0xfa 0xa1 0xf3 |
| 0xa8 0xbf |
| 0x3f 0xfa 0xb3 0xf2 |
| |
| |
| #------------------------------------------------------------------------------ |
| # UXTH |
| #------------------------------------------------------------------------------ |
| # CHECK: it ne |
| # CHECK: uxthne.w r3, r9 |
| # CHECK: uxth r1, r6 |
| # CHECK: uxth.w r3, r8, ror #8 |
| # CHECK: it le |
| # CHECK: uxthle.w r2, r2, ror #16 |
| # CHECK: uxth.w r9, r3, ror #24 |
| |
| 0x18 0xbf |
| 0x1f 0xfa 0x89 0xf3 |
| 0xb1 0xb2 |
| 0x1f 0xfa 0x98 0xf3 |
| 0xd8 0xbf |
| 0x1f 0xfa 0xa2 0xf2 |
| 0x1f 0xfa 0xb3 0xf9 |
| |
| |
| #------------------------------------------------------------------------------ |
| # WFE/WFI/YIELD |
| #------------------------------------------------------------------------------ |
| # CHECK: wfe |
| # CHECK: wfi |
| # CHECK: yield |
| # CHECK: itet lt |
| # CHECK: wfelt |
| # CHECK: wfige |
| # CHECK: yieldlt |
| |
| 0x20 0xbf |
| 0x30 0xbf |
| 0x10 0xbf |
| 0xb6 0xbf |
| 0x20 0xbf |
| 0x30 0xbf |
| 0x10 0xbf |
| |