| # RUN: llvm-mc --disassemble %s -triple=armv7-apple-darwin9 -mattr +mp | FileCheck %s |
| |
| # CHECK: addpl r4, pc, #318767104 |
| 0x4c 0x45 0x8f 0x52 |
| |
| # CHECK: b #0 |
| 0x00 0x00 0x00 0xea |
| |
| # CHECK: bl #7732 |
| 0x8d 0x07 0x00 0xeb |
| |
| # CHECK: bleq #-4 |
| 0xff 0xff 0xff 0x0b |
| |
| # CHECK: bfc r8, #0, #16 |
| 0x1f 0x80 0xcf 0xe7 |
| |
| # CHECK: bfi r8, r0, #16, #1 |
| 0x10 0x88 0xd0 0xe7 |
| |
| # CHECK: mov pc, lr |
| 0x0e 0xf0 0xa0 0xe1 |
| |
| # CHECK: mov pc, #3221225535 |
| 0xff 0xf1 0xa0 0xe3 |
| |
| # CHECK: movw r7, #4096 |
| 0x00 0x70 0x01 0xe3 |
| |
| # CHECK: cmn r0, #1 |
| 0x01 0x00 0x70 0xe3 |
| |
| # CHECK: dmb |
| 0x5f 0xf0 0x7f 0xf5 |
| |
| # CHECK: dmb nshst |
| 0x56 0xf0 0x7f 0xf5 |
| |
| # CHECK: dsb |
| 0x4f 0xf0 0x7f 0xf5 |
| |
| # CHECK: dsb st |
| 0x4e 0xf0 0x7f 0xf5 |
| |
| # CHECK: isb |
| 0x6f 0xf0 0x7f 0xf5 |
| |
| # FIXME: LDC encoding information is incorrect. Re-enable this along with more |
| # robust testing for other values when we get it fleshed out and working |
| # properly. |
| # CHECKx: ldclvc p5, cr15, [r8], #-0 |
| #0x00 0xf5 0x78 0x7c |
| |
| # CHECK: ldr r0, [r2], #15 |
| 0x0f 0x00 0x92 0xe4 |
| |
| # CHECK: ldr r5, [r7, -r10, lsl #2] |
| 0x0a 0x51 0x17 0xe7 |
| |
| # CHECK: ldrh r0, [r2], #0 |
| 0xb0 0x00 0xd2 0xe0 |
| |
| # CHECK: ldrh r0, [r2] |
| 0xb0 0x00 0xd2 0xe1 |
| |
| # CHECK: ldrht r0, [r2], #15 |
| 0xbf 0x00 0xf2 0xe0 |
| |
| # CHECK: ldrsbtvs lr, [r2], -r9 |
| 0xd9 0xe0 0x32 0x60 |
| |
| # CHECK: lsls r0, r2, #31 |
| 0x82 0x0f 0xb0 0xe1 |
| |
| # CHECK: mcr2 p0, #0, r2, c1, c0, #7 |
| 0xf0 0x20 0x01 0xfe |
| |
| # CHECK: movt r8, #65535 |
| 0xff 0x8f 0x4f 0xe3 |
| |
| # CHECK: mvnspl r7, #1073741885 |
| 0xf5 0x71 0xf0 0x53 |
| |
| # CHECK-NOT: orr r7, r8, r7, rrx #0 |
| # CHECK: orr r7, r8, r7, rrx |
| 0x67 0x70 0x88 0xe1 |
| |
| # CHECK: pkhbt r8, r9, r10, lsl #4 |
| 0x1a 0x82 0x89 0xe6 |
| |
| # CHECK-NOT: pkhbtls r10, r11, r11, lsl #0 |
| # CHECK: pkhbtls r10, r11, r11 |
| 0x1b 0xa0 0x8b 0x96 |
| |
| # CHECK: pkhtbmi lr, r1, r6, asr #21 |
| 0xd6 0xea 0x81 0x46 |
| |
| # CHECK: pop {r0, r2, r4, r6, r8, r10} |
| 0x55 0x05 0xbd 0xe8 |
| |
| # CHECK: push {r0, r2, r4, r6, r8, r10} |
| 0x55 0x05 0x2d 0xe9 |
| |
| # CHECK: qsax r8, r9, r10 |
| 0x5a 0x8f 0x29 0xe6 |
| |
| # CHECK: rfedb r0! |
| 0x00 0x0a 0x30 0xf9 |
| |
| # CHECK: srsdb sp!, #19 |
| 0x13 0x05 0x6d 0xf9 |
| |
| # CHECK: srsia sp, #9 |
| 0x09 0x05 0xcd 0xf8 |
| |
| # CHECK-NOT: rsbeq r0, r2, r0, lsl #0 |
| # CHECK: rsbeq r0, r2, r0 |
| 0x00 0x00 0x62 0x00 |
| |
| # CHECK-NOT: rscseq r0, r0, r1, lsl #0 |
| # CHECK: rscseq r0, r0, r1 |
| 0x01 0x00 0xf0 0x00 |
| |
| # CHECK: sbcs r0, pc, #1 |
| 0x01 0x00 0xdf 0xe2 |
| |
| # CHECK: sbfx r0, r1, #0, #8 |
| 0x51 0x00 0xa7 0xe7 |
| |
| # CHECK: ssat r8, #1, r10, lsl #8 |
| 0x1a 0x84 0xa0 0xe6 |
| |
| # CHECK-NOT: ssatmi r0, #17, r12, lsl #0 |
| # CHECK: ssatmi r0, #17, r12 |
| 0x1c 0x00 0xb0 0x46 |
| |
| # CHECK: stmdb r10!, {r4, r5, r6, r7, lr} |
| 0xf0 0x40 0x2a 0xe9 |
| |
| # CHECK: teq r0, #31 |
| 0x1f 0x00 0x30 0xe3 |
| |
| # CHECK: ubfx r0, r0, #16, #1 |
| 0x50 0x08 0xe0 0xe7 |
| |
| # CHECK: usat r8, #0, r10, asr #32 |
| 0x5a 0x80 0xe0 0xe6 |
| |
| # CHECK: setend be |
| 0x00 0x02 0x01 0xf1 |
| |
| # CHECK: setend le |
| 0x00 0x00 0x01 0xf1 |
| |
| # CHECK: cpsie aif |
| 0xc0 0x01 0x08 0xf1 |
| |
| # CHECK: cps #15 |
| 0x0f 0x00 0x02 0xf1 |
| |
| # CHECK: cpsie if, #10 |
| 0xca 0x00 0x0a 0xf1 |
| |
| # CHECK: msr CPSR_fc, r0 |
| 0x00 0xf0 0x29 0xe1 |
| |
| # CHECK: msrmi CPSR_c, #4043309056 |
| 0xf1 0xf4 0x21 0x43 |
| |
| # CHECK: rsbs r6, r7, r8 |
| 0x08 0x60 0x77 0xe0 |
| |
| # CHECK: blxeq r5 |
| 0x35 0xff 0x2f 0x01 |
| |
| # CHECK: bx r12 |
| 0x1c 0xff 0x2f 0xe1 |
| |
| # CHECK: bxeq r5 |
| 0x15 0xff 0x2f 0x01 |
| |
| # CHECK: uqadd16mi r6, r11, r8 |
| 0x18 0x6F 0x6b 0x46 |
| |
| # CHECK: str r0, [sp, #4] |
| 0x04 0x00 0x8d 0xe5 |
| |
| # CHECK: str r1, [sp] |
| 0x00 0x10 0x8d 0xe5 |
| |
| # CHECK: ldr r3, [pc, #144] |
| 0x90 0x30 0x9f 0xe5 |
| |
| # CHECK: ldr r3, [r0, #-4] |
| 0x4 0x30 0x10 0xe5 |
| |
| # CHECK: ldr r5, [sp, r0, lsl #1]! |
| 0x80 0x50 0xbd 0xe7 |
| |
| # CHECK: ldr r5, [r7], -r0, lsr #2 |
| 0x20 0x51 0x17 0xe6 |
| |
| # CHECK: strdeq r2, r3, [r0], -r8 |
| 0xf8 0x24 0x00 0x00 |
| |
| # CHECK: ldrdeq r2, r3, [r0], -r12 |
| 0xdc 0x24 0x00 0x00 |
| |
| # CHECK: ldrbt r3, [r4], -r5, lsl #12 |
| 0x05 0x36 0x74 0xe6 |
| |
| # CHECK: vcmpe.f64 d8, #0 |
| 0xc0 0x8b 0xb5 0xee |
| |
| # CHECK: vldmdb r2!, {s7, s8, s9, s10, s11} |
| 0x05 0x3a 0x72 0xed |
| |
| # CHECK: vldr.32 s23, [r2, #660] |
| 0xa5 0xba 0xd2 0xed |
| |
| # CHECK: strtvc r5, [r3], r0, lsr #20 |
| 0x20 0x5a 0xa3 0x76 |
| |
| # CHECK: stmiblo sp, {r0, r4, r8, r11, r12, pc} |
| 0x11 0x99 0x8d 0x39 |
| |
| # CHECK: ldmdb sp, {r0, r4, r8, r11, r12, pc} |
| 0x11 0x99 0x1d 0xe9 |
| |
| # CHECK: swpge r3, r2, [r6] |
| 0x92 0x30 0x06 0xa1 |
| |
| # CHECK: umull r1, r2, r3, r4 |
| 0x93 0x14 0x82 0xe0 |
| |
| # CHECK: pldw [pc, #-0] |
| 0x00 0xf0 0x1f 0xf5 |
| |
| # CHECK: pli [pc, #-0] |
| 0x00 0xf0 0x5f 0xf4 |
| |
| # CHECK: pli [r3, r1, lsl #2] |
| 0x01 0xf1 0xd3 0xf6 |
| |
| # CHECK: stc p2, c4, [r9], {157} |
| 0x9d 0x42 0x89 0xec |
| |
| # CHECK: stc2 p2, c4, [r9], {157} |
| 0x9d 0x42 0x89 0xfc |
| |
| # CHECK: bne #-24 |
| 0xfa 0xff 0xff 0x1a |
| |
| # CHECK: blx #60 |
| 0x0f 0x00 0x00 0xfa |
| |
| # CHECK-NOT: adcs r10, r8, r0, asr #6 |
| # CHECK: adcshi r10, r8, r0, asr #6 |
| 0x40 0xa3 0xb8 0x80 |
| |
| # CHECK: adcshi r10, r8, r0, asr r3 |
| 0x50 0xa3 0xb8 0x80 |
| |
| # CHECK: streq r1, [sp], #-1567 |
| 0x1f 0x16 0xd 0x4 |
| |
| # CHECK: mrchs p2, #3, r11, c13, c6, #6 |
| 0xd6 0xb2 0x7d 0x2e |
| |
| # CHECK: smlsldx r4, r12, r11, r4 |
| 0x7b 0x44 0x4c 0xe7 |
| |
| # CHECK: lsl r3, r2, r1 |
| 0x12 0x31 0xa0 0xe1 |
| |
| # CHECK: sxtab r9, r8, r5 |
| 0x75 0x90 0xa8 0xe6 |
| |
| # CHECK: sxtb r9, r5, ror #8 |
| 0x75 0x94 0xaf 0xe6 |
| |
| # CHECK: bfc r5, #0, #16 |
| 0x1f 0x50 0xcf 0xe7 |
| |
| # CHECK: bfi r5, r6, #0, #16 |
| 0x16 0x50 0xcf 0xe7 |
| |
| # CHECK: sbfx r5, r6, #8, #8 |
| 0x56 0x54 0xa7 0xe7 |
| |
| # CHECK: rsb pc, r5, r0 |
| 0x00 0xf0 0x65 0xe0 |
| |
| # CHECK: uqadd8 r5, r6, r7 |
| 0x97 0x5f 0x66 0xe6 |
| |
| # CHECK: uqsax r5, r6, r7 |
| 0x57 0x5f 0x66 0xe6 |
| |
| # CHECK: smmlareq r0, r0, r0, r0 |
| 0x30 0x00 0x50 0x07 |
| |
| # CHECK: nop |
| 0x00 0xf0 0x20 0xe3 |
| |
| # CHECK: andeq r0, r0, r0, lsr #32 |
| 0x20 0x00 0x00 0x00 |
| |
| # CHECK: strb r3, [r2], #1 |
| 0x01 0x30 0xc2 0xe4 |
| |
| # CHECK: strheq r0, [r0, -r0] |
| 0xb0 0x00 0x00 0x01 |
| |
| # CHECK: rfedb #4! |
| 0x14 0x0 0x32 0xf9 |
| |
| # CHECK: stc2l p0, c0, [r2], #-96 |
| 0x18 0x0 0x62 0xfc |