1 # RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 | FileCheck %s 2 3 # CHECK: push {r0, r1, r2, r3} 4 # CHECK-NEXT: push {r4, r5, r7, lr} 5 # CHECK-NEXT: add r7, sp, #8 6 # CHECK-NEXT: sub sp, #4 7 # CHECK-NEXT: add r3, sp, #20 8 # CHECK-NEXT: ldr r5, [r3], #4 9 # CHECK-NEXT: str r3, [sp] 10 # CHECK-NEXT: ldr r3, #52 11 # CHECK-NEXT: add r3, pc 12 # CHECK-NEXT: ldr r0, [r3] 13 # CHECK-NEXT: ldr r4, [r0] 14 # CHECK-NEXT: ldr r0, #48 15 # CHECK-NEXT: add r0, pc 16 # CHECK-NEXT: ldr r0, [r0] 17 # CHECK-NEXT: ldr r0, [r0] 18 # CHECK-NEXT: blx #191548 19 # CHECK-NEXT: cbnz r0, #6 20 # CHECK-NEXT: ldr r1, #40 21 # CHECK-NEXT: add r1, pc 22 # CHECK-NEXT: ldr r1, [r1] 23 # CHECK-NEXT: b #0 24 # CHECK-NEXT: mov r1, r0 25 # CHECK-NEXT: mov r0, r4 26 # CHECK-NEXT: mov r2, r5 27 # CHECK-NEXT: ldr r3, [sp] 28 # CHECK-NEXT: bl #-8390 29 # Data bytes (corresponds to an invalid instruction) 30 # But not: sub.w sp, r7, #8 31 # CHECK-NEXT: pop.w {r4, r5, r7, lr} 32 # CHECK-NEXT: add sp, #16 33 # CHECK-NEXT: bx lr 34 # CHECK-NEXT: nop 35 # CHECK-NEXT: movs r3, #142 36 # CHECK-NEXT: movs r5, r0 37 # CHECK-NEXT: adds r1, #122 38 # CHECK-NEXT: movs r5, r0 39 # CHECK-NEXT: adds r1, #104 40 # CHECK-NEXT: movs r5, r0 41 0x0f 0xb4 42 0xb0 0xb5 43 0x02 0xaf 44 0x81 0xb0 45 0x05 0xab 46 0x53 0xf8 0x04 0x5b 47 0x00 0x93 48 0x0d 0x4b 49 0x7b 0x44 50 0x18 0x68 51 0x04 0x68 52 0x0c 0x48 53 0x78 0x44 54 0x00 0x68 55 0x00 0x68 56 0x2e 0xf0 0x1e 0xee 57 0x18 0xb9 58 0x0a 0x49 59 0x79 0x44 60 0x09 0x68 61 0x00 0xe0 62 0x01 0x46 63 0x20 0x46 64 0x2a 0x46 65 0x00 0x9b 66 0xfd 0xf7 0x9d 0xff 67 # 0xa7 0xf1 0x08 0x0d 68 0xbd 0xe8 0xb0 0x40 69 0x04 0xb0 70 0x70 0x47 71 0x00 0xbf 72 0x8e 0x23 73 0x05 0x00 74 0x7a 0x31 75 0x05 0x00 76 0x68 0x31 77 0x05 0x00 78