| # 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, [pc, #52] |
| # CHECK-NEXT: add r3, pc |
| # CHECK-NEXT: ldr r0, [r3] |
| # CHECK-NEXT: ldr r4, [r0] |
| # CHECK-NEXT: ldr r0, [pc, #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, [pc, #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 |