brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 47a4839 Raw
151 lines · plain
1; RUN: llc < %s -emulated-tls -mtriple=arm-linux-android -relocation-model=pic \2; RUN:     | FileCheck -check-prefix=ARM_32 %s3; RUN: llc < %s -emulated-tls -mtriple=arm-linux-androidabi -relocation-model=pic \4; RUN:     | FileCheck -check-prefix=ARM_32 %s5; RUN: llc < %s -emulated-tls -mtriple=arm-linux-androidabi -relocation-model=pic -O3 \6; RUN:     | FileCheck -check-prefix=ARM_32 %s7; RUN: llc < %s -emulated-tls -mtriple=arm-linux-androidabi -O3 \8; RUN:     | FileCheck -check-prefix=ARM_32 %s9; RUN: llc < %s -emulated-tls -mtriple=arm-apple-darwin -O3 \10; RUN:     | FileCheck -check-prefix=DARWIN %s11; RUN: llc < %s -emulated-tls -mtriple=thumbv7-windows-gnu -O3 \12; RUN:     | FileCheck -check-prefix=WIN %s13 14; RUN: llc < %s -mtriple=arm-linux-android -relocation-model=pic \15; RUN:     | FileCheck -check-prefix=ARM_32 %s16; RUN: llc < %s -mtriple=arm-linux-androidabi -relocation-model=pic \17; RUN:     | FileCheck -check-prefix=ARM_32 %s18; RUN: llc < %s -mtriple=arm-linux-androidabi -relocation-model=pic -O3 \19; RUN:     | FileCheck -check-prefix=ARM_32 %s20; RUN: llc < %s -mtriple=arm-linux-androidabi -O3 \21; RUN:     | FileCheck -check-prefix=ARM_32 %s22; arm-apple-darwin must use -emulated-tls23; windows must use -emulated-tls24 25; Make sure that TLS symbols are emitted in expected order.26 27@external_x = external thread_local global i32, align 828@external_y = thread_local global i8 7, align 229@internal_y = internal thread_local global i64 9, align 1630 31define ptr @get_external_x() {32entry:33  ret ptr @external_x34}35 36define ptr @get_external_y() {37entry:38  ret ptr @external_y39}40 41define ptr @get_internal_y() {42entry:43  ret ptr @internal_y44}45 46; ARM_32-LABEL:  get_external_x:47; ARM_32:        bl __emutls_get_address48; ARM_32:        .long __emutls_v.external_x49; ARM_32-LABEL:  get_external_y:50; ARM_32:        bl __emutls_get_address51; ARM_32:        .long __emutls_v.external_y52; ARM_32-LABEL:  get_internal_y:53; ARM_32:        bl __emutls_get_address54; ARM_32:        .long __emutls_v.internal_y55; ARM_32-NOT:    __emutls_t.external_x56; ARM_32-NOT:    __emutls_v.external_x:57; ARM_32:        .data{{$}}58; ARM_32:        .globl __emutls_v.external_y59; ARM_32:        .p2align 260; ARM_32-LABEL:  __emutls_v.external_y:61; ARM_32-NEXT:   .long 162; ARM_32-NEXT:   .long 263; ARM_32-NEXT:   .long 064; ARM_32-NEXT:   .long __emutls_t.external_y65; ARM_32:        .section .rodata,66; ARM_32-LABEL:  __emutls_t.external_y:67; ARM_32-NEXT:   .byte 768; ARM_32:        .data{{$}}69; ARM_32-NOT:    .globl70; ARM_32:        .p2align 271; ARM_32-LABEL:  __emutls_v.internal_y:72; ARM_32-NEXT:   .long 873; ARM_32-NEXT:   .long 1674; ARM_32-NEXT:   .long 075; ARM_32-NEXT:   .long __emutls_t.internal_y76; ARM_32-LABEL:  __emutls_t.internal_y:77; ARM_32-NEXT:   .long 978; ARM_32-NEXT:   .long 079 80; WIN-LABEL:  get_external_x:81; WIN:        movw r0, :lower16:.refptr.__emutls_v.external_x82; WIN:        movt r0, :upper16:.refptr.__emutls_v.external_x83; WIN:        ldr  r0, [r0]84; WIN:        bl __emutls_get_address85; WIN-LABEL:  get_external_y:86; WIN:        movw r0, :lower16:__emutls_v.external_y87; WIN:        movt r0, :upper16:__emutls_v.external_y88; WIN:        bl __emutls_get_address89; WIN-LABEL:  get_internal_y:90; WIN:        movw r0, :lower16:__emutls_v.internal_y91; WIN:        movt r0, :upper16:__emutls_v.internal_y92; WIN:        bl __emutls_get_address93; WIN-NOT:    __emutls_t.external_x94; WIN-NOT:    __emutls_v.external_x:95; WIN:        .data{{$}}96; WIN:        .globl __emutls_v.external_y97; WIN:        .p2align 298; WIN-LABEL:  __emutls_v.external_y:99; WIN-NEXT:   .long 1100; WIN-NEXT:   .long 2101; WIN-NEXT:   .long 0102; WIN-NEXT:   .long __emutls_t.external_y103; WIN:        .section .rdata,104; WIN-LABEL:  __emutls_t.external_y:105; WIN-NEXT:   .byte 7106; WIN:        .data{{$}}107; WIN-NOT:    .globl108; WIN:        .p2align 2109; WIN-LABEL:  __emutls_v.internal_y:110; WIN-NEXT:   .long 8111; WIN-NEXT:   .long 16112; WIN-NEXT:   .long 0113; WIN-NEXT:   .long __emutls_t.internal_y114; WIN-LABEL:  __emutls_t.internal_y:115; .quad 9 is equivalent to .long 9 .long 0116; WIN-NEXT:   .quad 9117 118; DARWIN-LABEL:  _get_external_x:119; DARWIN:        bl ___emutls_get_address120; DARWIN:        .long L___emutls_v.external_x$non_lazy_ptr-(LPC0_0+8)121; DARWIN-LABEL:  _get_external_y:122; DARWIN:        bl ___emutls_get_address123; DARWIN:        .long ___emutls_v.external_y-(LPC1_0+8)124; DARWIN-LABEL:  _get_internal_y:125; DARWIN:        bl ___emutls_get_address126; DARWIN:        .long ___emutls_v.internal_y-(LPC2_0+8)127; DARWIN-NOT:    ___emutls_t.external_x128; DARWIN-NOT:    ___emutls_v.external_x:129; DARWIN:        .section __DATA,__data130; DARWIN:        .globl ___emutls_v.external_y131; DARWIN:        .p2align 2132; DARWIN-LABEL:  ___emutls_v.external_y:133; DARWIN-NEXT:   .long 1134; DARWIN-NEXT:   .long 2135; DARWIN-NEXT:   .long 0136; DARWIN-NEXT:   .long ___emutls_t.external_y137; DARWIN:        .section __TEXT,__const138; DARWIN-LABEL:  ___emutls_t.external_y:139; DARWIN-NEXT:   .byte 7140; DARWIN:        .section __DATA,__data141; DARWIN-NOT:    .globl142; DARWIN:        .p2align 2143; DARWIN-LABEL:  ___emutls_v.internal_y:144; DARWIN-NEXT:   .long 8145; DARWIN-NEXT:   .long 16146; DARWIN-NEXT:   .long 0147; DARWIN-NEXT:   .long ___emutls_t.internal_y148; DARWIN-LABEL:  ___emutls_t.internal_y:149; DARWIN-NEXT:   .long 9150; DARWIN-NEXT:   .long 0151