brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 2e837d0 Raw
113 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=i686-pc-linux %s -o %t.o3// RUN: llvm-mc -filetype=obj -triple=i686-pc-linux %p/Inputs/tls-opt-iele-i686-nopic.s -o %tso.o4// RUN: ld.lld -shared -soname=t.so %tso.o -o %tso5// RUN: ld.lld -shared %t.o %tso -o %t16// RUN: llvm-readobj -S -r -d %t1 | FileCheck --check-prefix=GOTRELSHARED %s7// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t1 | FileCheck --check-prefix=DISASMSHARED %s8 9// GOTRELSHARED:     Section {10// GOTRELSHARED:      Name: .got11// GOTRELSHARED-NEXT:   Type: SHT_PROGBITS12// GOTRELSHARED-NEXT:   Flags [13// GOTRELSHARED-NEXT:     SHF_ALLOC14// GOTRELSHARED-NEXT:     SHF_WRITE15// GOTRELSHARED-NEXT:   ]16// GOTRELSHARED-NEXT:   Address: 0x338817// GOTRELSHARED-NEXT:   Offset: 0x38818// GOTRELSHARED-NEXT:   Size: 1619// GOTRELSHARED-NEXT:   Link: 020// GOTRELSHARED-NEXT:   Info: 021// GOTRELSHARED-NEXT:   AddressAlignment: 422// GOTRELSHARED-NEXT:   EntrySize: 023// GOTRELSHARED-NEXT: }24// GOTRELSHARED:      0x6FFFFFFA RELCOUNT             825// GOTRELSHARED:      Relocations [26// GOTRELSHARED-NEXT:   Section ({{.*}}) .rel.dyn {27// GOTRELSHARED-NEXT:     0x22DA R_386_RELATIVE -28// GOTRELSHARED-NEXT:     0x22E2 R_386_RELATIVE -29// GOTRELSHARED-NEXT:     0x22EB R_386_RELATIVE -30// GOTRELSHARED-NEXT:     0x22F4 R_386_RELATIVE -31// GOTRELSHARED-NEXT:     0x22FC R_386_RELATIVE -32// GOTRELSHARED-NEXT:     0x2305 R_386_RELATIVE -33// GOTRELSHARED-NEXT:     0x230E R_386_RELATIVE -34// GOTRELSHARED-NEXT:     0x2317 R_386_RELATIVE -35// GOTRELSHARED-NEXT:     0x3390 R_386_TLS_TPOFF tlsshared036// GOTRELSHARED-NEXT:     0x3394 R_386_TLS_TPOFF tlsshared137// GOTRELSHARED-NEXT:     0x3388 R_386_TLS_TPOFF tlslocal038// GOTRELSHARED-NEXT:     0x338C R_386_TLS_TPOFF tlslocal139// GOTRELSHARED-NEXT:   }40// GOTRELSHARED-NEXT: ]41 42// DISASMSHARED:       Disassembly of section test:43// DISASMSHARED-EMPTY:44// DISASMSHARED-NEXT:  <_start>:45// (.got)[0] = 0x3388 = 1319246// (.got)[1] = 1319647// (.got)[2] = 1320048// (.got)[3] = 1320449// DISASMSHARED-NEXT:  22d8:       movl  13192, %ecx50// DISASMSHARED-NEXT:  22de:       movl  %gs:(%ecx), %eax51// DISASMSHARED-NEXT:  22e1:       movl  13192, %eax52// DISASMSHARED-NEXT:  22e6:       movl  %gs:(%eax), %eax53// DISASMSHARED-NEXT:  22e9:       addl  13192, %ecx54// DISASMSHARED-NEXT:  22ef:       movl  %gs:(%ecx), %eax55// DISASMSHARED-NEXT:  22f2:       movl  13196, %ecx56// DISASMSHARED-NEXT:  22f8:       movl  %gs:(%ecx), %eax57// DISASMSHARED-NEXT:  22fb:       movl  13196, %eax58// DISASMSHARED-NEXT:  2300:       movl  %gs:(%eax), %eax59// DISASMSHARED-NEXT:  2303:       addl  13196, %ecx60// DISASMSHARED-NEXT:  2309:       movl  %gs:(%ecx), %eax61// DISASMSHARED-NEXT:  230c:       movl  13200, %ecx62// DISASMSHARED-NEXT:  2312:       movl  %gs:(%ecx), %eax63// DISASMSHARED-NEXT:  2315:       addl  13204, %ecx64// DISASMSHARED-NEXT:  231b:       movl  %gs:(%ecx), %eax65 66.type tlslocal0,@object67.section .tbss,"awT",@nobits68.globl tlslocal069.align 470tlslocal0:71 .long 072 .size tlslocal0, 473 74.type tlslocal1,@object75.section .tbss,"awT",@nobits76.globl tlslocal177.align 478tlslocal1:79 .long 080 .size tlslocal1, 481 82.section .text83.globl ___tls_get_addr84.type ___tls_get_addr,@function85___tls_get_addr:86 87.section test, "axw"88.globl _start89_start:90movl tlslocal0@indntpoff,%ecx91movl %gs:(%ecx),%eax92 93movl tlslocal0@indntpoff,%eax94movl %gs:(%eax),%eax95 96addl tlslocal0@indntpoff,%ecx97movl %gs:(%ecx),%eax98 99movl tlslocal1@indntpoff,%ecx100movl %gs:(%ecx),%eax101 102movl tlslocal1@indntpoff,%eax103movl %gs:(%eax),%eax104 105addl tlslocal1@indntpoff,%ecx106movl %gs:(%ecx),%eax107 108movl tlsshared0@indntpoff,%ecx109movl %gs:(%ecx),%eax110 111addl tlsshared1@indntpoff,%ecx112movl %gs:(%ecx),%eax113