brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · a2ef0c5 Raw
101 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=i686 %s -o %t.o3# RUN: ld.lld -shared %t.o -o %t.so4# RUN: llvm-readobj --sections -r %t.so | FileCheck %s5# RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t.so | FileCheck %s --check-prefix=DIS6 7.type tls0,@object8.section .tbss,"awT",@nobits9.globl tls010.align 411tls0:12 .long 013 .size tls0, 414 15.type  tls1,@object16.globl tls117.align 418tls1:19 .long 020 .size tls1, 421 22.type  tls2,@object23.globl tls224.hidden tls225.align 426tls2:27 .long 028 .size tls2, 829 30.section .text31.globl _start32_start:33leal tls0@tlsgd(,%ebx,1),%eax34call __tls_get_addr@plt35 36leal tls1@tlsgd(,%ebx,1),%eax37call __tls_get_addr@plt38 39leal tls2@tlsldm(%ebx),%eax40call __tls_get_addr@plt41leal tls2@dtpoff(%eax),%edx42 43leal tls2@tlsldm(%ebx),%eax44call __tls_get_addr@plt45leal tls2@dtpoff+4(%eax),%edx46 47movl %gs:0,%eax48addl tls0@gotntpoff(%ebx),%eax49 50movl %gs:0,%eax51addl tls1@gotntpoff(%ebx),%eax52 53# CHECK:      Name: .got (54# CHECK-NEXT: Type: SHT_PROGBITS55# CHECK-NEXT: Flags [56# CHECK-NEXT:   SHF_ALLOC57# CHECK-NEXT:   SHF_WRITE58# CHECK-NEXT: ]59# CHECK-NEXT: Address: 0x235860# CHECK-NEXT: Offset: 0x35861# CHECK-NEXT: Size: 3262# CHECK-NEXT: Link: 063# CHECK-NEXT: Info: 064# CHECK-NEXT: AddressAlignment: 465# CHECK-NEXT: EntrySize: 066 67# CHECK: Relocations [68# CHECK:      Section ({{.+}}) .rel.dyn {69# CHECK-NEXT: 0x2358 R_386_TLS_DTPMOD32 -70# CHECK-NEXT: 0x2360 R_386_TLS_DTPMOD32 tls071# CHECK-NEXT: 0x2364 R_386_TLS_DTPOFF32 tls072# CHECK-NEXT: 0x2368 R_386_TLS_TPOFF tls073# CHECK-NEXT: 0x236C R_386_TLS_DTPMOD32 tls174# CHECK-NEXT: 0x2370 R_386_TLS_DTPOFF32 tls175# CHECK-NEXT: 0x2374 R_386_TLS_TPOFF tls176# CHECK-NEXT: }77 78# DIS:      Disassembly of section .text:79# DIS-EMPTY:80# DIS-NEXT: <_start>:81## General dynamic model:82## -4128 and -4116 are first and second GOT entries offsets.83## Each one is a pair of records.84# DIS-NEXT: 1260:       leal -4120(,%ebx), %eax85# DIS-NEXT: 1267:       calll 0x12d086# DIS-NEXT: 126c:       leal -4108(,%ebx), %eax87# DIS-NEXT: 1273:       calll 0x12d088## Local dynamic model:89## -16 is a local module tls index offset.90# DIS-NEXT: 1278:       leal -4128(%ebx), %eax91# DIS-NEXT: 127e:       calll 0x12d092# DIS-NEXT: 1283:       leal 8(%eax), %edx93# DIS-NEXT: 1289:       leal -4128(%ebx), %eax94# DIS-NEXT: 128f:       calll 0x12d095# DIS-NEXT: 1294:       leal 12(%eax), %edx96## Initial exec model:97# DIS-NEXT: 129a:       movl %gs:0, %eax98# DIS-NEXT: 12a0:       addl -4112(%ebx), %eax99# DIS-NEXT: 12a6:       movl %gs:0, %eax100# DIS-NEXT: 12ac:       addl -4100(%ebx), %eax101