1*9880d681SAndroid Build Coastguard Worker@ This test has a partner (ldr-pseudo-darwin.s) that contains matching 2*9880d681SAndroid Build Coastguard Worker@ tests for the ldr-pseudo on darwin targets. We need separate files 3*9880d681SAndroid Build Coastguard Worker@ because the syntax for switching sections and temporary labels differs 4*9880d681SAndroid Build Coastguard Worker@ between darwin and linux. Any tests added here should have a matching 5*9880d681SAndroid Build Coastguard Worker@ test added there. 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s 8*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple armv5-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARMV5 --check-prefix=CHECK %s 9*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK %s 10*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s 11*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv8m.base-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-BASELINE --check-prefix=CHECK %s 12*9880d681SAndroid Build Coastguard Worker@ 13*9880d681SAndroid Build Coastguard Worker@ Check that large constants are converted to ldr from constant pool 14*9880d681SAndroid Build Coastguard Worker@ 15*9880d681SAndroid Build Coastguard Worker@ simple test 16*9880d681SAndroid Build Coastguard Worker.section b,"ax",%progbits 17*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f3: 18*9880d681SAndroid Build Coastguard Workerf3: 19*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10002 20*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP0:[0-9]+]] 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker@ loading multiple constants 23*9880d681SAndroid Build Coastguard Worker.section c,"ax",%progbits 24*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f4: 25*9880d681SAndroid Build Coastguard Workerf4: 26*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10003 27*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP1:[0-9]+]] 28*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 29*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 30*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 31*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 32*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10004 33*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP2:[0-9]+]] 34*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 35*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker@ TODO: the same constants should have the same constant pool location 38*9880d681SAndroid Build Coastguard Worker.section d,"ax",%progbits 39*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f5: 40*9880d681SAndroid Build Coastguard Workerf5: 41*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10005 42*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP3:[0-9]+]] 43*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 44*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 45*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 46*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 47*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 48*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 49*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 50*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10005 51*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP4:[0-9]+]] 52*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 53*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 54*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 55*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 56*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 57*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker@ a section defined in multiple pieces should be merged and use a single constant pool 60*9880d681SAndroid Build Coastguard Worker.section e,"ax",%progbits 61*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f6: 62*9880d681SAndroid Build Coastguard Workerf6: 63*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10006 64*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP5:[0-9]+]] 65*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 66*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 67*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker.section f, "ax", %progbits 70*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f7: 71*9880d681SAndroid Build Coastguard Workerf7: 72*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 73*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 74*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker.section e, "ax", %progbits 77*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f8: 78*9880d681SAndroid Build Coastguard Workerf8: 79*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 80*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10007 81*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP6:[0-9]+]] 82*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 83*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Worker@ 86*9880d681SAndroid Build Coastguard Worker@ Check that symbols can be loaded using ldr pseudo 87*9880d681SAndroid Build Coastguard Worker@ 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Worker@ load an undefined symbol 90*9880d681SAndroid Build Coastguard Worker.section g,"ax",%progbits 91*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f9: 92*9880d681SAndroid Build Coastguard Workerf9: 93*9880d681SAndroid Build Coastguard Worker ldr r0, =foo 94*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP7:[0-9]+]] 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Worker@ load a symbol from another section 97*9880d681SAndroid Build Coastguard Worker.section h,"ax",%progbits 98*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f10: 99*9880d681SAndroid Build Coastguard Workerf10: 100*9880d681SAndroid Build Coastguard Worker ldr r0, =f5 101*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP8:[0-9]+]] 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker@ load a symbol from the same section 104*9880d681SAndroid Build Coastguard Worker.section i,"ax",%progbits 105*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f11: 106*9880d681SAndroid Build Coastguard Workerf11: 107*9880d681SAndroid Build Coastguard Worker ldr r0, =f12 108*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP9:[0-9]+]] 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f12: 111*9880d681SAndroid Build Coastguard Workerf12: 112*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 113*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Worker.section j,"ax",%progbits 116*9880d681SAndroid Build Coastguard Worker@ mix of symbols and constants 117*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f13: 118*9880d681SAndroid Build Coastguard Workerf13: 119*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 120*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 121*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10008 122*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP10:[0-9]+]] 123*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 124*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 125*9880d681SAndroid Build Coastguard Worker ldr r0, =bar 126*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP11:[0-9]+]] 127*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 128*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 129*9880d681SAndroid Build Coastguard Worker@ 130*9880d681SAndroid Build Coastguard Worker@ Check for correct usage in other contexts 131*9880d681SAndroid Build Coastguard Worker@ 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker@ usage in macro 134*9880d681SAndroid Build Coastguard Worker.macro useit_in_a_macro 135*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10009 136*9880d681SAndroid Build Coastguard Worker ldr r0, =baz 137*9880d681SAndroid Build Coastguard Worker.endm 138*9880d681SAndroid Build Coastguard Worker.section k,"ax",%progbits 139*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f14: 140*9880d681SAndroid Build Coastguard Workerf14: 141*9880d681SAndroid Build Coastguard Worker useit_in_a_macro 142*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP12:[0-9]+]] 143*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP13:[0-9]+]] 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker@ usage with expressions 146*9880d681SAndroid Build Coastguard Worker.section l, "ax", %progbits 147*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f15: 148*9880d681SAndroid Build Coastguard Workerf15: 149*9880d681SAndroid Build Coastguard Worker ldr r0, =0x10001+9 150*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP14:[0-9]+]] 151*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 152*9880d681SAndroid Build Coastguard Worker ldr r0, =bar+4 153*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, .Ltmp[[TMP15:[0-9]+]] 154*9880d681SAndroid Build Coastguard Worker adds r0, r0, #1 155*9880d681SAndroid Build Coastguard Worker 156*9880d681SAndroid Build Coastguard Worker@ transformation to mov 157*9880d681SAndroid Build Coastguard Worker.section m, "ax", %progbits 158*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f16: 159*9880d681SAndroid Build Coastguard Workerf16: 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Worker@ Representable in ARM, and Thumb with support mov.w or movw 162*9880d681SAndroid Build Coastguard Worker ldr r1, =0x1 163*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r1, #1 164*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r1, #1 165*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r1, .Ltmp[[TMP16:[0-9]+]] 166*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r1, #1 167*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r1, #1 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker@ Immediate is representable in A1 and T2 modified immediate only not movw 170*9880d681SAndroid Build Coastguard Worker ldr r2, =0x120000 171*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r2, #1179648 172*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r2, #1179648 173*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r2, .Ltmp[[TMP17:[0-9]+]] 174*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r2, #1179648 175*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r2, .Ltmp[[TMP16:[0-9]+]] 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker@ Immediate can be represented only with movw instruction 178*9880d681SAndroid Build Coastguard Worker ldr r3, =0x1234 179*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: movw r3, #4660 180*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: ldr r3, .Ltmp[[TMP16:[0-9]+]] 181*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r3, .Ltmp[[TMP18:[0-9]+]] 182*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: movw r3, #4660 183*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r3, #4660 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Worker@ Immediate can be represented only with T2 modified immediate 186*9880d681SAndroid Build Coastguard Worker ldr r4, =0xabababab 187*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: ldr r4, .Ltmp[[TMP16:[0-9]+]] 188*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: ldr r4, .Ltmp[[TMP17:[0-9]+]] 189*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r4, .Ltmp[[TMP19:[0-9]+]] 190*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r4, #2880154539 191*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r4, .Ltmp[[TMP17:[0-9]+]] 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker@ Immediate can be represented only with A1 modified immediate 194*9880d681SAndroid Build Coastguard Worker ldr r5, =0x1000000b 195*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r5, #268435467 196*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r5, #268435467 197*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r5, .Ltmp[[TMP20:[0-9]+]] 198*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: ldr r5, .Ltmp[[TMP16:[0-9]+]] 199*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r5, .Ltmp[[TMP18:[0-9]+]] 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Worker@ Negative numbers can be used with MVN or in Thumb2 with modified immediate 202*9880d681SAndroid Build Coastguard Worker ldr r6, =-1 203*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mvn r6, #0 204*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mvn r6, #0 205*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r6, .Ltmp[[TMP21:[0-9]+]] 206*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r6, #-1 207*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r6, .Ltmp[[TMP19:[0-9]+]] 208*9880d681SAndroid Build Coastguard Worker ldr r7, =-0x100 209*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mvn r7, #255 210*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mvn r7, #255 211*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r7, .Ltmp[[TMP22:[0-9]+]] 212*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mvn r7, #255 213*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r7, .Ltmp[[TMP20:[0-9]+]] 214*9880d681SAndroid Build Coastguard Worker 215*9880d681SAndroid Build Coastguard Worker@ Constant expressions can be used 216*9880d681SAndroid Build Coastguard Worker .equ expr, 0x10 + 0x10 217*9880d681SAndroid Build Coastguard Worker ldr r0, = expr 218*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r0, #32 219*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r0, #32 220*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r0, .Ltmp[[TMP23:[0-9]+]] 221*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r0, #32 222*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r0, #32 223*9880d681SAndroid Build Coastguard Worker ldr r1, = expr - 0x10 224*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r1, #16 225*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r1, #16 226*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r1, .Ltmp[[TMP24:[0-9]+]] 227*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r1, #16 228*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r1, #16 229*9880d681SAndroid Build Coastguard Worker 230*9880d681SAndroid Build Coastguard Worker@ usage of translation in macro 231*9880d681SAndroid Build Coastguard Worker.macro usemov_in_a_macro 232*9880d681SAndroid Build Coastguard Worker ldr r2, =0x3 233*9880d681SAndroid Build Coastguard Worker ldr r3, =expr 234*9880d681SAndroid Build Coastguard Worker.endm 235*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: f17: 236*9880d681SAndroid Build Coastguard Workerf17: 237*9880d681SAndroid Build Coastguard Worker usemov_in_a_macro 238*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r2, #3 239*9880d681SAndroid Build Coastguard Worker@ CHECK-ARM: mov r3, #32 240*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r2, #3 241*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: mov r3, #32 242*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r2, .Ltmp[[TMP25:[0-9]+]] 243*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r3, .Ltmp[[TMP26:[0-9]+]] 244*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r2, #3 245*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r3, #32 246*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r2, #3 247*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: movw r3, #32 248*9880d681SAndroid Build Coastguard Worker@ 249*9880d681SAndroid Build Coastguard Worker@ Constant Pools 250*9880d681SAndroid Build Coastguard Worker@ 251*9880d681SAndroid Build Coastguard Worker@ CHECK: .section b,"ax",%progbits 252*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 253*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP0]] 254*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65538 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Worker@ CHECK: .section c,"ax",%progbits 257*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 258*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP1]] 259*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65539 260*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP2]] 261*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65540 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Worker@ CHECK: .section d,"ax",%progbits 264*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 265*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP3]] 266*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65541 267*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP4]] 268*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65541 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker@ CHECK: .section e,"ax",%progbits 271*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 272*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP5]] 273*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65542 274*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP6]] 275*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65543 276*9880d681SAndroid Build Coastguard Worker 277*9880d681SAndroid Build Coastguard Worker@ Should not switch to section because it has no constant pool 278*9880d681SAndroid Build Coastguard Worker@ CHECK-NOT: .section f,"ax",%progbits 279*9880d681SAndroid Build Coastguard Worker 280*9880d681SAndroid Build Coastguard Worker@ CHECK: .section g,"ax",%progbits 281*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 282*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP7]] 283*9880d681SAndroid Build Coastguard Worker@ CHECK: .long foo 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Worker@ CHECK: .section h,"ax",%progbits 286*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 287*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP8]] 288*9880d681SAndroid Build Coastguard Worker@ CHECK: .long f5 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Worker@ CHECK: .section i,"ax",%progbits 291*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 292*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP9]] 293*9880d681SAndroid Build Coastguard Worker@ CHECK: .long f12 294*9880d681SAndroid Build Coastguard Worker 295*9880d681SAndroid Build Coastguard Worker@ CHECK: .section j,"ax",%progbits 296*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 297*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP10]] 298*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65544 299*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP11]] 300*9880d681SAndroid Build Coastguard Worker@ CHECK: .long bar 301*9880d681SAndroid Build Coastguard Worker 302*9880d681SAndroid Build Coastguard Worker@ CHECK: .section k,"ax",%progbits 303*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 304*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP12]] 305*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65545 306*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP13]] 307*9880d681SAndroid Build Coastguard Worker@ CHECK: .long baz 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Worker@ CHECK: .section l,"ax",%progbits 310*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 311*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP14]] 312*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65546 313*9880d681SAndroid Build Coastguard Worker@ CHECK: .Ltmp[[TMP15]] 314*9880d681SAndroid Build Coastguard Worker@ CHECK: .long bar+4 315