| # RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 -mattr +t2xtpk,+mp | FileCheck %s |
| |
| # CHECK: add r5, sp, #68 |
| 0x11 0xad |
| |
| # CHECK: adcs r0, r0, #1 |
| 0x50 0xf1 0x01 0x00 |
| |
| # CHECK: b #30 |
| 0x0f 0xe0 |
| |
| # CHECK: bgt.w #-16 |
| 0x3f 0xf7 0xf8 0xaf |
| |
| # CHECK: bfc r0, #10, #10 |
| 0x6f 0xf3 0x93 0x20 |
| |
| # CHECK: bfi r2, r10, #0, #1 |
| 0x6a 0xf3 0x00 0x02 |
| |
| # CHECK: cbnz r7, #20 |
| 0x57 0xb9 |
| |
| # CHECK: cmp r3, r4 |
| 0xa3 0x42 |
| |
| # CHECK: cmn.w r0, #31 |
| 0x10 0xf1 0x1f 0x0f |
| |
| # CHECK: ldm r0!, {r1} |
| 0x02 0xc8 |
| |
| # CHECK: ldr r5, #432 |
| 0x6c 0x4d |
| |
| # CHECK: str r0, [r3] |
| 0x18 0x60 |
| |
| # CHECK: str r0, [r3, #4] |
| 0x58 0x60 |
| |
| # CHECK: str r2, [r5, r3] |
| 0xea 0x50 |
| |
| # CHECK: ldrb.w r8, [pc, #-24] |
| 0x1f 0xf8 0x18 0x80 |
| |
| # CHECK: ldrd r0, r1, [r7, #64]! |
| 0xf7 0xe9 0x10 0x01 |
| |
| # CHECK: lsls.w r0, r5, #1 |
| 0x5f 0xea 0x45 0x00 |
| |
| # CHECK: mov r11, r7 |
| 0xbb 0x46 |
| |
| # CHECK: pkhtb r2, r4, r6, asr #16 |
| 0xc4 0xea 0x26 0x42 |
| |
| # CHECK-NOT: pkhbt r2, r4, r6, lsl #0 |
| # CHECK: pkhbt r2, r4, r6 |
| 0xc4 0xea 0x06 0x02 |
| |
| # CHECK: pop.w {r2, r4, r6, r8, r10, r12} |
| 0xbd 0xe8 0x54 0x15 |
| |
| # CHECK: push.w {r2, r4, r6, r8, r10, r12} |
| 0x2d 0xe9 0x54 0x15 |
| |
| # CHECK: rsbs r0, r0, #0 |
| 0x40 0x42 |
| |
| # CHECK-NOT: rsb r0, r2, r0, lsl #0 |
| # CHECK: rsb r0, r2, r0 |
| 0xc2 0xeb 0x00 0x00 |
| |
| # CHECK-NOT: ssat r0, #17, r12, lsl #0 |
| # CHECK: ssat r0, #17, r12 |
| 0x0c 0xf3 0x10 0x00 |
| |
| # CHECK: strd r0, r1, [r7, #64] |
| 0xc7 0xe9 0x10 0x01 |
| |
| # CHECK: sub sp, #60 |
| 0x8f 0xb0 |
| |
| # CHECK: subw r0, pc, #1 |
| 0xaf 0xf2 0x01 0x00 |
| |
| # CHECK: subw r0, sp, #835 |
| 0xad 0xf2 0x43 0x30 |
| |
| # CHECK: uqadd16 r3, r4, r5 |
| 0x94 0xfa 0x55 0xf3 |
| |
| # CHECK: usada8 r5, r4, r3, r2 |
| 0x74 0xfb 0x03 0x25 |
| |
| # CHECK: uxtab16 r1, r2, r3, ror #8 |
| 0x32 0xfa 0x93 0xf1 |
| |
| # IT block begin |
| # CHECK: ittte eq |
| 0x03 0xbf |
| |
| # CHECK: moveq r3, #3 |
| 0x03 0x23 |
| |
| # CHECK: asreq r1, r0, #5 |
| 0x41 0x11 |
| |
| # CHECK: lsleq r1, r0, #28 |
| 0x01 0x07 |
| |
| # CHECK: stmne r0!, {r1, r2, r3} |
| 0x0e 0xc0 |
| |
| # IT block end |
| # CHECK: rsbs r1, r2, #0 |
| 0x51 0x42 |
| |
| # CHECK: cpsid.w f |
| 0xaf 0xf3 0x20 0x86 |
| |
| # CHECK: cps #15 |
| 0xaf 0xf3 0x0f 0x81 |
| |
| # CHECK: cpsie.w if, #10 |
| 0xaf 0xf3 0x6a 0x85 |
| |
| # CHECK: cpsie aif |
| 0x67 0xb6 |
| |
| # CHECK: msr CPSR_fc, r0 |
| 0x80 0xf3 0x00 0x89 |
| |
| # CHECK: blx #-4 |
| 0xff 0xf7 0xfe 0xef |
| |
| # CHECK: vpush {d8, d9, d10} |
| 0x2d 0xed 0x06 0x8b |
| |
| # CHECK: vcmpe.f64 d8, #0 |
| 0xb5 0xee 0xc0 0x8b |
| |
| # CHECK: stmdb sp, {r0, r2, r3, r8, r11, lr} |
| 0x0d 0xe9 0x0d 0x49 |
| |
| # CHECK: stm r5!, {r0, r1, r2, r3, r4} |
| 0x1f 0xc5 |
| |
| # CHECK: ldm r5, {r0, r1, r2, r3, r4, r5} |
| 0x3f 0xcd |
| |
| # CHECK: ldm r5!, {r0, r1, r2, r3, r4} |
| 0x1f 0xcd |
| |
| # CHECK: addw r0, pc, #1050 |
| 0x0f 0xf2 0x1a 0x40 |
| |
| # CHECK: ldrd r3, r8, [r11, #-60] |
| 0x5b 0xe9 0x0f 0x38 |
| |
| # CHECK: ldrex r8, [r2] |
| 0x52 0xe8 0x00 0x8f |
| |
| # CHECK: ldrexd r8, r9, [r2] |
| 0xd2 0xe8 0x7f 0x89 |
| |
| # CHECK: strexd r1, r7, r8, [r2] |
| 0xc2 0xe8 0x71 0x78 |
| |
| # CHECK: tbh [r5, r4, lsl #1] |
| 0xd5 0xe8 0x14 0xf0 |
| |
| # CHECK: tbb [r5, r4] |
| 0xd5 0xe8 0x04 0xf0 |
| |
| # CHECK: ldr.w r4, [sp, r4, lsl #3] |
| 0x5d 0xf8 0x34 0x40 |
| |
| # CHECK: ldr.w r5, [r6, #30] |
| 0xd6 0xf8 0x1e 0x50 |
| |
| # CHECK: ldrh.w r5, [r6, #30] |
| 0xb6 0xf8 0x1e 0x50 |
| |
| # CHECK: ldrt r5, [r6, #30] |
| 0x56 0xf8 0x1e 0x5e |
| |
| # CHECK: ldr r5, [r6, #-30] |
| 0x56 0xf8 0x1e 0x5c |
| |
| # CHECK: sel r7, r3, r5 |
| 0xa3 0xfa 0x85 0xf7 |
| |
| # CHECK: lsl.w r7, r3, r5 |
| 0x03 0xfa 0x05 0xf7 |
| |
| # CHECK: adds.w r7, r3, r5 |
| 0x13 0xeb 0x05 0x07 |
| |
| # CHECK: smlabt r4, r3, r2, r1 |
| 0x13 0xfb 0x12 0x14 |
| |
| # CHECK: smmulr r7, r8, r9 |
| 0x58 0xfb 0x19 0xf7 |
| |
| # CHECK: umull r1, r2, r3, r4 |
| 0xa3 0xfb 0x04 0x12 |
| |
| # CHECK: pld [r5, r0, lsl #1] |
| 0x15 0xf8 0x10 0xf0 |
| |
| # CHECK: pld [pc, #-16] |
| 0x1f 0xf8 0x10 0xf0 |
| |
| # CHECK: pld [r5, #30] |
| 0x95 0xf8 0x1e 0xf0 |
| |
| # CHECK: stc2 p12, c15, [r9], {137} |
| 0x89 0xfc 0x89 0xfc |
| |
| # CHECK: vmov r1, r0, d11 |
| 0x50 0xec 0x1b 0x1b |
| |
| # CHECK: dsb nsh |
| 0xbf 0xf3 0x47 0x8f |
| |
| # CHECK: isb |
| 0xbf 0xf3 0x6f 0x8f |
| |
| # CHECK: asrs r1, r0, #32 |
| 0x1 0x10 |
| |
| # CHECK: lsr.w r10, r0, #32 |
| 0x4f 0xea 0x10 0x0a |
| |
| # CHECK: blx sp |
| 0xe8 0x47 |
| |
| # CHECK: bx lr |
| 0x70 0x47 |
| |
| # CHECK: bx pc |
| 0x78 0x47 |
| |
| # CHECK: svc #230 |
| 0xe6 0xdf |
| |
| # CHECK: rfedb lr |
| 0x1e 0xe8 0x00 0xc0 |
| |
| # CHECK: mov.w r3, #4294967295 |
| 0x4f 0xf0 0xff 0x33 |
| |
| # CHECK: mov pc, sp |
| 0xef 0x46 |
| |
| # CHECK: nop |
| 0x00 0xbf |
| |
| # CHECK: nop.w |
| 0xaf 0xf3 0x00 0x80 |
| |
| # CHECK: bne #24 |
| 0x0c 0xd1 |
| |
| # CHECK: vadd.f32 q0, q1, q2 |
| 0x02 0xef 0x44 0x0d |
| |
| # CHECK: ldrsb r1, [r0, r0] |
| 0x01 0x56 |
| |
| # CHECK: ldrsh r1, [r0, r0] |
| 0x01 0x5E |
| |
| # CHECK: and.w r5, r1, r10, ror #7 |
| 0x1 0xea 0xfa 0x95 |
| |
| # CHECK: ldrsh r6, [sp], #81 |
| 0x3d 0xf9 0x51 0x6b |
| |
| # CHECK: usat16 r4, #10, r1 |
| 0xa1 0xf3 0x0a 0x04 |
| |
| # CHECK: smlad r5, r12, r8, r11 |
| 0x2c 0xfb 0x8 0xb5 |
| |
| # CHECK: teq.w r0, r11 |
| 0x90 0xea 0xb 0x8f |
| |
| # CHECK: uxtb16 r9, r12, ror #16 |
| 0x3f 0xfa 0xec 0xf9 |
| |
| # CHECK: pldw [r11, r12, lsl #2] |
| 0x3b 0xf8 0x2c 0xf0 |
| |
| # CHECK: msr CPSR_fc, r0 |
| 0x80 0xf3 0x00 0x89 |
| |
| # CHECK: mrs r0, apsr |
| 0xef 0xf3 0x00 0x80 |