diff options
Diffstat (limited to 'test/ELF/arm-tls-ie32.s')
-rw-r--r-- | test/ELF/arm-tls-ie32.s | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/test/ELF/arm-tls-ie32.s b/test/ELF/arm-tls-ie32.s deleted file mode 100644 index b12bc1be31619..0000000000000 --- a/test/ELF/arm-tls-ie32.s +++ /dev/null @@ -1,96 +0,0 @@ -// REQUIRES: arm -// RUN: llvm-mc %s -o %t.o -filetype=obj -triple=armv7a-linux-gnueabi -// RUN: ld.lld --hash-style=sysv %t.o -o %t.so -shared -// RUN: llvm-readobj -s -dyn-relocations %t.so | FileCheck --check-prefix=SEC %s -// RUN: llvm-objdump -d -triple=armv7a-linux-gnueabi %t.so | FileCheck %s - -// Test the handling of the initial-exec TLS model. Relative location within -// static TLS is a run-time constant computed by dynamic loader as a result -// of the R_ARM_TLS_TPOFF32 relocation. - - .syntax unified - .arm - .globl func - .type func,%function - .p2align 2 -func: -.L0: - nop -.L1: - nop -.L2: - nop - - .p2align 2 -// Generate R_ARM_TLS_IE32 static relocations -// Allocates a GOT entry dynamically relocated by R_ARM_TLS_TPOFF32 -// literal contains the offset of the GOT entry from the place -.Lt0: .word x(gottpoff) + (. - .L0 - 8) -.Lt1: .word y(gottpoff) + (. - .L1 - 8) -.Lt2: .word .TLSSTART(gottpoff) + (. - .L2 - 8) - -// __thread int x = 10 -// __thread int y; -// __thread int z __attribute((visibility("hidden"))) - .hidden z - .globl z - .globl y - .globl x - - .section .tbss,"awT",%nobits - .p2align 2 -.TLSSTART: - .type z, %object -z: - .space 4 - .type y, %object -y: - .space 4 - .section .tdata,"awT",%progbits - .p2align 2 - .type x, %object -x: - .word 10 - -// SEC: Name: .tdata -// SEC-NEXT: Type: SHT_PROGBITS -// SEC-NEXT: Flags [ -// SEC-NEXT: SHF_ALLOC -// SEC-NEXT: SHF_TLS -// SEC-NEXT: SHF_WRITE -// SEC: Size: 4 -// SEC: Name: .tbss -// SEC-NEXT: Type: SHT_NOBITS -// SEC-NEXT: Flags [ -// SEC-NEXT: SHF_ALLOC -// SEC-NEXT: SHF_TLS -// SEC-NEXT: SHF_WRITE -// SEC: Size: 8 - -// SEC: Name: .got -// SEC-NEXT: Type: SHT_PROGBITS -// SEC-NEXT: Flags [ -// SEC-NEXT: SHF_ALLOC -// SEC-NEXT: SHF_WRITE -// SEC-NEXT: ] -// SEC-NEXT: Address: 0x204C -// SEC: Size: 12 - - -// SEC: Dynamic Relocations { -// SEC: 0x2054 R_ARM_TLS_TPOFF32 -// SEC: 0x204C R_ARM_TLS_TPOFF32 x -// SEC: 0x2050 R_ARM_TLS_TPOFF32 y - -// CHECK: Disassembly of section .text: -// CHECK-NEXT: func: -// CHECK-NEXT: 1000: 00 f0 20 e3 nop -// CHECK-NEXT: 1004: 00 f0 20 e3 nop -// CHECK-NEXT: 1008: 00 f0 20 e3 nop - -// (0x204c - 0x100c) + (0x100c - 0x1000 - 8) = 0x1044 -// CHECK: 100c: 44 10 00 00 -// (0x2050 - 0x1010) + (0x1010 - 0x1004 - 8) = 0x1044 -// CHECK-NEXT: 1010: 44 10 00 00 -// (0x2054 - 0x1014) + (0x1014 - 0x1008 - 8) = 0x1044 -// CHECK-NEXT: 1014: 44 10 00 00 |