1*9880d681SAndroid Build Coastguard Worker@ This test has a partner (ldr-pseudo.s) that contains matching 2*9880d681SAndroid Build Coastguard Worker@ tests for the ldr-pseudo on linux 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-base-apple-darwin %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s 8*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple armv5-base-apple-darwin %s | FileCheck --check-prefix=CHECK-ARMV5 --check-prefix=CHECK %s 9*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv5-base-apple-darwin %s | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK %s 10*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv7-base-apple-darwin %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s 11*9880d681SAndroid Build Coastguard Worker@RUN: llvm-mc -triple thumbv8m.base-base-apple-darwin %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 __TEXT,b,regular,pure_instructions 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, Ltmp0 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker@ loading multiple constants 23*9880d681SAndroid Build Coastguard Worker.section __TEXT,c,regular,pure_instructions 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, Ltmp1 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, Ltmp2 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 __TEXT,d,regular,pure_instructions 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, Ltmp3 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, Ltmp4 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 __TEXT,e,regular,pure_instructions 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, Ltmp5 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 __TEXT,f,regular,pure_instructions 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 __TEXT,e,regular,pure_instructions 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, Ltmp6 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 __TEXT,g,regular,pure_instructions 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, Ltmp7 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Worker@ load a symbol from another section 97*9880d681SAndroid Build Coastguard Worker.section __TEXT,h,regular,pure_instructions 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, Ltmp8 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker@ load a symbol from the same section 104*9880d681SAndroid Build Coastguard Worker.section __TEXT,i,regular,pure_instructions 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, Ltmp9 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 __TEXT,j,regular,pure_instructions 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, Ltmp10 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, Ltmp11 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 __TEXT,k,regular,pure_instructions 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, Ltmp12 143*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, Ltmp13 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker@ usage with expressions 146*9880d681SAndroid Build Coastguard Worker.section __TEXT,l,regular,pure_instructions 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, Ltmp14 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, Ltmp15 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 __TEXT,m,regular,pure_instructions 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, Ltmp16 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, Ltmp17 174*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r2, #1179648 175*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r2, Ltmp16 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, Ltmp16 181*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r3, Ltmp18 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, Ltmp16 188*9880d681SAndroid Build Coastguard Worker@ CHECK-ARMV5: ldr r4, Ltmp17 189*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r4, Ltmp19 190*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r4, #2880154539 191*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r4, Ltmp17 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, Ltmp20 198*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: ldr r5, Ltmp16 199*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r5, Ltmp18 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, Ltmp21 206*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mov.w r6, #-1 207*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r6, Ltmp19 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, Ltmp22 212*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB2: mvn r7, #255 213*9880d681SAndroid Build Coastguard Worker@ CHECK-BASELINE: ldr r7, Ltmp20 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, Ltmp23 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, Ltmp24 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, Ltmp25 243*9880d681SAndroid Build Coastguard Worker@ CHECK-THUMB: ldr r3, Ltmp26 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 __TEXT,b,regular,pure_instructions 252*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 253*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 254*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp0: 255*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65538 256*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,c,regular,pure_instructions 259*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 260*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 261*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp1: 262*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65539 263*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 264*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp2: 265*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65540 266*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 267*9880d681SAndroid Build Coastguard Worker 268*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,d,regular,pure_instructions 269*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 270*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 271*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp3: 272*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65541 273*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 274*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp4: 275*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65541 276*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,e,regular,pure_instructions 279*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 280*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 281*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp5: 282*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65542 283*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 284*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp6: 285*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65543 286*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 287*9880d681SAndroid Build Coastguard Worker 288*9880d681SAndroid Build Coastguard Worker@ Should not switch to section because it has no constant pool 289*9880d681SAndroid Build Coastguard Worker@ CHECK-NOT: .section __TEXT,f,regular,pure_instructions 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,g,regular,pure_instructions 292*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 293*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 294*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp7: 295*9880d681SAndroid Build Coastguard Worker@ CHECK: .long foo 296*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 297*9880d681SAndroid Build Coastguard Worker 298*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,h,regular,pure_instructions 299*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 300*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 301*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp8: 302*9880d681SAndroid Build Coastguard Worker@ CHECK: .long f5 303*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,i,regular,pure_instructions 306*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 307*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 308*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp9: 309*9880d681SAndroid Build Coastguard Worker@ CHECK: .long f12 310*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,j,regular,pure_instructions 313*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 314*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 315*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp10: 316*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65544 317*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 318*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp11: 319*9880d681SAndroid Build Coastguard Worker@ CHECK: .long bar 320*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 321*9880d681SAndroid Build Coastguard Worker 322*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,k,regular,pure_instructions 323*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 324*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 325*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp12: 326*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65545 327*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 328*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp13: 329*9880d681SAndroid Build Coastguard Worker@ CHECK: .long baz 330*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 331*9880d681SAndroid Build Coastguard Worker 332*9880d681SAndroid Build Coastguard Worker@ CHECK: .section __TEXT,l,regular,pure_instructions 333*9880d681SAndroid Build Coastguard Worker@ CHECK: .data_region 334*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 335*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp14: 336*9880d681SAndroid Build Coastguard Worker@ CHECK: .long 65546 337*9880d681SAndroid Build Coastguard Worker@ CHECK: .p2align 2 338*9880d681SAndroid Build Coastguard Worker@ CHECK-LABEL: Ltmp15: 339*9880d681SAndroid Build Coastguard Worker@ CHECK: .long bar+4 340*9880d681SAndroid Build Coastguard Worker@ CHECK: .end_data_region 341