| # RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 | FileCheck %s | |
| # CHECK: push {r0, r1, r2, r3} | |
| # CHECK-NEXT: push {r4, r5, r7, lr} | |
| # CHECK-NEXT: add r7, sp, #8 | |
| # CHECK-NEXT: sub sp, #4 | |
| # CHECK-NEXT: add r3, sp, #20 | |
| # CHECK-NEXT: ldr r5, [r3], #4 | |
| # CHECK-NEXT: str r3, [sp] | |
| # CHECK-NEXT: ldr r3, #52 | |
| # CHECK-NEXT: add r3, pc | |
| # CHECK-NEXT: ldr r0, [r3] | |
| # CHECK-NEXT: ldr r4, [r0] | |
| # CHECK-NEXT: ldr r0, #48 | |
| # CHECK-NEXT: add r0, pc | |
| # CHECK-NEXT: ldr r0, [r0] | |
| # CHECK-NEXT: ldr r0, [r0] | |
| # CHECK-NEXT: blx #191548 | |
| # CHECK-NEXT: cbnz r0, #6 | |
| # CHECK-NEXT: ldr r1, #40 | |
| # CHECK-NEXT: add r1, pc | |
| # CHECK-NEXT: ldr r1, [r1] | |
| # CHECK-NEXT: b #0 | |
| # CHECK-NEXT: mov r1, r0 | |
| # CHECK-NEXT: mov r0, r4 | |
| # CHECK-NEXT: mov r2, r5 | |
| # CHECK-NEXT: ldr r3, [sp] | |
| # CHECK-NEXT: bl #-8390 | |
| # Data bytes (corresponds to an invalid instruction) | |
| # But not: sub.w sp, r7, #8 | |
| # CHECK-NEXT: pop.w {r4, r5, r7, lr} | |
| # CHECK-NEXT: add sp, #16 | |
| # CHECK-NEXT: bx lr | |
| # CHECK-NEXT: nop | |
| # CHECK-NEXT: movs r3, #142 | |
| # CHECK-NEXT: movs r5, r0 | |
| # CHECK-NEXT: adds r1, #122 | |
| # CHECK-NEXT: movs r5, r0 | |
| # CHECK-NEXT: adds r1, #104 | |
| # CHECK-NEXT: movs r5, r0 | |
| 0x0f 0xb4 | |
| 0xb0 0xb5 | |
| 0x02 0xaf | |
| 0x81 0xb0 | |
| 0x05 0xab | |
| 0x53 0xf8 0x04 0x5b | |
| 0x00 0x93 | |
| 0x0d 0x4b | |
| 0x7b 0x44 | |
| 0x18 0x68 | |
| 0x04 0x68 | |
| 0x0c 0x48 | |
| 0x78 0x44 | |
| 0x00 0x68 | |
| 0x00 0x68 | |
| 0x2e 0xf0 0x1e 0xee | |
| 0x18 0xb9 | |
| 0x0a 0x49 | |
| 0x79 0x44 | |
| 0x09 0x68 | |
| 0x00 0xe0 | |
| 0x01 0x46 | |
| 0x20 0x46 | |
| 0x2a 0x46 | |
| 0x00 0x9b | |
| 0xfd 0xf7 0x9d 0xff | |
| # 0xa7 0xf1 0x08 0x0d | |
| 0xbd 0xe8 0xb0 0x40 | |
| 0x04 0xb0 | |
| 0x70 0x47 | |
| 0x00 0xbf | |
| 0x8e 0x23 | |
| 0x05 0x00 | |
| 0x7a 0x31 | |
| 0x05 0x00 | |
| 0x68 0x31 | |
| 0x05 0x00 |