1 @ This test has a partner (ltorg-darwin.s) that contains matching 2 @ tests for the .ltorg on darwin targets. We need separate files 3 @ because the syntax for switching sections and temporary labels differs 4 @ between darwin and linux. Any tests added here should have a matching 5 @ test added there. 6 7 @RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck %s 8 @RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck %s 9 @RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck %s 10 11 @ check that ltorg dumps the constant pool at the current location 12 .section a,"ax",%progbits 13 @ CHECK-LABEL: f2: 14 f2: 15 ldr r0, =0x10002 16 @ CHECK: ldr r0, .Ltmp[[TMP0:[0-9+]]] 17 adds r0, r0, #1 18 adds r0, r0, #1 19 b f3 20 .ltorg 21 @ constant pool 22 @ CHECK: .p2align 2 23 @ CHECK: .Ltmp[[TMP0]] 24 @ CHECK: .long 65538 25 26 @ CHECK-LABEL: f3: 27 f3: 28 adds r0, r0, #1 29 adds r0, r0, #1 30 31 @ check that ltorg clears the constant pool after dumping it 32 .section b,"ax",%progbits 33 @ CHECK-LABEL: f4: 34 f4: 35 ldr r0, =0x10003 36 @ CHECK: ldr r0, .Ltmp[[TMP1:[0-9+]]] 37 adds r0, r0, #1 38 adds r0, r0, #1 39 b f5 40 .ltorg 41 @ constant pool 42 @ CHECK: .p2align 2 43 @ CHECK: .Ltmp[[TMP1]] 44 @ CHECK: .long 65539 45 46 @ CHECK-LABEL: f5: 47 f5: 48 adds r0, r0, #1 49 adds r0, r0, #1 50 ldr r0, =0x10004 51 @ CHECK: ldr r0, .Ltmp[[TMP2:[0-9+]]] 52 adds r0, r0, #1 53 b f6 54 .ltorg 55 @ constant pool 56 @ CHECK: .p2align 2 57 @ CHECK: .Ltmp[[TMP2]] 58 @ CHECK: .long 65540 59 60 @ CHECK-LABEL: f6: 61 f6: 62 adds r0, r0, #1 63 adds r0, r0, #1 64 65 @ check that ltorg does not issue an error if there is no constant pool 66 .section c,"ax",%progbits 67 @ CHECK-LABEL: f7: 68 f7: 69 adds r0, r0, #1 70 b f8 71 .ltorg 72 f8: 73 adds r0, r0, #1 74 75 @ check that ltorg works for labels 76 .section d,"ax",%progbits 77 @ CHECK-LABEL: f9: 78 f9: 79 adds r0, r0, #1 80 adds r0, r0, #1 81 ldr r0, =bar 82 @ CHECK: ldr r0, .Ltmp[[TMP3:[0-9+]]] 83 adds r0, r0, #1 84 adds r0, r0, #1 85 adds r0, r0, #1 86 b f10 87 .ltorg 88 @ constant pool 89 @ CHECK: .p2align 2 90 @ CHECK: .Ltmp[[TMP3]] 91 @ CHECK: .long bar 92 93 @ CHECK-LABEL: f10: 94 f10: 95 adds r0, r0, #1 96 adds r0, r0, #1 97 98 @ check that use of ltorg does not prevent dumping non-empty constant pools at end of section 99 .section e,"ax",%progbits 100 @ CHECK-LABEL: f11: 101 f11: 102 adds r0, r0, #1 103 adds r0, r0, #1 104 ldr r0, =0x10005 105 @ CHECK: ldr r0, .Ltmp[[TMP4:[0-9+]]] 106 b f12 107 .ltorg 108 @ constant pool 109 @ CHECK: .p2align 2 110 @ CHECK: .Ltmp[[TMP4]] 111 @ CHECK: .long 65541 112 @ CHECK-LABEL: f12: 113 f12: 114 adds r0, r0, #1 115 ldr r0, =0x10006 116 @ CHECK: ldr r0, .Ltmp[[TMP5:[0-9+]]] 117 118 .section f,"ax",%progbits 119 @ CHECK-LABEL: f13 120 f13: 121 adds r0, r0, #1 122 adds r0, r0, #1 123 124 @ should not have a constant pool at end of section with empty constant pools 125 @ CHECK-NOT: .section a,"ax",%progbits 126 @ CHECK-NOT: .section b,"ax",%progbits 127 @ CHECK-NOT: .section c,"ax",%progbits 128 @ CHECK-NOT: .section d,"ax",%progbits 129 130 @ should have a non-empty constant pool at end of this section 131 @ CHECK: .section e,"ax",%progbits 132 @ constant pool 133 @ CHECK: .p2align 2 134 @ CHECK: .Ltmp[[TMP5]] 135 @ CHECK: .long 65542 136 137 @ should not have a constant pool at end of section with empty constant pools 138 @ CHECK-NOT: .section f,"ax",%progbits 139