mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
a804e4760a
This provides a linker generated __tls_get_addr_desc wrapper function preserving registers around a __tls_get_addr call. The idea being to support __tls_get_addr_desc without requiring a glibc update. bfd/ * elf64-ppc.c (struct ppc_link_hash_table): Add tga_group. (ppc64_elf_archive_symbol_lookup): Extract __tls_get_addr_opt for __tls_get_addr_desc. (ppc64_elf_size_stubs): Add section for linker generated __tls_get_addr_desc wrapper function. Loop at least once if generating this function. (emit_tga_desc, emit_tga_desc_eh_frame): New functions. (ppc64_elf_build_stubs): Generate __tls_get_addr_desc. ld/ * testsuite/ld-powerpc/tlsdesc3.d, * testsuite/ld-powerpc/tlsdesc3.wf, * testsuite/ld-powerpc/tlsdesc4.d, * testsuite/ld-powerpc/tlsdesc4.s, * testsuite/ld-powerpc/tlsdesc4.wf: New tests. * testsuite/ld-powerpc/powerpc.exp: Run them.
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
Contents of the \.eh_frame section:
|
|
|
|
0+ 0+10 0+ CIE
|
|
Version: 1
|
|
Augmentation: "zR"
|
|
Code alignment factor: 4
|
|
Data alignment factor: -8
|
|
Return address column: 65
|
|
Augmentation data: 1b
|
|
DW_CFA_def_cfa: r1 ofs 0
|
|
|
|
0+14 0+34 0+18 FDE cie=0+ pc=0+10000100\.\.0+10000160
|
|
DW_CFA_advance_loc: 44 to 0+1000012c
|
|
DW_CFA_def_cfa_offset: 96
|
|
DW_CFA_offset_extended_sf: r65 at cfa\+16
|
|
DW_CFA_offset: r4 at cfa-64
|
|
DW_CFA_offset: r5 at cfa-56
|
|
DW_CFA_offset: r6 at cfa-48
|
|
DW_CFA_offset: r7 at cfa-40
|
|
DW_CFA_offset: r8 at cfa-32
|
|
DW_CFA_offset: r9 at cfa-24
|
|
DW_CFA_offset: r10 at cfa-16
|
|
DW_CFA_offset: r11 at cfa-8
|
|
DW_CFA_advance_loc: 40 to 0+10000154
|
|
DW_CFA_def_cfa_offset: 0
|
|
DW_CFA_restore: r4
|
|
DW_CFA_restore: r5
|
|
DW_CFA_restore: r6
|
|
DW_CFA_restore: r7
|
|
DW_CFA_restore: r8
|
|
DW_CFA_restore: r9
|
|
DW_CFA_restore: r10
|
|
DW_CFA_restore: r11
|
|
DW_CFA_advance_loc: 8 to 0+1000015c
|
|
DW_CFA_restore_extended: r65
|
|
DW_CFA_nop
|
|
DW_CFA_nop
|
|
DW_CFA_nop
|
|
|
|
0+4c 0+10 0+50 FDE cie=0+ pc=0+10000164\.\.0+10000170
|
|
DW_CFA_nop
|
|
DW_CFA_nop
|
|
DW_CFA_nop
|