OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /open8_urisc/trunk/gnu/binutils/ld
    from Rev 94 to Rev 95
    Reverse comparison

Rev 94 → Rev 95

/testsuite/ld-powerpc/aix-weak-3-64.d
0,0 → 1,5
#name: Weak test 3 (main, static) (64-bit)
#source: aix-weak-3b.s
#as: -a64 --defsym size=64
#ld: -b64 -e.main -bnoautoimp tmpdir/aix64-weak-3a.so
#error: .*multiple definition of `x1'\n[^\n]*first defined here
/testsuite/ld-powerpc/aix-weak-1.ex
0,0 → 1,8
a
b
c
d
e
f
g
h
/testsuite/ld-powerpc/sdadyn.s
0,0 → 1,3
.globl _start
_start:
lwz 3,lib_var@sda21(0)
/testsuite/ld-powerpc/aix-weak-1-rel.nd
0,0 → 1,25
# Comments are (aix-weak-1a.s type) wins over/loses to (aix-weak-1b.s type)
# (strong common) loses to (strong data)
0+10 d a
0+10 D a
# (strong common) wins over (weak data)
0+20 B b
0+14 d b
# (strong data) wins over (strong common)
0+00 d c
0+00 D c
# (weak data) loses to (strong common)
0+04 d d
0+28 B d
# (weak common) loses to (strong data)
0+18 d e
0+18 D e
# (weak common) wins over (weak data)
0+24 W f
0+1c d f
# (strong data) wins over (weak common)
0+08 d g
0+08 D g
# (weak data) wins over (weak common)
0+0c d h
0+0c W h
/testsuite/ld-powerpc/aix-glink-3a.s
0,0 → 1,10
.toc
 
.globl .g
.csect .g[PR]
.g:
blr
 
.globl g
.csect g[DS]
g: .long .g,TOC[tc0],0
/testsuite/ld-powerpc/tlsexe.d
0,0 → 1,90
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <00000010\.plt_call\.__tls_get_addr(|_opt)\+0>:
.* e9 63 00 00 ld r11,0\(r3\)
.* e9 83 00 08 ld r12,8\(r3\)
.* 7c 60 1b 78 mr r0,r3
.* 2c 2b 00 00 cmpdi r11,0
.* 7c 6c 6a 14 add r3,r12,r13
.* 4d 82 00 20 beqlr
.* 7c 03 03 78 mr r3,r0
.* 7d 68 02 a6 mflr r11
.* f9 61 00 20 std r11,32\(r1\)
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 48 ld r11,-32696\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 58 ld r11,-32680\(r2\)
.* e8 42 80 50 ld r2,-32688\(r2\)
.* 4e 80 04 21 bctrl
.* e9 61 00 20 ld r11,32\(r1\)
.* e8 41 00 28 ld r2,40\(r1\)
.* 7d 68 03 a6 mtlr r11
.* 4e 80 00 20 blr
 
.* <_start>:
.* e8 62 80 10 ld r3,-32752\(r2\)
.* 60 00 00 00 nop
.* 7c 63 6a 14 add r3,r3,r13
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff a5 bl .*
.* 60 00 00 00 nop
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 38 addi r3,r3,-28616
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 28 ld r9,-32728\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 58 lhz r10,-28584\(r9\)
.* 89 4d 90 60 lbz r10,-28576\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 68 stb r10,-28568\(r9\)
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 00 addi r3,r3,-28672
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* f9 43 80 08 std r10,-32760\(r3\)
.* 3d 23 00 00 addis r9,r3,0
.* 91 49 80 10 stw r10,-32752\(r9\)
.* e9 22 80 08 ld r9,-32760\(r2\)
.* 7d 49 19 2a stdx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* b1 49 90 58 sth r10,-28584\(r9\)
.* e9 4d 90 2a lwa r10,-28632\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 90 30 lha r10,-28624\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 00 .*
.* <__glink_PLTresolve>:
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/testsuite/ld-powerpc/aix-glink-3-32.d
0,0 → 1,5
#name: Glink test 3 (error) (32-bit)
#source: aix-glink-3.s
#as: -a32
#ld: -b32 -bnoautoimp tmpdir/aix-glink-3b.so
#error: undefined reference to `\.g'
/testsuite/ld-powerpc/tlsopt1.d
0,0 → 1,25
#source: tlsopt1.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <\.__tls_get_addr>:
100000e8: 4e 80 00 20 blr
 
Disassembly of section \.no_opt1:
 
0+100000ec <\.no_opt1>:
100000ec: 38 62 80 08 addi r3,r2,-32760
100000f0: 2c 24 00 00 cmpdi r4,0
100000f4: 41 82 00 10 beq- .*
100000f8: 4b ff ff f1 bl 100000e8 <\.__tls_get_addr>
100000fc: 60 00 00 00 nop
10000100: 48 00 00 0c b .*
10000104: 4b ff ff e5 bl 100000e8 <\.__tls_get_addr>
10000108: 60 00 00 00 nop
/testsuite/ld-powerpc/tlsexe.g
0,0 → 1,12
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 10018618 ffffffff ffff8018 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
/testsuite/ld-powerpc/tocopt.d
0,0 → 1,14
 
.*: file format .*
 
Contents of section \.text:
100000b0 60000000 e9228018 60000000 38a28020 .*
100000c0 e8c50000 60000000 3ba08028 7c62e82a .*
100000d0 60000000 39228033 60000000 38a28008 .*
100000e0 e8c50000 60000000 3ba08010 7c62e82a .*
Contents of section \.got:
100100f0 00000000 100180f0 00000000 10010124 .*
10010100 00000000 10010125 00000000 10010120 .*
10010110 00000000 10010121 00000000 10010122 .*
Contents of section \.sdata:
10010120 01020304 0506 .*
/testsuite/ld-powerpc/symtocbase.d
0,0 → 1,24
#source: symtocbase-1.s
#source: symtocbase-2.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dj.data
#target: powerpc64*-*-*
 
.*: file format elf64-powerpc
 
Disassembly of section \.data:
 
.* <i>:
\.\.\.
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
.*: 00 00 00 00 \.long 0x0
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
/testsuite/ld-powerpc/aix-weak-1-gcdso.nd
0,0 → 1,22
# Comments are (aix-weak-1a.s type) wins over/loses to (aix-weak-1b.s type)
# (strong common) loses to (strong data)
0*1000000c d a
0*1000000c D a
# (strong common) wins over (weak data)
0*10000018 B b
# (strong data) wins over (strong common)
0*10000000 d c
0*10000000 D c
# (weak data) loses to (strong common)
0*10000020 B d
# (weak common) loses to (strong data)
0*10000010 d e
0*10000010 D e
# (weak common) wins over (weak data)
0*1000001c W f
# (strong data) wins over (weak common)
0*10000004 d g
0*10000004 D g
# (weak data) wins over (weak common)
0*10000008 d h
0*10000008 W h
/testsuite/ld-powerpc/attr-gnu-4-10.d
0,0 → 1,10
#source: attr-gnu-4-1.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/testsuite/ld-powerpc/aix-lineno-1a.nd
0,0 → 1,8
0*10000000 t \.bf
0*10000014 t \.bf
0*10000014 t \.ef
0*1000001c t \.ef
0*10000000 t \.foo
0*10000000 t \.foo
0*10000014 t \.main
0*10000014 T \.main
/testsuite/ld-powerpc/attr-gnu-4-2.s
0,0 → 1,8
.gnu_attribute 4,2
/testsuite/ld-powerpc/tlsexe.r
0,0 → 1,115
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[[ 0-9]+\] \.interp +.*
+\[[ 0-9]+\] \.hash +.*
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+130 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+160 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt + PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+30 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+PHDR +0x0+40 0x0+10000040 0x0+10000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+10000190 0x0+10000190 0x0+11 0x0+11 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 3 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr_opt \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +UND ld
.* TLS +GLOBAL +DEFAULT +9 ld2
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* SECTION +LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
.* (NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt))
.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0)
.* ((FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve)
.* GLOBAL +DEFAULT +UND gd
.* GLOBAL +DEFAULT +9 le0
.* GLOBAL +DEFAULT +9 ld0
.* GLOBAL +DEFAULT +9 le1
.* GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +7 _start
.* TLS +GLOBAL +DEFAULT +9 ld2
.* TLS +GLOBAL +DEFAULT +9 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +9 gd0
.* TLS +GLOBAL +DEFAULT +9 ie0
/testsuite/ld-powerpc/attr-gnu-4-31.d
0,0 → 1,6
#source: attr-gnu-4-3.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses double-precision hard float, .* uses single-precision hard float
#target: powerpc*-*-*
/testsuite/ld-powerpc/attr-gnu-4-14.d
0,0 → 1,6
#source: attr-gnu-4-1.s
#source: attr-gnu-4-4.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 4
#target: powerpc*-*-*
/testsuite/ld-powerpc/attr-gnu-8-2.s
0,0 → 1,6
.gnu_attribute 8,2
/testsuite/ld-powerpc/tlsexe.t
0,0 → 1,13
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/testsuite/ld-powerpc/aix-weak-1b.s
0,0 → 1,24
.globl a
.csect a[RW],2
a:
.long 0x55555555
.weak b
.csect b[RW],2
b:
.long 0x66666666
.comm c,4
.comm d,4
 
# Same again, with weak common symbols
.globl e
.csect e[RW],2
e:
.long 0x77777777
.weak f
.csect f[RW],2
f:
.long 0x88888888
.weak g
.comm g,4
.weak h
.comm h,4
/testsuite/ld-powerpc/tlsopt1.s
0,0 → 1,14
.section ".no_opt1", "ax", %progbits
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and the arg setup insn
# is shared with two __tls_get_addr calls.
addi 3,2,gd@got@tlsgd
cmpdi 4,0
beq 0f
bl __tls_get_addr
nop
b 1f
0:
bl __tls_get_addr
nop
1:
/testsuite/ld-powerpc/aix-core-sec-2.hd
0,0 → 1,11
#...
Sections:
.*
* 0 * \.text * 0+0 .*
* ALLOC, LOAD, CODE
* 1 * \.data * 0+8 .*
* CONTENTS, ALLOC, LOAD, DATA
* 2 * \.bss * 0+0 .*
* ALLOC
* 3 * \.loader .*
* CONTENTS, ALLOC, LOAD
/testsuite/ld-powerpc/symtocbase-1.s
0,0 → 1,18
.section .toc,"aw",@progbits
.align 15
.globl x
x: .quad .x,.x@tocbase,0
.LCi: .quad i
.space 48 * 1024
.data
.globl i
i: .long 0
.L1bases:
.quad .TOC.@tocbase
.quad .x@tocbase
.quad .y@tocbase
.text
.globl .x
.x:
ld 9,.LCi@toc(2)
blr
/testsuite/ld-powerpc/tocopt.s
0,0 → 1,51
.section .toc,"aw"
x4t:
.quad x4
x5t:
.quad x5
x6t:
.quad x6
 
.section .sdata,"aw"
x1:
.byte 1
x2:
.byte 2
x3:
.byte 3
x4:
.byte 4
x5:
.byte 5
x6:
.byte 6
 
.globl _start
.text
_start:
# no need for got entry, optimise to nop,addi
# note: ld doesn't yet do got optimisation, so we get nop,ld
addis 9,2,x1@got@ha
ld 9,x1@got@l(9)
# must keep got entry, optimise to nop,addi,ld
addis 4,2,x2@got@ha
addi 5,4,x2@got@l
ld 6,0(5)
# must keep got entry, optimise to nop,li,ldx
lis 29,x3@got@ha
addi 29,29,x3@got@l
ldx 3,2,29
 
# no need for toc entry, optimise to nop,addi
addis 9,2,x4t@toc@ha
ld 9,x4t@toc@l(9)
# must keep toc entry, optimise to nop,addi,ld
# if we had a reloc tying the ld to x5/x5t then we could throw away
# the toc entry and optimise to nop,nop,addi
addis 4,2,x5t@toc@ha
addi 5,4,x5t@toc@l
ld 6,0(5)
# must keep toc entry, optimise to nop,li,ldx
lis 29,x6t@toc@ha
addi 29,29,x6t@toc@l
ldx 3,2,29
/testsuite/ld-powerpc/aix-abs-branch-1.nd
0,0 → 1,3
0*01450000 C bar
0*10000000 t foo
0*10000000 T foo
/testsuite/ld-powerpc/aix-weak-3-32.dd
0,0 → 1,24
 
.*
 
 
Disassembly of section \.data:
 
20000000 <x1>:
20000000: 00 00 01 02 .*
 
20000004 <x2>:
20000004: 00 00 03 04 .*
 
20000008 <TOC>:
20000008: 20 00 00 00 .*
20000008: R_POS x1\+.*
 
2000000c <x2>:
2000000c: 20 00 00 04 .*
2000000c: R_POS x2\+.*
 
20000010 <x3>:
20000010: 00 00 00 00 .*
20000010: R_POS x3
20000014: 00 00 00 00 .*
/testsuite/ld-powerpc/aix-core-sec-2.s
0,0 → 1,5
.globl foo
.csect foo[RW]
foo:
.long 0x12345678
.long 0xdeadbeef
/testsuite/ld-powerpc/aix-ref-1-64.od
0,0 → 1,30
 
.*
 
 
Disassembly of section \.text:
 
.* <foo1>:
.*: 60 00 00 00 nop
.*: R_REF foo2\+.*
.*: e8 22 00 00 ld r1,0\(r2\)
.*: R_TOC stuff\+.*
.*: 4e 80 00 20 blr
 
.* <foo2>:
.*: 60 00 00 00 nop
.*: R_REF foo6\+.*
.*: R_REF foo4\+.*
.*: e8 22 00 00 ld r1,0\(r2\)
.*: R_TOC stuff\+.*
 
.* <foo4>:
.*: 60 00 00 00 nop
.*: e8 22 00 00 ld r1,0\(r2\)
.*: R_TOC stuff\+.*
 
.* <foo6>:
.*: 60 00 00 00 nop
.*: e8 22 00 00 ld r1,0\(r2\)
.*: R_TOC stuff\+.*
\.\.\.
/testsuite/ld-powerpc/aix-gc-1-64.dd
0,0 → 1,81
 
.*
 
 
Disassembly of section \.text:
 
0000000010000000 <\.init_function>:
10000000: e8 22 00 00 ld r1,0\(r2\)
 
0000000010000004 <\.fini_function>:
10000004: e8 22 00 08 ld r1,8\(r2\)
 
0000000010000008 <\.exported_global>:
10000008: 48 00 00 09 bl 10000010 <\.indirect2>
 
000000001000000c <\.indirect1>:
1000000c: 81 08 00 04 lwz r8,4\(r8\)
 
0000000010000010 <\.indirect2>:
10000010: 81 08 00 08 lwz r8,8\(r8\)
 
0000000010000014 <\.indirect3>:
10000014: 81 08 00 0c lwz r8,12\(r8\)
 
Disassembly of section \.data:
 
0000000020000000 <block>:
# Pointer to indirect3.
20000000: 20 00 00 e0 .*
20000004: 11 22 33 44 .*
 
0000000020000008 <__rtinit>:
#...
 
0000000020000080 <exported_global>:
20000080: 00 00 00 00 .*
20000084: 10 00 00 08 .*
20000088: 00 00 00 00 .*
2000008c: 20 00 00 f8 .*
20000090: 00 00 00 00 .*
20000094: 00 00 00 00 .*
 
0000000020000098 <init_function>:
20000098: 00 00 00 00 .*
2000009c: 10 00 00 00 .*
200000a0: 00 00 00 00 .*
200000a4: 20 00 00 f8 .*
200000a8: 00 00 00 00 .*
200000ac: 00 00 00 00 .*
 
00000000200000b0 <indirect1>:
200000b0: 00 00 00 00 .*
200000b4: 10 00 00 0c .*
200000b8: 00 00 00 00 .*
200000bc: 20 00 00 f8 .*
200000c0: 00 00 00 00 .*
200000c4: 00 00 00 00 .*
 
00000000200000c8 <fini_function>:
200000c8: 00 00 00 00 .*
200000cc: 10 00 00 04 .*
200000d0: 00 00 00 00 .*
200000d4: 20 00 00 f8 .*
200000d8: 00 00 00 00 .*
200000dc: 00 00 00 00 .*
 
00000000200000e0 <indirect3>:
200000e0: 00 00 00 00 .*
200000e4: 10 00 00 14 .*
200000e8: 00 00 00 00 .*
200000ec: 20 00 00 f8 .*
200000f0: 00 00 00 00 .*
200000f4: 00 00 00 00 .*
 
00000000200000f8 <TOC>:
200000f8: 00 00 00 00 .*
200000fc: 20 00 00 b0 .*
 
0000000020000100 <block>:
20000100: 00 00 00 00 .*
20000104: 20 00 00 00 .*
/testsuite/ld-powerpc/aix-abs-reloc-1.nd
0,0 → 1,3
0*deadbeef C bar
0*10000000 d foo
0*10000000 D foo
/testsuite/ld-powerpc/aix-glink-2c.s
0,0 → 1,33
.toc
 
.macro defabs,type,name,value
\type \name
\name = \value
.endm
 
.macro deffun,type,name
\type \name
.csect \name\()[DS]
\name\():
.long \name\()[PR],TOC[TC0],0
 
.globl .\name
.csect .\name\()[PR]
.\name\():
nop
.endm
 
.macro defdata,type,name,contents
\type \name
.csect \name\()[RW]
\name\():
.long \contents
.endm
 
defabs .globl,a1,0xf400
deffun .globl,a2
defdata .globl,a3,0x4400
 
defabs .globl,c1,0xf500
deffun .globl,c2
defdata .globl,c3,0x5500
/testsuite/ld-powerpc/aix-lineno-1b.dd
0,0 → 1,16
 
.*
 
 
Disassembly of section \.text:
 
0*10000000 <\.foo>:
*10000000: 60 00 00 00 (oril r0,r0,0|nop)
*10000004: 60 00 00 00 (oril r0,r0,0|nop)
*10000008: 60 00 00 00 (oril r0,r0,0|nop)
*1000000c: 60 00 00 00 (oril r0,r0,0|nop)
*10000010: 60 00 00 00 (oril r0,r0,0|nop)
 
0*10000014 <\.main>:
*10000014: 4b ff ff ed bl 10000000 <\.foo>
*10000018: 60 00 00 00 (oril r0,r0,0|nop)
/testsuite/ld-powerpc/tlslib.s
0,0 → 1,24
.global __tls_get_addr,__tls_get_addr_opt,gd,ld
.type __tls_get_addr,@function
.type __tls_get_addr_opt,@function
 
.section ".opd","aw",@progbits
__tls_get_addr:
__tls_get_addr_opt:
.align 3
.quad .L.__tls_get_addr
.quad .TOC.@tocbase
.quad 0
 
.section ".tbss","awT",@nobits
.align 3
gd: .space 8
 
.section ".tdata","awT",@progbits
.align 2
ld: .long 0xc0ffee
 
.text
.L.__tls_get_addr:
blr
.size __tls_get_addr,. - .L.__tls_get_addr
/testsuite/ld-powerpc/vxworks1.dd
0,0 → 1,48
 
.*: file format .*
 
Disassembly of section \.plt:
 
00080800 <_PROCEDURE_LINKAGE_TABLE_>:
80800: 3d 80 00 09 lis r12,9
80802: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_
80804: 39 8c 04 00 addi r12,r12,1024
80806: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_
80808: 80 0c 00 08 lwz r0,8\(r12\)
8080c: 7c 09 03 a6 mtctr r0
80810: 81 8c 00 04 lwz r12,4\(r12\)
80814: 4e 80 04 20 bctr
80818: 60 00 00 00 nop
8081c: 60 00 00 00 nop
80820: 3d 80 00 09 lis r12,9
80822: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_\+0xc
80824: 81 8c 04 0c lwz r12,1036\(r12\)
80826: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_\+0xc
80828: 7d 89 03 a6 mtctr r12
8082c: 4e 80 04 20 bctr
80830: 39 60 00 00 li r11,0
80834: 4b ff ff cc b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80838: 60 00 00 00 nop
8083c: 60 00 00 00 nop
80840: 3d 80 00 09 lis r12,9
80842: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_\+0x10
80844: 81 8c 04 10 lwz r12,1040\(r12\)
80846: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_\+0x10
80848: 7d 89 03 a6 mtctr r12
8084c: 4e 80 04 20 bctr
80850: 39 60 00 01 li r11,1
80854: 4b ff ff ac b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80858: 60 00 00 00 nop
8085c: 60 00 00 00 nop
Disassembly of section \.text:
 
00080c00 <_start>:
80c00: 4b ff fc 41 bl 80840 <_PROCEDURE_LINKAGE_TABLE_\+0x40>
80c00: R_PPC_PLTREL24 \.plt\+0x40
80c04: 48 00 00 09 bl 80c0c <sexternal>
80c04: R_PPC_PLTREL24 sexternal
80c08: 4b ff fc 19 bl 80820 <_PROCEDURE_LINKAGE_TABLE_\+0x20>
80c08: R_PPC_PLTREL24 \.plt\+0x20
 
00080c0c <sexternal>:
80c0c: 4e 80 00 20 blr
/testsuite/ld-powerpc/tlsopt2_32.d
0,0 → 1,23
#source: tlsopt2_32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <__tls_get_addr>:
1800094: 4e 80 00 20 blr
 
Disassembly of section \.no_opt2:
 
0+1800098 <\.no_opt2>:
1800098: 38 6d ff f4 addi r3,r13,-12
180009c: 2c 04 00 00 cmpwi r4,0
18000a0: 41 82 00 08 beq- .*
18000a4: 38 6d ff f4 addi r3,r13,-12
18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr>
#pass
/testsuite/ld-powerpc/apuinfo-nul.s
0,0 → 1,10
.text
nop
 
# dummy empty apuinfo
# some other tools emit these
.section ".PPC.EMB.apuinfo"
.long 8
.long 0
.long 2
.asciz "APUinfo"
/testsuite/ld-powerpc/aix-glink-1-64.dd
0,0 → 1,49
 
.*
 
 
Disassembly of section \.text:
 
0000000010000000 <\.f1>:
10000000: 4e 80 00 20 blr
 
0000000010000004 <\.f2>:
10000004: 48 00 00 05 bl 10000008 <\.f3>
 
0000000010000008 <\.f3>:
10000008: 4e 80 00 20 blr
 
000000001000000c <\.ext>:
1000000c: e9 82 00 00 ld r12,0\(r2\)
10000010: f8 41 00 28 std r2,40\(r1\)
10000014: e8 0c 00 00 ld r0,0\(r12\)
10000018: e8 4c 00 08 ld r2,8\(r12\)
1000001c: 7c 09 03 a6 mtctr r0
10000020: 4e 80 04 20 bctr
10000024: 00 00 00 00 \.long 0x0
10000028: 00 0c a0 00 \.long 0xca000
1000002c: 00 00 00 00 \.long 0x0
10000030: 00 00 00 18 \.long 0x18
 
Disassembly of section \.data:
 
0000000020000000 <foo>:
20000000: 20 00 00 08 .*
20000004: 10 00 00 0c .*
 
0000000020000008 <f1>:
20000008: 00 00 00 00 .*
2000000c: 10 00 00 00 .*
20000010: 00 00 00 00 .*
20000014: 20 00 00 38 .*
\.\.\.
 
0000000020000020 <f2>:
20000020: 00 00 00 00 .*
20000024: 10 00 00 04 .*
20000028: 00 00 00 00 .*
2000002c: 20 00 00 38 .*
\.\.\.
 
0000000020000038 <TOC>:
\.\.\.
/testsuite/ld-powerpc/tlsmark.d
0,0 → 1,37
#source: tlsmark.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <_start>:
100000e8: 48 00 00 18 b 10000100 <_start\+0x18>
100000ec: 60 00 00 00 nop
100000f0: 38 63 90 00 addi r3,r3,-28672
100000f4: e8 83 00 00 ld r4,0\(r3\)
100000f8: 3c 6d 00 00 addis r3,r13,0
100000fc: 48 00 00 0c b 10000108 <_start\+0x20>
10000100: 3c 6d 00 00 addis r3,r13,0
10000104: 4b ff ff e8 b 100000ec <_start\+0x4>
10000108: 60 00 00 00 nop
1000010c: 38 63 10 00 addi r3,r3,4096
10000110: e8 83 80 00 ld r4,-32768\(r3\)
10000114: 3c 6d 00 00 addis r3,r13,0
10000118: 48 00 00 0c b 10000124 <_start\+0x3c>
1000011c: 3c 6d 00 00 addis r3,r13,0
10000120: 48 00 00 14 b 10000134 <_start\+0x4c>
10000124: 60 00 00 00 nop
10000128: 38 63 90 04 addi r3,r3,-28668
1000012c: e8 a3 00 00 ld r5,0\(r3\)
10000130: 4b ff ff ec b 1000011c <_start\+0x34>
10000134: 60 00 00 00 nop
10000138: 38 63 10 00 addi r3,r3,4096
1000013c: e8 a3 80 04 ld r5,-32764\(r3\)
 
0+10000140 <\.__tls_get_addr>:
10000140: 4e 80 00 20 blr
/testsuite/ld-powerpc/aix-export-1b.s
0,0 → 1,9
.globl main1
.csect main1[RW]
main1:
.long lib1
 
.globl _main2
.csect _main2[RW]
_main2:
.long _lib2
/testsuite/ld-powerpc/vxworks1.ld
0,0 → 1,30
SECTIONS
{
. = 0x80000;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
 
. = ALIGN (0x400);
.rela.dyn : { *(.rela.dyn) }
.rela.plt : { *(.rela.plt) }
 
. = ALIGN (0x400);
.plt : { *(.plt) }
 
. = ALIGN (0x400);
.text : { *(.text) *(.pad) *(.far) }
 
. = ALIGN (0x10000);
.dynamic : { *(.dynamic) }
 
. = ALIGN (0x400);
.got : { *(.got.plt) *(.got) }
 
. = ALIGN (0x400);
.data : { *(.data) }
 
. = ALIGN (0x400);
.bss : { *(.bss) }
}
/testsuite/ld-powerpc/attr-gnu-4-02.d
0,0 → 1,10
#source: attr-gnu-4-0.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/testsuite/ld-powerpc/aix-toc-1a.s
0,0 → 1,23
.macro loadtoc
.toc
.tc sym\@[TC], \@
 
.csect .f1[PR]
.if size == 32
lwz 1,sym\@[TC](2)
.else
ld 1,sym\@[TC](2)
.endif
.endm
 
.globl .f1
.csect .f1[PR]
.f1:
.rept 0x7ffc * 8 / size
loadtoc
.endr
 
.globl f1
.csect f1[DS]
f1:
.long .f1[PR],TOC[TC0],0
/testsuite/ld-powerpc/attr-gnu-4-23.d
0,0 → 1,6
#source: attr-gnu-4-2.s
#source: attr-gnu-4-3.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses hard float, .* uses soft float
#target: powerpc*-*-*
/testsuite/ld-powerpc/vxworks2.s
0,0 → 1,5
.globl _start
.type _start,@function
_start:
blr
.end _start
/testsuite/ld-powerpc/aix-weak-2a.s
0,0 → 1,21
.weak c1
c1 = 0xcccc1111
.weak c2
c2 = 0xcccc2222
.globl c3
c3 = 0xcccc3333
.globl c4
c4 = 0xcccc4444
 
.weak d1
d1 = 0xffff1111
.weak d2
d2 = 0xffff2222
.globl d3
.csect d3[DS]
d3:
.long 0xffff3333
.globl d4
.csect d4[DS]
d4:
.long 0xffff4444
/testsuite/ld-powerpc/aix-toc-1-32.dd
0,0 → 1,12
 
.*
 
 
Disassembly of section \.text:
 
10000000 <\.f1>:
10000000: 80 22 80 08 l r1,-32760\(r2\)
10000002: R_TOC sym0.*
#...
1000fff4: 80 22 7f fc l r1,32764\(r2\)
1000fff6: R_TOC asym8190.*
/testsuite/ld-powerpc/aix-no-dup-syms-1a.s
0,0 → 1,9
.globl x
.csect x[RW]
x:
.long 4
.globl x1
.csect x1[RW]
x1:
.long x
.long foo
/testsuite/ld-powerpc/powerpc.exp
0,0 → 1,245
# Expect script for ld-powerpc tests
# Copyright 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# Free Software Foundation
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#
 
if { ![istarget "powerpc*-*-*"] } {
return
}
 
if {[istarget "*-*-vxworks"]} {
set ppcvxtests {
{"VxWorks shared library test 1 (default script)" "-shared"
"-mregnames" {vxworks1-lib.s}
{{readelf --segments vxworks1-lib.sd}}
"libvxworks1.so"}
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
"-mregnames" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
"-mregnames" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
{"VxWorks relax test"
"-Tvxworks1.ld --relax -q"
"-mregnames" {vxworks-relax.s}
{{readelf --relocs vxworks-relax.rd}}
"vxworks-relax"}
{"VxWorks relocatable relax test"
"-Tvxworks1.ld -r --relax -q"
"-mregnames" {vxworks-relax-2.s}
{{readelf --relocs vxworks-relax-2.rd}}
"vxworks-relax-2"}
}
run_ld_link_tests $ppcvxtests
run_dump_test "vxworks1-static"
return
}
 
# powerpc ELF only at the moment. Disable for nto too, even though it
# is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants
# -melf32ppcnto.
 
if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"]
|| [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
|| [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
|| [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"]
|| [istarget "*-*-nto*"] } {
return
}
 
proc supports_ppc64 { } {
global ld
 
catch "exec $ld --help | grep emulations" tmp
if [ string match "*elf64ppc*" $tmp ] then {
return 1
} else {
return 0
}
}
 
# List contains test-items with 3 items followed by 2 lists:
# 0:name 1:ld options 2:assembler options
# 3:filenames of assembler files 4: action and options. 5: name of output file
 
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
# nm: Apply nm options on result. Compare with regex (last arg).
# readelf: Apply readelf options on result. Compare with regex (last arg).
 
set ppcelftests {
{"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s}
{{objdump -hw reloc.d}} "reloc.so"}
{"APUinfo section processing" "-melf32ppc"
"-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
{{readelf -x2 apuinfo.rd}} "apuinfo"}
{"APUinfo NULL section processing" "-melf32ppc"
"-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
{{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
{"TLS32 static exec" "-melf32ppc" "-a32" {tls32.s tlslib32.s}
{{objdump -dr tls32.d} {objdump -sj.got tls32.g}
{objdump -sj.tdata tls32.t}}
"tls32"}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {}
{} "libtlslib32.so"}
{"TLS32 dynamic exec" "-melf32ppc tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
{{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
{objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
"tlsexe32"}
{"TLS32 shared" "-shared -melf32ppc tmpdir/tls32.o" "" {}
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
"tls32.so"}
{"TLS32 markers" "-melf32ppc" "-a32" {tlsmark32.s tlslib32.s}
{{objdump -dr tlsmark32.d}}
"tlsmark32"}
{"TLS32 opt 1" "-melf32ppc" "-a32" {tlsopt1_32.s tlslib32.s}
{{objdump -dr tlsopt1_32.d}}
"tlsopt1_32"}
{"TLS32 opt 2" "-melf32ppc" "-a32" {tlsopt2_32.s tlslib32.s}
{{objdump -dr tlsopt2_32.d}}
"tlsopt2_32"}
{"TLS32 opt 3" "-melf32ppc" "-a32" {tlsopt3_32.s tlslib32.s}
{{objdump -dr tlsopt3_32.d}}
"tlsopt3_32"}
{"TLS32 opt 4" "-melf32ppc" "-a32" {tlsopt4_32.s tlslib32.s}
{{objdump -dr tlsopt4_32.d}}
"tlsopt4_32"}
{"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s}
{} "sdalib.so"}
{"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s}
{{objdump -R sdadyn.d}} "sdadyn"}
{"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "-a32" "relax.s"
{{objdump -dr relax.d}}
"relax"}
{"relocatable relaxing" "-melf32ppc -r --relax" "-a32" "relax.s"
{{objdump -dr relaxr.d}}
"relax"}
}
 
set ppc64elftests {
{"TLS static exec" "-melf64ppc" "-a64" {tls.s tlslib.s}
{{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
"tls"}
{"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" {}
{} "libtlslib.so"}
{"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s}
{} "liboldlib.so"}
{"TLS dynamic exec" "-melf64ppc tmpdir/tls.o tmpdir/libtlslib.so" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexe"}
{"TLS dynamic old" "-melf64ppc tmpdir/tls.o tmpdir/liboldlib.so" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexeold"}
{"TLS shared" "-shared -melf64ppc tmpdir/tls.o" "" {}
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
"tls.so"}
{"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64" {tlstoc.s}
{{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
{objdump -sj.tdata tlstoc.t}}
"tlstoc"}
{"TLSTOC dynamic exec" "-melf64ppc tmpdir/tlstoc.o tmpdir/libtlslib.so"
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetoc"}
{"TLSTOC dynamic old" "-melf64ppc tmpdir/tlstoc.o tmpdir/liboldlib.so"
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetocold"}
{"TLSTOC shared" "-shared -melf64ppc tmpdir/tlstoc.o" "" {}
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
"tlstoc.so"}
{"TLS markers" "-melf64ppc" "-a64" {tlsmark.s tlslib.s}
{{objdump -dr tlsmark.d}}
"tlsmark"}
{"TLS opt 1" "-melf64ppc" "-a64" {tlsopt1.s tlslib.s}
{{objdump -dr tlsopt1.d}}
"tlsopt1"}
{"TLS opt 2" "-melf64ppc" "-a64" {tlsopt2.s tlslib.s}
{{objdump -dr tlsopt2.d}}
"tlsopt2"}
{"TLS opt 3" "-melf64ppc" "-a64" {tlsopt3.s tlslib.s}
{{objdump -dr tlsopt3.d}}
"tlsopt3"}
{"TLS opt 4" "-melf64ppc" "-a64" {tlsopt4.s tlslib.s}
{{objdump -dr tlsopt4.d}}
"tlsopt4"}
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
{"TOC opt" "-melf64ppc" "-a64" {tocopt.s}
{{objdump -s tocopt.d}} "tocopt"}
}
 
 
run_ld_link_tests $ppcelftests
 
if [ supports_ppc64 ] then {
run_ld_link_tests $ppc64elftests
run_dump_test "relbrlt"
}
 
run_dump_test "plt1"
 
run_dump_test "attr-gnu-4-00"
run_dump_test "attr-gnu-4-01"
run_dump_test "attr-gnu-4-02"
run_dump_test "attr-gnu-4-03"
run_dump_test "attr-gnu-4-10"
run_dump_test "attr-gnu-4-11"
run_dump_test "attr-gnu-4-12"
run_dump_test "attr-gnu-4-13"
run_dump_test "attr-gnu-4-14"
run_dump_test "attr-gnu-4-20"
run_dump_test "attr-gnu-4-21"
run_dump_test "attr-gnu-4-22"
run_dump_test "attr-gnu-4-23"
run_dump_test "attr-gnu-4-24"
run_dump_test "attr-gnu-4-31"
run_dump_test "attr-gnu-4-32"
run_dump_test "attr-gnu-4-33"
run_dump_test "attr-gnu-4-34"
run_dump_test "attr-gnu-4-41"
 
run_dump_test "attr-gnu-8-11"
run_dump_test "attr-gnu-8-23"
run_dump_test "attr-gnu-8-31"
 
run_dump_test "attr-gnu-12-11"
run_dump_test "attr-gnu-12-21"
/testsuite/ld-powerpc/tlsopt2_32.s
0,0 → 1,10
.section ".no_opt2", "ax", %progbits
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and two arg setup insns
# feed into one __tls_get_addr call.
addi 3,13,gd@got@tlsgd
cmpwi 4,0
beq 0f
addi 3,13,gd@got@tlsgd
0:
bl __tls_get_addr
/testsuite/ld-powerpc/aix-weak-1-rel.hd
0,0 → 1,12
.*
 
Sections:
Idx Name * Size * VMA * LMA * File off *Algn
*0 \.text * 0+00 * 0+00 * 0+00 * [^ ]+ * 2\*\*2
*ALLOC, LOAD, CODE
*1 \.data * 0+20 * 0+00 * 0+00 * [^ ]+ * 2\*\*3
*CONTENTS, ALLOC, LOAD, DATA
# Should only have 3 three common symbols.
*2 \.bss * 0+0c * 0+20 * 0+20 * [^ ]+ * 2\*\*3
*ALLOC
#pass
/testsuite/ld-powerpc/tlsmark.s
0,0 → 1,46
.section ".tdata","awT",@progbits
x: .int 1
y: .int 2
 
.section ".toc","aw",@progbits
.p2align 3
.LC0:
.quad y@dtpmod
.quad y@dtprel
.LC1:
.quad y@dtpmod
.quad 0
 
.text
.global _start
_start:
b .L2
 
.L1:
bl __tls_get_addr(x@tlsgd)
nop
ld 4,0(3)
addi 3,2,x@got@tlsld
b .L3
.L2:
addi 3,2,x@got@tlsgd
b .L1
.L3:
bl __tls_get_addr(x@tlsld)
nop
ld 4,x@dtprel(3)
 
addi 3,2,.LC0@toc
b .L5
.L4:
addi 3,2,.LC1@toc
b .L6
.L5:
bl .__tls_get_addr(.LC0@tlsgd)
nop
ld 5,0(3)
b .L4
.L6:
bl .__tls_get_addr(.LC1@tlsld)
nop
ld 5,y@dtprel(3)
/testsuite/ld-powerpc/attr-gnu-12-21.d
0,0 → 1,6
#source: attr-gnu-12-2.s
#source: attr-gnu-12-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses r3/r4 for small structure returns, .* uses memory
#target: powerpc*-*-*
/testsuite/ld-powerpc/aix-abs-reloc-1.od
0,0 → 1,7
 
.*
 
DYNAMIC RELOCATION RECORDS \(none\)
 
Contents of section \.data:
10000000 deadbeef .*
/testsuite/ld-powerpc/aix-glink-3b.s
0,0 → 1,11
.toc
 
.extern .g
.globl .f
.csect .f[PR]
.f:
bl .g
 
.globl f
.csect f[DS]
f: .long .f,TOC[tc0],0
/testsuite/ld-powerpc/tlsopt2.d
0,0 → 1,23
#source: tlsopt2.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <\.__tls_get_addr>:
100000e8: 4e 80 00 20 blr
 
Disassembly of section \.no_opt2:
 
0+100000ec <\.no_opt2>:
100000ec: 38 62 80 08 addi r3,r2,-32760
100000f0: 2c 24 00 00 cmpdi r4,0
100000f4: 41 82 00 08 beq- .*
100000f8: 38 62 80 08 addi r3,r2,-32760
100000fc: 4b ff ff ed bl 100000e8 <\.__tls_get_addr>
10000100: 60 00 00 00 nop
/testsuite/ld-powerpc/aix-weak-1-gcdso.hd
0,0 → 1,12
.*
 
Sections:
Idx Name * Size * VMA * LMA * File off *Algn
*0 \.text * 0+00 * 0*10000000 * 0*10000000 * [^ ]+ * 2\*\*2
*ALLOC, LOAD, CODE
*1 \.data * 0+18 * 0*10000000 * 0*10000000 * [^ ]+ * 2\*\*3
*CONTENTS, ALLOC, LOAD, DATA
# Should only have 3 three common symbols.
*2 \.bss * 0+0c * 0*10000018 * 0*10000018 * [^ ]+ * 2\*\*3
*ALLOC
#pass
/testsuite/ld-powerpc/tlsexe32.d
0,0 → 1,47
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
.* <_start>:
.*: 80 7f ff f0 lwz r3,-16\(r31\)
.*: 7c 63 12 14 add r3,r3,r2
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 01 01 85 bl .*<__tls_get_addr_opt@plt>
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 90 1c addi r3,r3,-28644
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 10 00 addi r3,r3,4096
.*: 39 23 80 20 addi r9,r3,-32736
.*: 3d 23 00 00 addis r9,r3,0
.*: 81 49 80 24 lwz r10,-32732\(r9\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a1 49 90 2c lhz r10,-28628\(r9\)
.*: 89 42 90 30 lbz r10,-28624\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: 99 49 90 34 stb r10,-28620\(r9\)
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 90 00 addi r3,r3,-28672
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 10 00 addi r3,r3,4096
.*: 91 43 80 04 stw r10,-32764\(r3\)
.*: 3d 23 00 00 addis r9,r3,0
.*: 91 49 80 08 stw r10,-32760\(r9\)
.*: 3d 22 00 00 addis r9,r2,0
.*: b1 49 90 2c sth r10,-28628\(r9\)
.*: a1 42 90 14 lhz r10,-28652\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a9 49 90 18 lha r10,-28648\(r9\)
Disassembly of section \.got:
 
.* <_GLOBAL_OFFSET_TABLE_-0x10>:
\.\.\.
.*: 4e 80 00 21 blrl
 
.* <_GLOBAL_OFFSET_TABLE_>:
.*: 01 81 02 b8 00 00 00 00 00 00 00 00 .*
/testsuite/ld-powerpc/tlsexe32.g
0,0 → 1,11
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -sj.got
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.got:
.* 00000000 00000000 00000000 4e800021 .*
.* 018102b8 00000000 00000000 .*
/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.rd
0,0 → 1,9
 
.*
 
RELOCATION RECORDS FOR \[\.data\]:
OFFSET * TYPE * VALUE
0+04 R_POS(|_32) * x\+0xf*f0000000
0+08 R_POS(|_32) * foo
0+14 R_POS(|_32) * x\+0xf*effffff0
0+18 R_POS(|_32) * foo
/testsuite/ld-powerpc/apuinfo-nul.rd
0,0 → 1,9
#source: apuinfo-nul.s
#source: apuinfo-nul1.s
#as: -me500
#readelf: -x2
#target: powerpc-eabi*
 
Hex dump of section '.PPC.EMB.apuinfo':
0x00000000 00000008 00000000 00000002 41505569 ............APUi
0x00000010 6e666f00 nfo.
/testsuite/ld-powerpc/attr-gnu-4-11.d
0,0 → 1,10
#source: attr-gnu-4-1.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/testsuite/ld-powerpc/attr-gnu-4-3.s
0,0 → 1,10
.gnu_attribute 4,3
/testsuite/ld-powerpc/apuinfo.rd
0,0 → 1,11
#source: apuinfo1.s
#source: apuinfo2.s
#source: apuinfo-nul.s
#as: -me500
#readelf: -x2
#target: powerpc-eabi*
 
Hex dump of section '.PPC.EMB.apuinfo':
0x00000000 00000008 0000001c 00000002 41505569 ............APUi
0x00000010 6e666f00 00420001 00430001 00410001 nfo..B...C...A..
0x00000020 01020001 01010001 00400001 01000001 .........@......
/testsuite/ld-powerpc/attr-gnu-4-32.d
0,0 → 1,6
#source: attr-gnu-4-3.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses soft float, .* uses single-precision hard float
#target: powerpc*-*-*
/testsuite/ld-powerpc/aix-weak-2b.nd
0,0 → 1,8
0*dddd1111 A c1
0*dddd2222 W c2
0*dddd3333 A c3
0*dddd4444 W c4
0*10000000 D d1
0*eeee2222 W d2
0*10000004 D d3
0*eeee4444 W d4
/testsuite/ld-powerpc/attr-gnu-8-3.s
0,0 → 1,8
.gnu_attribute 8,3
/testsuite/ld-powerpc/tlsopt2.s
0,0 → 1,11
.section ".no_opt2", "ax", %progbits
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and two arg setup insns
# feed into one __tls_get_addr call.
addi 3,2,gd@got@tlsgd
cmpdi 4,0
beq 0f
addi 3,2,gd@got@tlsgd
0:
bl __tls_get_addr
nop
/testsuite/ld-powerpc/symtocbase-2.s
0,0 → 1,16
.section .toc,"aw",@progbits
.align 15
.globl y
y: .quad .y,.y@tocbase,0
.LCi: .quad i
.space 48 * 1024
.data
.L2bases:
.quad .TOC.@tocbase
.quad .x@tocbase
.quad .y@tocbase
.text
.globl .y
.y:
ld 9,.LCi@toc(2)
blr
/testsuite/ld-powerpc/tlsexe32.r
0,0 → 1,111
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 00 +0 +0 +0
+\[[ 0-9]+\] \.interp +.*
+\[[ 0-9]+\] \.hash +.*
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000070 00 +AX +0 +0 +1
+\[[ 0-9]+\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 00001c 00 WAT +0 +0 +4
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 00001c 00 WAT +0 +0 +4
+\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 00001c 04 WAX +0 +0 +4
+\[[ 0-9]+\] \.plt +NOBITS +.*
+\[[ 0-9]+\] \.shstrtab +STRTAB +.*
+\[[ 0-9]+\] \.symtab +SYMTAB +.*
+\[[ 0-9]+\] \.strtab +STRTAB +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
+INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD .* R E 0x10000
+LOAD .* RWE 0x10000
+DYNAMIC .* RW +0x4
+TLS .* 0x0001c 0x00038 R +0x4
 
Section to Segment mapping:
+Segment Sections\.\.\.
+00 +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_TPREL32 +00000000 +gd \+ 0
[0-9a-f ]+R_PPC_DTPMOD32 +00000000 +ld \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_JMP_SLOT[0-9a-f ]+__tls_get_addr_opt \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +ABS __end
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
.* OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +9 le0
.* TLS +GLOBAL +DEFAULT +9 ld0
.* TLS +GLOBAL +DEFAULT +9 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +7 _start
.* NOTYPE +GLOBAL +DEFAULT +ABS __end
.* TLS +GLOBAL +DEFAULT +9 ld2
.* TLS +GLOBAL +DEFAULT +9 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +9 gd0
.* TLS +GLOBAL +DEFAULT +9 ie0
/testsuite/ld-powerpc/aix-weak-3-32.d
0,0 → 1,5
#name: Weak test 3 (main, static) (32-bit)
#source: aix-weak-3b.s
#as: -a32 --defsym size=32
#ld: -b32 -e.main -bnoautoimp tmpdir/aix-weak-3a.so
#error: .*multiple definition of `x1'\n[^\n]*first defined here
/testsuite/ld-powerpc/tlsexe32.t
0,0 → 1,11
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -sj.tdata
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.tdata:
.* 12345678 23456789 3456789a 456789ab .*
.* 56789abc 6789abcd 789abcde .*
/testsuite/ld-powerpc/vxworks1-static.d
0,0 → 1,4
#name: VxWorks executable test 1 (static)
#source: vxworks1.s -mregnames
#ld: tmpdir/libvxworks1.so -Tvxworks1.ld
#error: Dynamic sections created in non-dynamic link
/testsuite/ld-powerpc/vxworks1-lib.rd
0,0 → 1,13
 
Relocation section '\.rela\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
0009040c .*15 R_PPC_JMP_SLOT 00000000 sexternal \+ 0
00090410 .*15 R_PPC_JMP_SLOT 00080c48 sglobal \+ 0
 
Relocation section '\.rela\.dyn' at offset .* contains 5 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00090800 00000016 R_PPC_RELATIVE * 00080c44
00080c0e .*06 R_PPC_ADDR16_HA 00000000 __GOTT_BASE__ \+ 0
00080c12 .*04 R_PPC_ADDR16_LO 00000000 __GOTT_BASE__ \+ 0
00080c16 .*03 R_PPC_ADDR16 00000000 __GOTT_INDEX__ \+ 0
00090414 .*14 R_PPC_GLOB_DAT 00090c00 x \+ 0
/testsuite/ld-powerpc/apuinfo-nul1.s
0,0 → 1,10
.text
_start: nop
 
# dummy empty apuinfo
# some other tools emit these
.section ".PPC.EMB.apuinfo"
.long 8
.long 0
.long 2
.asciz "APUinfo"
/testsuite/ld-powerpc/aix-core-sec-3.s
0,0 → 1,10
.comm foo,8
/testsuite/ld-powerpc/aix-glink-1.s
0,0 → 1,21
.toc
.globl .f1
.csect .f1[PR]
.f1:
blr
 
.globl .f2
.csect .f2[PR]
.f2:
bl .f3
 
.globl .f3
.csect .f3[PR]
.f3:
blr
 
.globl foo
.csect foo[RW]
foo:
.long f1
.long .ext
/testsuite/ld-powerpc/apuinfo1.s
0,0 → 1,9
.text
.global apuinfo1
apuinfo1:
evstdd 29,8(1)
isellt 29, 28, 27
efsabs 29, 28
.global _start
_start:
nop
/testsuite/ld-powerpc/aix-weak-3-64.dd
0,0 → 1,26
 
.*
 
 
Disassembly of section \.data:
 
0000000020000000 <x1>:
20000000: 00 00 01 02 .*
 
0000000020000004 <x2>:
20000004: 00 00 03 04 .*
 
0000000020000008 <TOC>:
20000008: 00 00 00 00 .*
20000008: R_POS_64 x1\+.*
2000000c: 20 00 00 00 .*
 
0000000020000010 <x2>:
20000010: 00 00 00 00 .*
20000010: R_POS_64 x2\+.*
20000014: 20 00 00 04 .*
 
0000000020000018 <x3>:
20000018: 00 00 00 00 .*
20000018: R_POS_64 x3
2000001c: 00 00 00 00 .*
/testsuite/ld-powerpc/reloc.d
0,0 → 1,13
# Test that orphan reloc sections are placed before .rela.plt even when
# .rela.plt is the only reloc section.
 
#source: reloc.s
#ld: -shared -z nocombreloc
#objdump: -hw
 
.*: +file format elf.*
#...
.*\.relaplatypus.*
#...
.*\.rela\.plt.*
#pass
/testsuite/ld-powerpc/tlsso.d
0,0 → 1,76
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <00000010\.plt_call\.__tls_get_addr(|_opt)\+0>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 78 ld r11,-32648\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 88 ld r11,-32632\(r2\)
.* e8 42 80 80 ld r2,-32640\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 20 addi r3,r2,-32736
.* 4b ff ff e5 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff d9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff cd bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff c1 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 30 ld r9,-32720\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 6a 2e lhzx r10,r9,r13
.* 89 4d 00 00 lbz r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff 8d bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff 81 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* f9 43 80 08 std r10,-32760\(r3\)
.* 3d 23 00 00 addis r9,r3,0
.* 91 49 80 10 stw r10,-32752\(r9\)
.* e9 22 80 18 ld r9,-32744\(r2\)
.* 7d 49 19 2a stdx r10,r9,r3
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 6b 2e sthx r10,r9,r13
.* e9 4d 00 02 lwa r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 00 00 lha r10,0\(r9\)
.* 00 00 00 00 .*
.* 00 01 02 20 .*
.* <__glink_PLTresolve>:
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/testsuite/ld-powerpc/aix-weak-1-dso.nd
0,0 → 1,25
# Comments are (aix-weak-1a.s type) wins over/loses to (aix-weak-1b.s type)
# (strong common) loses to (strong data)
0*10000010 d a
0*10000010 D a
# (strong common) wins over (weak data)
0*10000020 B b
0*10000014 d b
# (strong data) wins over (strong common)
0*10000000 d c
0*10000000 D c
# (weak data) loses to (strong common)
0*10000004 d d
0*10000028 B d
# (weak common) loses to (strong data)
0*10000018 d e
0*10000018 D e
# (weak common) wins over (weak data)
0*10000024 W f
0*1000001c d f
# (strong data) wins over (weak common)
0*10000008 d g
0*10000008 D g
# (weak data) wins over (weak common)
0*1000000c d h
0*1000000c W h
/testsuite/ld-powerpc/aix-glink-2d.s
0,0 → 1,12
.globl .main
.csect .main[PR]
.main:
bl .a1
bl .a2
bl .a3
bl .b1
bl .b2
bl .b3
bl .c1
bl .c2
bl .c3
/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.nd
0,0 → 1,8
+ U foo
0+00 d x
0+00 D x
0+10 d x
0+04 d x1
0+04 D x1
0+14 d x2
0+14 D x2
/testsuite/ld-powerpc/relbrlt.d
0,0 → 1,60
#source: relbrlt.s
#as: -a64
#ld: -melf64ppc --emit-relocs
#objdump: -Dr
 
.*: file format elf64-powerpc
 
Disassembly of section \.text:
 
0*100000b0 <_start>:
[0-9a-f ]*: 49 bf 00 2d bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x37e003c
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 49 bf 00 19 bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x3bf0020
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 49 bf 00 21 bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x57e0024
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 00 00 00 00 \.long 0x0
[0-9a-f ]*: 4b ff ff e4 b .* <_start>
\.\.\.
 
[0-9a-f ]*<.*plt_branch.*>:
[0-9a-f ]*: e9 62 80 00 ld r11,-32768\(r2\)
[0-9a-f ]*: R_PPC64_TOC16_DS \*ABS\*\+0x157f00d8
[0-9a-f ]*: 7d 69 03 a6 mtctr r11
[0-9a-f ]*: 4e 80 04 20 bctr
 
[0-9a-f ]*<.*long_branch.*>:
[0-9a-f ]*: 49 bf 00 10 b .* <far>
[0-9a-f ]*: R_PPC64_REL24 \*ABS\*\+0x137e00ec
 
[0-9a-f ]*<.*plt_branch.*>:
[0-9a-f ]*: e9 62 80 08 ld r11,-32760\(r2\)
[0-9a-f ]*: R_PPC64_TOC16_DS \*ABS\*\+0x157f00e0
[0-9a-f ]*: 7d 69 03 a6 mtctr r11
[0-9a-f ]*: 4e 80 04 20 bctr
\.\.\.
 
0*137e00ec <far>:
[0-9a-f ]*: 4e 80 00 20 blr
\.\.\.
 
0*13bf00d0 <far2far>:
[0-9a-f ]*: 4e 80 00 20 blr
\.\.\.
 
0*157e00d4 <huge>:
[0-9a-f ]*: 4e 80 00 20 blr
 
Disassembly of section \.branch_lt:
 
0*157f00d8 <\.branch_lt>:
[0-9a-f ]*: 00 00 00 00 .*
[0-9a-f ]*: R_PPC64_RELATIVE \*ABS\*\+0x13bf00d0
[0-9a-f ]*: 13 bf 00 d0 .*
[0-9a-f ]*: 00 00 00 00 .*
[0-9a-f ]*: R_PPC64_RELATIVE \*ABS\*\+0x157e00d4
[0-9a-f ]*: 15 7e 00 d4 .*
/testsuite/ld-powerpc/tlsso.g
0,0 → 1,15
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 00018778 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
/testsuite/ld-powerpc/aix-glink-1-64.d
0,0 → 1,5
#name: Glink test 1 (error) (64-bit)
#source: aix-glink-1.s
#as: -a64
#ld: -b64 -bM:SRE -bnogc
#error: undefined reference to `\.ext'
/testsuite/ld-powerpc/relax.d
0,0 → 1,15
 
.*: file format .*
 
Disassembly of section .text:
 
00000000 <_start>:
0: 48 00 43 21 bl 4320 <near>
4: 48 00 00 11 bl 14 <_start\+0x14>
8: 48 00 43 19 bl 4320 <near>
c: 48 00 00 09 bl 14 <_start\+0x14>
10: 4b ff ff f0 b 0 <.*>
14: 3d 80 80 00 lis r12,-32768
18: 39 8c 12 34 addi r12,r12,4660
1c: 7d 89 03 a6 mtctr r12
20: 4e 80 04 20 bctr
/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.dnd
0,0 → 1,4
* U foo
0*10000000 D x
0*10000004 D x1
0*10000014 D x2
/testsuite/ld-powerpc/tlsopt4_32.d
0,0 → 1,44
#source: tlsopt4_32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <__tls_get_addr>:
1800094: 4e 80 00 20 blr
 
Disassembly of section \.opt1:
 
0+1800098 <\.opt1>:
1800098: 3c 62 00 00 addis r3,r2,0
180009c: 2c 04 00 00 cmpwi r4,0
18000a0: 41 82 00 0c beq- .*
18000a4: 38 63 90 10 addi r3,r3,-28656
18000a8: 48 00 00 08 b .*
18000ac: 38 63 90 10 addi r3,r3,-28656
 
Disassembly of section \.opt2:
 
0+18000b0 <\.opt2>:
18000b0: 3c 62 00 00 addis r3,r2,0
18000b4: 2c 04 00 00 cmpwi r4,0
18000b8: 41 82 00 08 beq- .*
18000bc: 3c 62 00 00 addis r3,r2,0
18000c0: 38 63 90 10 addi r3,r3,-28656
 
Disassembly of section \.opt3:
 
0+18000c4 <\.opt3>:
18000c4: 3c 62 00 00 addis r3,r2,0
18000c8: 48 00 00 0c b .*
18000cc: 3c 62 00 00 addis r3,r2,0
18000d0: 48 00 00 0c b .*
18000d4: 38 63 90 10 addi r3,r3,-28656
18000d8: 48 00 00 08 b .*
18000dc: 38 63 90 08 addi r3,r3,-28664
#pass
/testsuite/ld-powerpc/vxworks2-static.sd
0,0 → 1,9
#...
Elf file type is EXEC \(Executable file\)
Entry point 0x80000
#...
Program Headers:
Type .*
LOAD .* 0x00080000 0x00080000 .* R E 0x10000
 
#...
/testsuite/ld-powerpc/attr-gnu-4-20.d
0,0 → 1,10
#source: attr-gnu-4-2.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/testsuite/ld-powerpc/aix-lineno-1b.nd
0,0 → 1,3
0*10000000 t \.foo
0*10000014 t \.main
0*10000014 T \.main
/testsuite/ld-powerpc/attr-gnu-4-03.d
0,0 → 1,10
#source: attr-gnu-4-0.s
#source: attr-gnu-4-3.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Single-precision hard float
/testsuite/ld-powerpc/tlsso.r
0,0 → 1,129
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[[ 0-9]+\] \.hash .*
+\[[ 0-9]+\] \.dynsym .*
+\[[ 0-9]+\] \.dynstr .*
+\[[ 0-9]+\] \.rela\.dyn .*
+\[[ 0-9]+\] \.rela\.plt .*
+\[[ 0-9]+\] \.text .*
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
+\[[ 0-9]+\] \.symtab .*
+\[[ 0-9]+\] \.strtab .*
#...
 
Elf file type is DYN \(Shared object file\)
Entry point 0x[0-9a-f]+
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+LOAD .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 16 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_DS +0+105f0 \.tdata \+ 28
[0-9a-f ]+R_PPC64_TPREL16_HA +0+105f0 \.tdata \+ 30
[0-9a-f ]+R_PPC64_TPREL16_LO +0+105f0 \.tdata \+ 30
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPREL64 +0+
[0-9a-f ]+R_PPC64_DTPREL64 +0+18
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
.* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0
.* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
/testsuite/ld-powerpc/aix-weak-1-gcdso.dnd
0,0 → 1,17
# Comments are (aix-weak-1a.s type) wins over/loses to (aix-weak-1b.s type)
# (strong common) loses to (strong data)
0*1000000c D a
# (strong common) wins over (weak data)
0*10000018 B b
# (strong data) wins over (strong common)
0*10000000 D c
# (weak data) loses to (strong common)
0*10000020 B d
# (weak common) loses to (strong data)
0*10000010 D e
# (weak common) wins over (weak data)
0*1000001c W f
# (strong data) wins over (weak common)
0*10000004 D g
# (weak data) wins over (weak common)
0*10000008 W h
/testsuite/ld-powerpc/aix-toc-1b.s
0,0 → 1,23
.macro loadtoc
.toc
.tc asym\@[TC], \@ | 0x10000
 
.csect .f2[PR]
.if size == 32
lwz 1,asym\@[TC](2)
.else
ld 1,asym\@[TC](2)
.endif
.endm
 
.globl .f2
.csect .f2[PR]
.f2:
.rept 0x7ffc * 8 / size
loadtoc
.endr
 
.globl f2
.csect f2[DS]
f2:
.long .f2[PR],TOC[TC0],0
/testsuite/ld-powerpc/reloc.s
0,0 → 1,9
.section echidna
.long .text
 
.section platypus,"ax"
.long .text
 
.text
b _start@plt
nop
/testsuite/ld-powerpc/attr-gnu-4-41.d
0,0 → 1,6
#source: attr-gnu-4-4.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 4
#target: powerpc*-*-*
/testsuite/ld-powerpc/tlsso.t
0,0 → 1,13
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/testsuite/ld-powerpc/attr-gnu-4-24.d
0,0 → 1,6
#source: attr-gnu-4-2.s
#source: attr-gnu-4-4.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 4
#target: powerpc*-*-*
/testsuite/ld-powerpc/relbrlt.s
0,0 → 1,34
.text
.global _start
_start:
1:
bl far
nop
bl far2far
nop
bl huge
nop
.long 0
b 1b
.space 0x1bf0000
 
.section .text.pad1,"ax"
.space 0x1bf0000
 
.section .text.far,"ax"
far:
blr
 
.section .text.pad2,"ax"
.space 0x40ffe0
 
.section .text.far2far,"ax"
far2far:
blr
 
.section .text.pad3,"ax"
.space 0x1bf0000
 
.section .text.huge,"ax"
huge:
blr
/testsuite/ld-powerpc/aix-weak-2b.s
0,0 → 1,21
.globl c1
c1 = 0xdddd1111
.weak c2
c2 = 0xdddd2222
.globl c3
c3 = 0xdddd3333
.weak c4
c4 = 0xdddd4444
 
.globl d1
.csect d1[DS]
d1:
.long 0xeeee1111
.weak d2
d2 = 0xeeee2222
.globl d3
.csect d3[DS]
d3:
.long 0xeeee3333
.weak d4
d4 = 0xeeee4444
/testsuite/ld-powerpc/aix-core-sec-3.hd
0,0 → 1,11
#...
Sections:
.*
* 0 * \.text * 0+0 .*
* ALLOC, LOAD, CODE
* 1 * \.data * 0+0 .*
* ALLOC, LOAD, DATA
* 2 * \.bss * 0+8 .*
* ALLOC
* 3 * \.loader .*
* CONTENTS, ALLOC, LOAD
/testsuite/ld-powerpc/vxworks2.sd
0,0 → 1,13
#...
Elf file type is EXEC \(Executable file\)
Entry point 0x80400
#...
Program Headers:
Type .*
PHDR .*
#...
LOAD .* 0x00080000 0x00080000 .* R E 0x10000
LOAD .* 0x00090000 0x00090000 .* RW 0x10000
DYNAMIC .*
 
#...
/testsuite/ld-powerpc/aix-no-dup-syms-1b.s
0,0 → 1,9
.globl x
.csect x[RW]
x:
.long 8
.globl x2
.csect x2[RW]
x2:
.long x
.long foo
/testsuite/ld-powerpc/relax.s
0,0 → 1,7
.globl _start
_start:
bl near
bl far
bl near
bl far
b _start
/testsuite/ld-powerpc/vxworks1-lib.sd
0,0 → 1,12
#...
Program Headers:
Type .* Flg Align
LOAD .* R E 0x10000
LOAD .* RW 0x10000
DYNAMIC .* RW 0x4
 
Section to Segment mapping:
Segment Sections\.\.\.
00 .* \.plt .*
01 .* \.got .*
02 .* \.dynamic $
/testsuite/ld-powerpc/aix-abs-branch-1.s
0,0 → 1,14
.globl foo
.csect foo[PR]
foo:
bl bar - 0x3000
lwz 1,80(1)
bl bar + 0x1000
.ifeq size - 32
lwz 2,20(1)
.else
ld 2,40(1)
.endif
bl bar + 0x2800
nop
bl bar
/testsuite/ld-powerpc/tlsopt4_32.s
0,0 → 1,34
.section ".tbss","awT",@nobits
.global gd0
.align 3
gd0: .space 8
 
.section ".opt1", "ax", %progbits
addi 3,13,gd@got@tlsgd
cmpwi 4,0
beq 0f
bl __tls_get_addr(gd@tlsgd)
b 1f
0:
bl __tls_get_addr(gd@tlsgd)
1:
 
.section ".opt2", "ax", %progbits
addi 3,13,gd@got@tlsgd
cmpwi 4,0
beq 0f
addi 3,13,gd@got@tlsgd
0:
bl __tls_get_addr(gd@tlsgd)
 
.section ".opt3", "ax", %progbits
addi 3,13,gd@got@tlsgd
b 0f
addi 3,13,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr(gd@tlsgd)
b 2f
1:
bl __tls_get_addr(gd0@tlsgd)
2:
/testsuite/ld-powerpc/aix-toc-1-64.dd
0,0 → 1,12
 
.*
 
 
Disassembly of section \.text:
 
0000000010000000 <.f1>:
10000000: e8 22 80 10 ld r1,-32752\(r2\)
10000002: R_TOC sym0.*
#...
10007ff4: e8 22 7f f8 ld r1,32760\(r2\)
10007ff6: R_TOC asym4094.*
/testsuite/ld-powerpc/attr-gnu-12-1.s
0,0 → 1,12
.gnu_attribute 12,1
/testsuite/ld-powerpc/aix-gc-1.ex
0,0 → 1,12
exported_global
/testsuite/ld-powerpc/aix-abs-branch-1.im
0,0 → 1,12
bar 0x1450000
/testsuite/ld-powerpc/aix-abs-reloc-1.im
0,0 → 1,12
bar 0xdeadbeef
/testsuite/ld-powerpc/tlsopt3.d
0,0 → 1,26
#source: tlsopt3.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
00000000100000e8 <\.__tls_get_addr>:
100000e8: 4e 80 00 20 blr
 
Disassembly of section \.no_opt3:
 
00000000100000ec <\.no_opt3>:
100000ec: 38 62 80 08 addi r3,r2,-32760
100000f0: 48 00 00 0c b .*
100000f4: 38 62 80 18 addi r3,r2,-32744
100000f8: 48 00 00 10 b .*
100000fc: 4b ff ff ed bl 100000e8 <\.__tls_get_addr>
10000100: 60 00 00 00 nop
10000104: 48 00 00 0c b .*
10000108: 4b ff ff e1 bl 100000e8 <\.__tls_get_addr>
1000010c: 60 00 00 00 nop
/testsuite/ld-powerpc/aix-weak-1-dso.dnd
0,0 → 1,17
# Comments are (aix-weak-1a.s type) wins over/loses to (aix-weak-1b.s type)
# (strong common) loses to (strong data)
0*10000010 D a
# (strong common) wins over (weak data)
0*10000020 B b
# (strong data) wins over (strong common)
0*10000000 D c
# (weak data) loses to (strong common)
0*10000028 B d
# (weak common) loses to (strong data)
0*10000018 D e
# (weak common) wins over (weak data)
0*10000024 W f
# (strong data) wins over (weak common)
0*10000008 D g
# (weak data) wins over (weak common)
0*1000000c W h
/testsuite/ld-powerpc/tlsexetoc.d
0,0 → 1,74
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <00000010\.plt_call\.__tls_get_addr(|_opt)\+0>:
.* e9 63 00 00 ld r11,0\(r3\)
.* e9 83 00 08 ld r12,8\(r3\)
.* 7c 60 1b 78 mr r0,r3
.* 2c 2b 00 00 cmpdi r11,0
.* 7c 6c 6a 14 add r3,r12,r13
.* 4d 82 00 20 beqlr
.* 7c 03 03 78 mr r3,r0
.* 7d 68 02 a6 mflr r11
.* f9 61 00 20 std r11,32\(r1\)
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 21 bctrl
.* e9 61 00 20 ld r11,32\(r1\)
.* e8 41 00 28 ld r2,40\(r1\)
.* 7d 68 03 a6 mtlr r11
.* 4e 80 00 20 blr
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff b1 bl .*
.* 60 00 00 00 nop
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff a5 bl .*
.* 60 00 00 00 nop
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 38 addi r3,r3,-28616
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 58 lhz r10,-28584\(r9\)
.* 89 4d 90 60 lbz r10,-28576\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 68 stb r10,-28568\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 28 .*
.* <__glink_PLTresolve>:
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/testsuite/ld-powerpc/tlsopt1_32.d
0,0 → 1,24
#source: tlsopt1_32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <__tls_get_addr>:
1800094: 4e 80 00 20 blr
 
Disassembly of section \.no_opt1:
 
0+1800098 <\.no_opt1>:
1800098: 38 6d ff f4 addi r3,r13,-12
180009c: 2c 04 00 00 cmpwi r4,0
18000a0: 41 82 00 0c beq- .*
18000a4: 4b ff ff f1 bl 1800094 <__tls_get_addr>
18000a8: 48 00 00 08 b .*
18000ac: 4b ff ff e9 bl 1800094 <__tls_get_addr>
#pass
/testsuite/ld-powerpc/vxworks1-lib.dd
0,0 → 1,56
 
.*: file format .*
 
Disassembly of section \.plt:
 
00080800 <_PROCEDURE_LINKAGE_TABLE_>:
80800: 81 9e 00 08 lwz r12,8\(r30\)
80804: 7d 89 03 a6 mtctr r12
80808: 81 9e 00 04 lwz r12,4\(r30\)
8080c: 4e 80 04 20 bctr
80810: 60 00 00 00 nop
80814: 60 00 00 00 nop
80818: 60 00 00 00 nop
8081c: 60 00 00 00 nop
80820: 3d 9e 00 00 addis r12,r30,0
80824: 81 8c 00 0c lwz r12,12\(r12\)
80828: 7d 89 03 a6 mtctr r12
8082c: 4e 80 04 20 bctr
80830: 39 60 00 00 li r11,0
80834: 4b ff ff cc b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80838: 60 00 00 00 nop
8083c: 60 00 00 00 nop
80840: 3d 9e 00 00 addis r12,r30,0
80844: 81 8c 00 10 lwz r12,16\(r12\)
80848: 7d 89 03 a6 mtctr r12
8084c: 4e 80 04 20 bctr
80850: 39 60 00 01 li r11,1
80854: 4b ff ff ac b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80858: 60 00 00 00 nop
8085c: 60 00 00 00 nop
Disassembly of section \.text:
 
00080c00 <foo>:
80c00: 94 21 ff e8 stwu r1,-24\(r1\)
80c04: 7c 08 02 a6 mflr r0
80c08: 90 01 00 1c stw r0,28\(r1\)
80c0c: 3f c0 00 00 lis r30,0
80c10: 83 de 00 00 lwz r30,0\(r30\)
80c14: 83 de 00 00 lwz r30,0\(r30\)
80c18: 80 3e 00 14 lwz r1,20\(r30\)
80c1c: 80 01 00 00 lwz r0,0\(r1\)
80c20: 38 00 00 01 li r0,1
80c24: 90 01 00 00 stw r0,0\(r1\)
80c28: 48 00 00 1d bl 80c44 <slocal>
80c2c: 4b ff fc 15 bl 80840 <_PROCEDURE_LINKAGE_TABLE_\+0x40>
80c30: 4b ff fb f1 bl 80820 <_PROCEDURE_LINKAGE_TABLE_\+0x20>
80c34: 80 01 00 1c lwz r0,28\(r1\)
80c38: 7c 08 03 a6 mtlr r0
80c3c: 38 21 00 18 addi r1,r1,24
80c40: 4e 80 00 20 blr
 
00080c44 <slocal>:
80c44: 4e 80 00 20 blr
 
00080c48 <sglobal>:
80c48: 4e 80 00 20 blr
/testsuite/ld-powerpc/aix-export-2.nd
0,0 → 1,56
0*10000000 B x
/testsuite/ld-powerpc/tlsexetoc.g
0,0 → 1,15
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 100185b0 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000001 .*
.* 00000000 00000000 00000000 00000001 .*
.* 00000000 00000000 ffffffff ffff8050 .*
.* 00000000 00000000 .*
/testsuite/ld-powerpc/vxworks-relax-2.rd
0,0 → 1,11
 
Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 8 entries:
Offset Info Type Sym.Value Sym. Name \+ Addend
00000016 00000106 R_PPC_ADDR16_HA 00000000 .text \+ 4000034
0000001a 00000104 R_PPC_ADDR16_LO 00000000 .text \+ 4000034
00000006 00000106 R_PPC_ADDR16_HA 00000000 .text \+ 4000034
0000000a 00000104 R_PPC_ADDR16_LO 00000000 .text \+ 4000034
00000026 00000506 R_PPC_ADDR16_HA 00000000 undefined \+ 0
0000002a 00000504 R_PPC_ADDR16_LO 00000000 undefined \+ 0
0400003e 00000606 R_PPC_ADDR16_HA 00000000 _start \+ 0
04000042 00000604 R_PPC_ADDR16_LO 00000000 _start \+ 0
/testsuite/ld-powerpc/attr-gnu-4-0.s
0,0 → 1,11
.gnu_attribute 4,0
/testsuite/ld-powerpc/plt1.d
0,0 → 1,20
#source: plt1.s
#as: -a32
#objdump: -dr
#target: powerpc*-*-*
 
.*: file format elf32-powerpc
 
Disassembly of section .text:
 
0+ <_start>:
0: 42 9f 00 05 bcl- 20,4\*cr7\+so,4 .*
4: 7f c8 02 a6 mflr r30
8: 3f de 00 00 addis r30,r30,0
a: R_PPC_REL16_HA _GLOBAL_OFFSET_TABLE_\+0x6
c: 3b de 00 0a addi r30,r30,10
e: R_PPC_REL16_LO _GLOBAL_OFFSET_TABLE_\+0xa
10: 48 00 00 01 bl 10 .*
10: R_PPC_PLTREL24 _exit
14: 48 00 00 00 b 14 .*
14: R_PPC_REL24 _start
/testsuite/ld-powerpc/attr-gnu-4-12.d
0,0 → 1,6
#source: attr-gnu-4-1.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses hard float, .* uses soft float
#target: powerpc*-*-*
/testsuite/ld-powerpc/attr-gnu-4-4.s
0,0 → 1,6
.gnu_attribute 4,4
/testsuite/ld-powerpc/aix-gc-1.nd
0,0 → 1,3
#...
0*20000008 d __rtinit
#pass
/testsuite/ld-powerpc/attr-gnu-4-33.d
0,0 → 1,10
#source: attr-gnu-4-3.s
#source: attr-gnu-4-3.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Single-precision hard float
/testsuite/ld-powerpc/aix-weak-3a.s
0,0 → 1,8
.globl x1
x1 = 0x11223344
.globl x2
x2 = 0x55667788
.globl x3
.csect x3[RW]
x3:
.long 42
/testsuite/ld-powerpc/attr-gnu-8-31.d
0,0 → 1,10
#source: attr-gnu-8-3.s
#source: attr-gnu-8-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_Vector: SPE
/testsuite/ld-powerpc/tlsopt3.s
0,0 → 1,19
.section ".tbss","awT",@nobits
.global gd0
.align 3
gd0: .space 8
 
.section ".no_opt3", "ax", %progbits
# this section should also not be optimised
addi 3,2,gd@got@tlsgd
b 0f
addi 3,2,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr
nop
b 2f
1:
bl __tls_get_addr
nop
2:
/testsuite/ld-powerpc/tlsexetoc.r
0,0 → 1,115
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[[ 0-9]+\] \.interp +.*
+\[[ 0-9]+\] \.hash +.*
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+f0 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+160 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt +PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+58 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+PHDR +0x0+40 0x0+10000040 0x0+10000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+10000190 0x0+10000190 0x0+11 0x0+11 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 3 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr_opt \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* SECTION +LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* NOTYPE +LOCAL +DEFAULT +12 \.Lie0
.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
.* (NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt))
.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0)
.* ((FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve)
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +9 le0
.* TLS +GLOBAL +DEFAULT +9 ld0
.* TLS +GLOBAL +DEFAULT +9 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +7 _start
.* TLS +GLOBAL +DEFAULT +9 ld2
.* TLS +GLOBAL +DEFAULT +9 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr_opt
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +9 gd0
.* TLS +GLOBAL +DEFAULT +9 ie0
/testsuite/ld-powerpc/tlsopt1_32.s
0,0 → 1,12
.section ".no_opt1", "ax", %progbits
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and the arg setup insn
# is shared with two __tls_get_addr calls.
addi 3,13,gd@got@tlsgd
cmpwi 4,0
beq 0f
bl __tls_get_addr
b 1f
0:
bl __tls_get_addr
1:
/testsuite/ld-powerpc/tlsexetoc.t
0,0 → 1,13
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/testsuite/ld-powerpc/vxworks1-lib.td
0,0 → 1,3
#...
0x0+16 \(TEXTREL\) +0x0
#pass
/testsuite/ld-powerpc/aix-weak-1-dso.hd
0,0 → 1,12
.*
 
Sections:
Idx Name * Size * VMA * LMA * File off *Algn
*0 \.text * 0+00 * 0*10000000 * 0*10000000 * [^ ]+ * 2\*\*2
*ALLOC, LOAD, CODE
*1 \.data * 0+20 * 0*10000000 * 0*10000000 * [^ ]+ * 2\*\*3
*CONTENTS, ALLOC, LOAD, DATA
# Should only have 3 three common symbols.
*2 \.bss * 0+0c * 0*10000020 * 0*10000020 * [^ ]+ * 2\*\*3
*ALLOC
#pass
/testsuite/ld-powerpc/plt1.s
0,0 → 1,9
.text
.global _start
_start:
bcl 20,31,1f
1: mflr 30
addis 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@ha
addi 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@l
bl _exit@plt
b _start
/testsuite/ld-powerpc/aix52.exp
0,0 → 1,265
# Expect script for AIX 5.2+ tests
# Copyright 2009 Free Software Foundation
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#
 
if { ![istarget "powerpc*-*-aix\[5-9\]*"]
|| [istarget "powerpc*-*-aix5.\[01\]*"] } {
return
}
 
# Run a run_link_tests-style test for AIX. SIZE selects the target size
# (32 or 64). The other arguments are elements of a run_link_tests test.
#
# Make the following changes before running the test:
#
# - Mention SIZE in the test name.
# - Add "-aSIZE --defsym size=SIZE" to the assembler options.
# - Add the source directory to any "-bI:" and "-bE:" linker options.
# - Add "-bSIZE" to the linker options.
# - Add "-XSIZE" to the archiver options.
# - Replace "SIZE" with SIZE in TOOLS.
# - When testing 64-bit targets:
# - Turn tmpdir/aix-* into tmpdir/aix64-*.
# - Turn tmpdir/libaix-* into tmpdir/libaix64-*.
# - Turn -laix* into -laix64*, to compensate for the above.
proc run_aix_test { size name ldopts asopts sources tools output } {
global srcdir subdir
 
if { $size == 64 } {
regsub -all {tmpdir/aix-} $ldopts {tmpdir/aix64-} ldopts
regsub {^aix} $output {aix64} output
 
regsub -all -- {-laix-} $ldopts {-laix64-} ldopts
regsub {^libaix} $output {libaix64} output
}
if { [regexp {.a$} $output] } {
append ldopts " -X$size"
} else {
regsub -all {(-b[IE]):} $ldopts "\\1:$srcdir/$subdir/" ldopts
append ldopts " -b$size"
}
regsub -all {SIZE} $tools $size tools
run_ld_link_tests [list [list "$name ($size-bit)" \
$ldopts \
"$asopts -a$size --defsym size=$size" \
$sources \
$tools \
$output]]
}
 
foreach file { "aix-lineno-1.txt" } {
remote_upload host "$srcdir/$subdir/$file" "tmpdir/$file"
}
 
set aix52tests {
{"Absolute branch test 1"
"-shared -bI:aix-abs-branch-1.im -bE:aix-abs-branch-1.ex"
"" {aix-abs-branch-1.s}
{{objdump {-dR} aix-abs-branch-1.dd} {nm {} aix-abs-branch-1.nd}}
"aix-abs-branch-1.so"}
 
{"Relocations against absolute symbols 1"
"-shared -bI:aix-abs-reloc-1.im -bE:aix-abs-reloc-1.ex"
{} {aix-abs-reloc-1.s}
{{objdump -sRj.data aix-abs-reloc-1.od} {nm {} aix-abs-reloc-1.nd}}
"aix-abs-reloc-1.so"}
 
{"Core sections test 1" "-shared -bE:aix-core-sec-1.ex"
"" {aix-core-sec-1.s}
{{objdump -h aix-core-sec-1.hd}}
"aix-core-sec-1.so"}
 
{"Core sections test 2" "-shared -bE:aix-core-sec-2.ex"
"" {aix-core-sec-2.s}
{{objdump -h aix-core-sec-2.hd}}
"aix-core-sec-2.so"}
 
{"Core sections test 3" "-shared -bE:aix-core-sec-3.ex"
"" {aix-core-sec-3.s}
{{objdump -h aix-core-sec-3.hd}}
"aix-core-sec-3.so"}
 
{"Duplicate symbol check 1 (rel)" "-r"
"" {aix-no-dup-syms-1a.s aix-no-dup-syms-1b.s}
{{nm {} aix-no-dup-syms-1-rel.nd} {objdump -r aix-no-dup-syms-1-rel.rd}}
"aix-no-dup-syms-1.o"}
 
{"Duplicate symbol check 1 (shared)"
"-shared --allow-multiple-definition -bI:aix-no-dup-syms-1.im -bE:aix-no-dup-syms-1.ex"
"" {aix-no-dup-syms-1a.s aix-no-dup-syms-1b.s}
{{nm {} aix-no-dup-syms-1-dso.nd} {objdump -r aix-no-dup-syms-1-dso.rd}
{nm -D aix-no-dup-syms-1-dso.dnd} {objdump -R aix-no-dup-syms-1-dso.drd}}
"aix-no-dup-syms-1.so"}
 
{"Export test 1 (archive)" ""
"" {aix-export-1a.s}
{} "libaix-export-1.a"}
 
{"Export test 1 (object)" "-r"
"" {aix-export-1b.s}
{} "aix-export-1.o"}
 
{"Export test 1 (-bexpall)"
"-shared -bexpall tmpdir/aix-export-1.o -Ltmpdir -laix-export-1"
"" {}
{{objdump -dj.data aix-export-1-all.dd}}
"aix-export-1-all.so"}
 
{"Export test 1 (-bexpfull)"
"-shared -bexpfull tmpdir/aix-export-1.o -Ltmpdir -laix-export-1"
"" {}
{{objdump -dj.data aix-export-1-full.dd}}
"aix-export-1-full.so"}
 
{"Export test 2" "-shared -bexpall"
{} {aix-export-2.s}
{{nm -D aix-export-2.nd}} "aix-export-2.so"}
 
{"Garbage collection test 1"
"-shared -binitfini:init_function:fini_function -bE:aix-gc-1.ex"
"" {aix-gc-1.s}
{{objdump {-dz -j.text -j.data} aix-gc-1-SIZE.dd}
{nm {} aix-gc-1.nd}}
"aix-gc-1.so"}
 
{"Glink test 1"
"-shared -bE:aix-glink-1.ex --unresolved-symbols=ignore-all"
"" {aix-glink-1.s}
{{objdump {-D -j.text -j.data} aix-glink-1-SIZE.dd}}
"aix-glink-1.so"}
 
{"Glink test 2 (part a)" "-shared -bE:aix-glink-2a.ex"
"" {aix-glink-2a.s}
{}
"aix-glink-2a.so"}
 
{"Glink test 2 (part b)" "-r"
"" {aix-glink-2b.s}
{}
"aix-glink-2b.ro"}
 
{"Glink test 2 (part c)" "-shared -bE:aix-glink-2c.ex"
"" {aix-glink-2c.s}
{}
"aix-glink-2c.so"}
 
{"Glink test 2"
"-e.main tmpdir/aix-glink-2a.so tmpdir/aix-glink-2b.ro tmpdir/aix-glink-2c.so"
"" {aix-glink-2d.s}
{{objdump -d aix-glink-2-SIZE.dd}}
"aix-glink-2"}
 
{"Glink test 3 (shared library a)"
"-shared -bexpall"
"" {aix-glink-3a.s}
{} "aix-glink-3a.so"}
 
{"Glink test 3 (shared library b)"
"-shared -bexpall"
"" {aix-glink-3b.s}
{} "aix-glink-3b.so"}
 
{"Glink test 3 (main test)"
"-bnoautoimp tmpdir/aix-glink-3b.so tmpdir/aix-glink-3a.so"
"" {aix-glink-3.s}
{{objdump -d aix-glink-3.dd}}
"aix-glink-3"}
 
{"Line number test 1 (no discards)" "-e.main"
"" {aix-lineno-1.s}
{{objdump -dS aix-lineno-1a.dd} {nm {} aix-lineno-1a.nd}}
"aix-lineno-1a.exe"}
 
{"Line number test 1 (discard locals)" "-e.main -x"
"" {aix-lineno-1.s}
{{objdump -dS aix-lineno-1b.dd} {nm {} aix-lineno-1b.nd}}
"aix-lineno-1b.exe"}
 
{"Relocatable test 1" "-r"
"" {aix-rel-1.s}
{{objdump -hr aix-rel-1.od}} "aix-rel-1.ro"}
 
{".ref test 1" "-efoo1"
"" {aix-ref-1.s}
{{objdump -dr aix-ref-1-SIZE.od}}
"aix-ref-1"}
 
{"Weak test 1 (rel)" "-r"
"" {aix-weak-1a.s aix-weak-1b.s}
{{nm {} aix-weak-1-rel.nd} {objdump -h aix-weak-1-rel.hd}}
"aix-weak-1.o"}
 
{"Weak test 1 (shared, nogc)" "-shared -bE:aix-weak-1.ex -bnogc"
"" {aix-weak-1a.s aix-weak-1b.s}
{{nm {} aix-weak-1-dso.nd} {objdump -h aix-weak-1-dso.hd}
{nm -D aix-weak-1-dso.dnd}}
"aix-weak-1-nogc.so"}
 
{"Weak test 1 (shared, gc)" "-shared -bE:aix-weak-1.ex"
"" {aix-weak-1a.s aix-weak-1b.s}
{{nm {} aix-weak-1-gcdso.nd} {objdump -h aix-weak-1-gcdso.hd}
{nm -D aix-weak-1-gcdso.dnd}}
"aix-weak-1-gc.so"}
 
{"Weak test 2 (library 1)" "-shared -bE:aix-weak-2a.ex"
"" {aix-weak-2a.s}
{{nm -D aix-weak-2a.nd}}
"aix-weak-2a.so"}
 
{"Weak test 2 (library 2)" "-shared -bE:aix-weak-2a.ex"
"" {aix-weak-2b.s}
{{nm -D aix-weak-2b.nd}}
"aix-weak-2b.so"}
 
{"Weak test 2 (main library)"
"-shared -bE:aix-weak-2c.ex tmpdir/aix-weak-2a.so tmpdir/aix-weak-2b.so"
"" {aix-weak-2c.s}
{{nm {} aix-weak-2c.nd} {objdump {-sj.data -R} aix-weak-2c.od}}
"aix-weak-2c.so"}
 
{"Weak test 3 (library)" "-shared -bE:aix-weak-3a.ex"
"" {aix-weak-3a.s}
{}
"aix-weak-3a.so"}
 
{"Weak test 3 (main, dynamic)" "-e.main tmpdir/aix-weak-3a.so"
"" {aix-weak-3b.s}
{{objdump -Dzrj.data aix-weak-3-SIZE.dd}}
"aix-weak-3"}
 
{"TOC test 1" "-shared -bE:aix-toc-1.ex"
"" {aix-toc-1a.s aix-toc-1b.s}
{{objdump -dr aix-toc-1-SIZE.dd}}
"aix-toc-1.so"}
}
 
foreach test $aix52tests {
foreach { name ldopts asopts sources tools output } $test {
run_aix_test 32 $name $ldopts $asopts $sources $tools $output
run_aix_test 64 $name $ldopts $asopts $sources $tools $output
}
}
 
run_dump_test "aix-glink-1-32"
run_dump_test "aix-glink-1-64"
run_dump_test "aix-glink-3-32"
run_dump_test "aix-glink-3-64"
run_dump_test "aix-weak-3-32"
run_dump_test "aix-weak-3-64"
/testsuite/ld-powerpc/apuinfo2.s
0,0 → 1,8
.text
.global apuinfo2
apuinfo2:
evstdd 29,8(1)
mfbbear 29
mfpmr 29, 27
dcbtstls 1, 29, 28
rfmci
/testsuite/ld-powerpc/aix-export-1-full.dd
0,0 → 1,21
 
.*
 
 
Disassembly of section .data:
 
0*10000000 <main1>:
*10000000: 10 00 00 08 .*
 
0*10000004 <_main2>:
*10000004: 10 00 00 0c .*
 
0*10000008 <lib1>:
*10000008: 11 11 00 01 .*
 
0*1000000c <_lib2>:
*1000000c: 11 11 00 02 .*
 
0*10000010 <lib3>:
*10000010: 11 11 00 03 .*
*10000014: 00 00 00 00 .*
/testsuite/ld-powerpc/aix-glink-2a.s
0,0 → 1,41
.toc
 
.macro defabs,type,name,value
\type \name
\name = \value
.endm
 
.macro deffun,type,name,fn
\type \name
.csect \name\()[DS]
\name\():
.if size == 32
.long .\name\()[PR],TOC[TC0],0
.else
.llong .\name\()[PR],TOC[TC0],0
.endif
 
.globl .\name
.csect .\name\()[PR]
.\name\():
nop
.endm
 
.macro defdata,type,name,contents
\type \name
.csect \name\()[RW]
\name\():
.long \contents
.endm
 
defabs .globl,a1,0xf100
deffun .globl,a2
defdata .globl,a3,0x1100
 
defabs .globl,b1,0xf200
deffun .globl,b2
defdata .globl,b3,0x2200
 
defabs .weak,c1,0xf300
deffun .weak,c2
defdata .weak,c3,0x3300
/testsuite/ld-powerpc/aix-abs-reloc-1.s
0,0 → 1,4
.globl foo
.csect foo[RW]
foo:
.long bar
/testsuite/ld-powerpc/oldtlslib.s
0,0 → 1,29
.global __tls_get_addr,__tls_get_addr_opt,gd,ld
.global .__tls_get_addr,.__tls_get_addr_opt
.type .__tls_get_addr,@function
.type .__tls_get_addr_opt,@function
 
.section ".opd","aw",@progbits
__tls_get_addr:
__tls_get_addr_opt:
.align 3
.quad .__tls_get_addr
.quad .TOC.@tocbase
.quad 0
.size __tls_get_addr,24
.size __tls_get_addr_opt,24
 
.section ".tbss","awT",@nobits
.align 3
gd: .space 8
 
.section ".tdata","awT",@progbits
.align 2
ld: .long 0xc0ffee
 
.text
.__tls_get_addr:
.__tls_get_addr_opt:
blr
.size .__tls_get_addr,. - .__tls_get_addr
.size .__tls_get_addr_opt,. - .__tls_get_addr_opt
/testsuite/ld-powerpc/tls32.d
0,0 → 1,50
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <_start>:
1800094: 3c 62 00 00 addis r3,r2,0
1800098: 38 63 90 3c addi r3,r3,-28612
180009c: 3c 62 00 00 addis r3,r2,0
18000a0: 38 63 10 00 addi r3,r3,4096
18000a4: 3c 62 00 00 addis r3,r2,0
18000a8: 38 63 90 20 addi r3,r3,-28640
18000ac: 3c 62 00 00 addis r3,r2,0
18000b0: 38 63 10 00 addi r3,r3,4096
18000b4: 39 23 80 24 addi r9,r3,-32732
18000b8: 3d 23 00 00 addis r9,r3,0
18000bc: 81 49 80 28 lwz r10,-32728\(r9\)
18000c0: 3d 22 00 00 addis r9,r2,0
18000c4: a1 49 90 30 lhz r10,-28624\(r9\)
18000c8: 89 42 90 34 lbz r10,-28620\(r2\)
18000cc: 3d 22 00 00 addis r9,r2,0
18000d0: 99 49 90 38 stb r10,-28616\(r9\)
18000d4: 3c 62 00 00 addis r3,r2,0
18000d8: 38 63 90 00 addi r3,r3,-28672
18000dc: 3c 62 00 00 addis r3,r2,0
18000e0: 38 63 10 00 addi r3,r3,4096
18000e4: 91 43 80 04 stw r10,-32764\(r3\)
18000e8: 3d 23 00 00 addis r9,r3,0
18000ec: 91 49 80 08 stw r10,-32760\(r9\)
18000f0: 3d 22 00 00 addis r9,r2,0
18000f4: b1 49 90 30 sth r10,-28624\(r9\)
18000f8: a1 42 90 14 lhz r10,-28652\(r2\)
18000fc: 3d 22 00 00 addis r9,r2,0
1800100: a9 49 90 18 lha r10,-28648\(r9\)
 
0+1800104 <__tls_get_addr>:
1800104: 4e 80 00 20 blr
Disassembly of section \.got:
 
0+1810128 <_GLOBAL_OFFSET_TABLE_-0x4>:
1810128: 4e 80 00 21 blrl
 
0+181012c <_GLOBAL_OFFSET_TABLE_>:
\.\.\.
/testsuite/ld-powerpc/aix-export-1-all.dd
0,0 → 1,11
 
.*
 
 
Disassembly of section \.data:
 
0*10000000 <main1>:
*10000000: 10 00 00 04 .*
 
0*10000004 <lib1>:
*10000004: 11 11 00 01 .*
/testsuite/ld-powerpc/aix-glink-2-32.dd
0,0 → 1,69
 
tmpdir/aix-glink-2: file format aixcoff-rs6000
 
 
Disassembly of section \.text:
 
10000000 <\.b1>:
10000000: 60 00 00 00 oril r0,r0,0
 
10000004 <\.b2>:
10000004: 60 00 00 00 oril r0,r0,0
 
10000008 <\.b3>:
10000008: 60 00 00 00 oril r0,r0,0
 
1000000c <\.main>:
1000000c: 48 00 f1 03 bla f100 <.*>
10000010: 48 00 00 21 bl 10000030 <\.a2>
10000014: 48 00 00 41 bl 10000054 <\.a3>
10000018: 4b ff ff e9 bl 10000000 <\.b1>
1000001c: 4b ff ff e9 bl 10000004 <\.b2>
10000020: 4b ff ff e9 bl 10000008 <\.b3>
10000024: 48 00 f5 03 bla f500 <.*>
10000028: 48 00 00 51 bl 10000078 <\.c2>
1000002c: 48 00 00 71 bl 1000009c <\.c3>
 
10000030 <\.a2>:
10000030: 81 82 00 00 l r12,0\(r2\)
10000034: 90 41 00 14 st r2,20\(r1\)
10000038: 80 0c 00 00 l r0,0\(r12\)
1000003c: 80 4c 00 04 l r2,4\(r12\)
10000040: 7c 09 03 a6 mtctr r0
10000044: 4e 80 04 20 bctr
10000048: 00 00 00 00 \.long 0x0
1000004c: 00 0c 80 00 \.long 0xc8000
10000050: 00 00 00 00 \.long 0x0
 
10000054 <\.a3>:
10000054: 81 82 00 04 l r12,4\(r2\)
10000058: 90 41 00 14 st r2,20\(r1\)
1000005c: 80 0c 00 00 l r0,0\(r12\)
10000060: 80 4c 00 04 l r2,4\(r12\)
10000064: 7c 09 03 a6 mtctr r0
10000068: 4e 80 04 20 bctr
1000006c: 00 00 00 00 \.long 0x0
10000070: 00 0c 80 00 \.long 0xc8000
10000074: 00 00 00 00 \.long 0x0
 
10000078 <\.c2>:
10000078: 81 82 00 08 l r12,8\(r2\)
1000007c: 90 41 00 14 st r2,20\(r1\)
10000080: 80 0c 00 00 l r0,0\(r12\)
10000084: 80 4c 00 04 l r2,4\(r12\)
10000088: 7c 09 03 a6 mtctr r0
1000008c: 4e 80 04 20 bctr
10000090: 00 00 00 00 \.long 0x0
10000094: 00 0c 80 00 \.long 0xc8000
10000098: 00 00 00 00 \.long 0x0
 
1000009c <\.c3>:
1000009c: 81 82 00 0c l r12,12\(r2\)
100000a0: 90 41 00 14 st r2,20\(r1\)
100000a4: 80 0c 00 00 l r0,0\(r12\)
100000a8: 80 4c 00 04 l r2,4\(r12\)
100000ac: 7c 09 03 a6 mtctr r0
100000b0: 4e 80 04 20 bctr
100000b4: 00 00 00 00 \.long 0x0
100000b8: 00 0c 80 00 \.long 0xc8000
100000bc: 00 00 00 00 \.long 0x0
/testsuite/ld-powerpc/tlstoc.d
0,0 → 1,37
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <\.__tls_get_addr>:
.* 4e 80 00 20 blr
 
.* <_start>:
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 40 addi r3,r3,-28608
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 48 addi r3,r3,-28600
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 50 addi r9,r3,-32688
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 58 lwz r10,-32680\(r9\)
.* e9 22 80 40 ld r9,-32704\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 68 lhz r10,-28568\(r9\)
.* 89 4d 90 70 lbz r10,-28560\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 78 stb r10,-28552\(r9\)
/testsuite/ld-powerpc/tlsso32.d
0,0 → 1,46
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
.* <_start>:
.*: 38 7f ff e0 addi r3,r31,-32
.*: 48 00 00 01 bl .*
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 00 00 01 bl .*
.*: 38 7f ff e8 addi r3,r31,-24
.*: 48 01 01 95 bl .*<__tls_get_addr@plt>
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 01 01 8d bl .*<__tls_get_addr@plt>
.*: 39 23 80 20 addi r9,r3,-32736
.*: 3d 23 00 00 addis r9,r3,0
.*: 81 49 80 24 lwz r10,-32732\(r9\)
.*: 81 3f ff f0 lwz r9,-16\(r31\)
.*: 7d 49 12 2e lhzx r10,r9,r2
.*: 89 42 00 00 lbz r10,0\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: 99 49 00 00 stb r10,0\(r9\)
.*: 38 7e ff d8 addi r3,r30,-40
.*: 48 00 00 01 bl .*
.*: 38 7e ff f4 addi r3,r30,-12
.*: 48 00 00 01 bl .*
.*: 91 43 80 04 stw r10,-32764\(r3\)
.*: 3d 23 00 00 addis r9,r3,0
.*: 91 49 80 08 stw r10,-32760\(r9\)
.*: 81 3e ff f0 lwz r9,-16\(r30\)
.*: 7d 49 13 2e sthx r10,r9,r2
.*: a1 42 00 00 lhz r10,0\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a9 49 00 00 lha r10,0\(r9\)
Disassembly of section \.got:
 
.* <\.got>:
\.\.\.
.*: 4e 80 00 21 blrl
.*: 00 01 03 ec .*
\.\.\.
/testsuite/ld-powerpc/aix-glink-3-64.d
0,0 → 1,5
#name: Glink test 3 (error) (64-bit)
#source: aix-glink-3.s
#as: -a64
#ld: -b64 -bnoautoimp tmpdir/aix64-glink-3b.so
#error: undefined reference to `\.g'
/testsuite/ld-powerpc/tls32.g
0,0 → 1,11
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -sj.got
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.got:
1810128 4e800021 00000000 00000000 00000000 .*
/testsuite/ld-powerpc/tlstocso.d
0,0 → 1,60
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <00000010\.plt_call\.__tls_get_addr(|_opt)\+0>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff e5 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff d9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 28 addi r3,r2,-32728
.* 4b ff ff cd bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff c1 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* e9 22 80 50 ld r9,-32688\(r2\)
.* 7d 49 6a 2e lhzx r10,r9,r13
.* 89 4d 00 00 lbz r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 00 00 00 00 .*
.* 00 01 02 18 .*
.* <__glink_PLTresolve>:
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/testsuite/ld-powerpc/vxworks-relax-2.s
0,0 → 1,15
.globl _start
_start:
bl elsewhere
lis 9,elsewhere@ha
la 0,elsewhere@l(9)
bl undefined
b .
 
.section .far,"ax",@progbits
elsewhere:
bl _start
b .
 
.section .pad
.space 0x4000000
/testsuite/ld-powerpc/tlstoc.g
0,0 → 1,15
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
100101a0 00000000 00000001 00000000 00000000 .*
100101b0 00000000 00000001 00000000 00000000 .*
100101c0 00000000 00000001 00000000 00000000 .*
100101d0 00000000 00000001 00000000 00000000 .*
100101e0 ffffffff ffff8060 00000000 00000000 .*
/testsuite/ld-powerpc/vxworks-relax.s
0,0 → 1,14
.globl _start
_start:
bl elsewhere
lis 9,elsewhere@ha
la 0,elsewhere@l(9)
b .
 
.section .far,"ax",@progbits
elsewhere:
bl _start
b .
 
.section .pad
.space 0x4000000
/testsuite/ld-powerpc/tlsso32.g
0,0 → 1,13
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -sj.got
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.got:
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 4e800021 000103ec 00000000 .*
.* 00000000 .*
/testsuite/ld-powerpc/tlslib32.s
0,0 → 1,16
.global __tls_get_addr,__tls_get_addr_opt,gd,ld
.type __tls_get_addr,@function
.type __tls_get_addr_opt,@function
 
.section ".tbss","awT",@nobits
.align 2
gd: .space 4
 
.section ".tdata","awT",@progbits
.align 2
ld: .long 0xc0ffee
 
.text
__tls_get_addr:
__tls_get_addr_opt:
blr
/testsuite/ld-powerpc/tlstocso.g
0,0 → 1,15
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 000186c0 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 .*
/testsuite/ld-powerpc/aix-export-2.s
0,0 → 1,15
.comm x,4
/testsuite/ld-powerpc/aix-glink-2c.ex
0,0 → 1,6
a1
a2
a3
c1
c2
c3
/testsuite/ld-powerpc/vxworks-relax.rd
0,0 → 1,9
 
Relocation section '.rela.text' at offset 0x4010150 contains 6 entries:
Offset Info Type Sym.Value Sym. Name \+ Addend
00080012 00000106 R_PPC_ADDR16_HA 00080000 .text \+ 4000020
00080016 00000104 R_PPC_ADDR16_LO 00080000 .text \+ 4000020
00080006 00000106 R_PPC_ADDR16_HA 00080000 .text \+ 4000020
0008000a 00000104 R_PPC_ADDR16_LO 00080000 .text \+ 4000020
0408002a 00000306 R_PPC_ADDR16_HA 00080000 _start \+ 0
0408002e 00000304 R_PPC_ADDR16_LO 00080000 _start \+ 0
/testsuite/ld-powerpc/attr-gnu-4-00.d
0,0 → 1,7
#source: attr-gnu-4-0.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
/testsuite/ld-powerpc/attr-gnu-4-21.d
0,0 → 1,6
#source: attr-gnu-4-2.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses hard float, .* uses soft float
#target: powerpc*-*-*
/testsuite/ld-powerpc/tlsmark32.d
0,0 → 1,25
#source: tlsmark32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <_start>:
1800094: 48 00 00 14 b 18000a8 <_start\+0x14>
1800098: 38 63 90 00 addi r3,r3,-28672
180009c: 80 83 00 00 lwz r4,0\(r3\)
18000a0: 3c 62 00 00 addis r3,r2,0
18000a4: 48 00 00 0c b 18000b0 <_start\+0x1c>
18000a8: 3c 62 00 00 addis r3,r2,0
18000ac: 4b ff ff ec b 1800098 <_start\+0x4>
18000b0: 38 63 10 00 addi r3,r3,4096
18000b4: 80 83 80 00 lwz r4,-32768\(r3\)
 
0+18000b8 <__tls_get_addr>:
18000b8: 4e 80 00 20 blr
#pass
/testsuite/ld-powerpc/aix-core-sec-1.hd
0,0 → 1,11
#...
Sections:
.*
* 0 * \.text * 0+8 .*
* CONTENTS, ALLOC, LOAD, CODE
* 1 * \.data * 0+0 .*
* ALLOC, LOAD, DATA
* 2 * \.bss * 0+0 .*
* ALLOC
* 3 * \.loader .*
* CONTENTS, ALLOC, LOAD
/testsuite/ld-powerpc/aix-weak-2c.nd
0,0 → 1,10
0*dddd1111 C c1
0*cccc2222 C c2
0*cccc3333 C c3
0*cccc4444 C c4
* U d1
0*ffff2222 C d2
* U d3
* U d4
0*10000000 d foo
0*10000000 D foo
/testsuite/ld-powerpc/tls32.s
0,0 → 1,80
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 2
gd0: .space 4
ld0: .space 4
ld1: .space 4
ld2: .space 4
ie0: .space 4
le0: .space 4
le1: .space 4
 
.section ".tdata","awT",@progbits
.align 2
gd4: .long 0x12345678
ld4: .long 0x23456789
ld5: .long 0x3456789a
ld6: .long 0x456789ab
ie4: .long 0x56789abc
le4: .long 0x6789abcd
le5: .long 0x789abcde
 
.text
_start:
#extern syms
#GD
addi 3,31,gd@got@tlsgd #R_PPC_GOT_TLSGD16 gd
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
 
#LD
addi 3,31,ld@got@tlsld #R_PPC_GOT_TLSLD16 ld
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
 
#global syms
#GD
addi 3,31,gd0@got@tlsgd #R_PPC_GOT_TLSGD16 gd0
bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr
 
#LD
addi 3,31,ld0@got@tlsld #R_PPC_GOT_TLSLD16 ld0
bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr
 
addi 9,3,ld0@dtprel #R_PPC_DTPREL16 ld0
 
addis 9,3,ld1@dtprel@ha #R_PPC_DTPREL16_HA ld1
lwz 10,ld1@dtprel@l(9) #R_PPC_DTPREL16_LO ld1
 
#IE
lwz 9,ie0@got@tprel(31) #R_PPC_GOT_TPREL16 ie0
lhzx 10,9,ie0@tls #R_PPC_TLS ie0
 
#LE
lbz 10,le0@tprel(2) #R_PPC_TPREL16 le0
 
addis 9,2,le1@tprel@ha #R_PPC_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC_TPREL16_LO le1
 
#local syms, use a different got reg too.
#GD
addi 3,30,gd4@got@tlsgd #R_PPC_GOT_TLSGD16 gd4
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
 
#LD
addi 3,30,ld4@got@tlsld #R_PPC_GOT_TLSLD16 ld4
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
 
stw 10,ld4@dtprel(3) #R_PPC_DTPREL16 ld4
 
addis 9,3,ld5@dtprel@ha #R_PPC_DTPREL16_HA ld5
stw 10,ld5@dtprel@l(9) #R_PPC_DTPREL16_LO ld5
 
#IE
lwz 9,ie0@got@tprel(30) #R_PPC_GOT_TPREL16 ie4
sthx 10,9,ie0@tls #R_PPC_TLS ie4
 
#LE
lhz 10,le4@tprel(2) #R_PPC_TPREL16 le4
 
addis 9,2,le5@tprel@ha #R_PPC_TPREL16_HA le5
lha 10,le5@tprel@l(9) #R_PPC_TPREL16_LO le5
 
/testsuite/ld-powerpc/aix-weak-2c.s
0,0 → 1,11
.globl foo
.csect foo[DS]
foo:
.long c1
.long c2
.long c3
.long c4
.long d1
.long d2
.long d3
.long d4
/testsuite/ld-powerpc/tls32.t
0,0 → 1,12
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -sj.tdata
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.tdata:
1810108 12345678 23456789 3456789a 456789ab .*
1810118 56789abc 6789abcd 789abcde 00c0ffee .*
/testsuite/ld-powerpc/tlsso32.r
0,0 → 1,129
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[[ 0-9]+\] \.hash +.*
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+70 0+ +AX +0 +0 +1
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+1c 0+ WAT +0 +0 +4
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+1c 0+ WAT +0 +0 +4
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS .* 0+34 04 WAX +0 +0 +4
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
Elf file type is DYN \(Shared object file\)
Entry point 0x[0-9a-f]+
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+LOAD .* R E 0x10000
+LOAD .* RWE 0x10000
+DYNAMIC .* RW +0x4
+TLS .* 0x0+1c 0x0+38 R +0x4
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic \.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
[0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_DTPMOD32 +0+
[0-9a-f ]+R_PPC_DTPREL32 +0+
[0-9a-f ]+R_PPC_DTPMOD32 +0+
[0-9a-f ]+R_PPC_DTPMOD32 +0+ +gd \+ 0
[0-9a-f ]+R_PPC_DTPREL32 +0+ +gd \+ 0
[0-9a-f ]+R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
[0-9a-f ]+R_PPC_DTPREL32 +0+1c +gd0 \+ 0
[0-9a-f ]+R_PPC_TPREL32 +0+2c +ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* NOTYPE +GLOBAL +DEFAULT +ABS __end
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* NOTYPE +GLOBAL +DEFAULT +ABS __end
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
/testsuite/ld-powerpc/tlstoc.s
0,0 → 1,88
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 3
gd0: .space 8
ld0: .space 8
ld1: .space 8
ld2: .space 8
ie0: .space 8
le0: .space 8
le1: .space 8
 
.section ".tdata","awT",@progbits
.align 3
gd4: .quad 0x123456789abcdef0
ld4: .quad 0x23456789abcdef01
ld5: .quad 0x3456789abcdef012
ld6: .quad 0x456789abcdef0123
ie4: .quad 0x56789abcdef01234
le4: .quad 0x6789abcdef012345
le5: .quad 0x789abcdef0123456
 
.text
_start:
#extern syms
#GD
addi 3,2,.Lgd@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lgd:
.quad gd@dtpmod
.quad gd@dtprel
.text
#LD
addi 3,2,.Lld@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lld:
.quad ld@dtpmod
.quad 0
.text
 
#global syms
#GD
addi 3,2,.Lgd0@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lgd0:
.quad gd0@dtpmod
.quad gd0@dtprel
.text
#LD
addi 3,2,.Lld0@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lld0:
.quad ld0@dtpmod
.quad 0
.text
 
addi 9,3,ld0@dtprel
 
addis 9,3,ld1@dtprel@ha
lwz 10,ld1@dtprel@l(9)
 
ld 9,.Lld2@toc(2)
ldx 10,9,3
.section .toc,"aw",@progbits
.Lld2:
.quad ld2@dtprel
.text
 
#IE
ld 9,.Lie0@toc(2)
lhzx 10,9,.Lie0@tls
.section .toc,"aw",@progbits
.Lie0:
.quad ie0@tprel
.text
 
#LE
lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
 
addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1
/testsuite/ld-powerpc/attr-gnu-8-23.d
0,0 → 1,6
#source: attr-gnu-8-2.s
#source: attr-gnu-8-3.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses vector ABI "SPE", .* uses "AltiVec"
#target: powerpc*-*-*
/testsuite/ld-powerpc/tlstoc.t
0,0 → 1,14
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
10010148 00c0ffee 00000000 12345678 9abcdef0 .*
10010158 23456789 abcdef01 3456789a bcdef012 .*
10010168 456789ab cdef0123 56789abc def01234 .*
10010178 6789abcd ef012345 789abcde f0123456 .*
/testsuite/ld-powerpc/tlstocso.r
0,0 → 1,125
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[[ 0-9]+\] \.hash .*
+\[[ 0-9]+\] \.dynsym .*
+\[[ 0-9]+\] \.dynstr .*
+\[[ 0-9]+\] \.rela\.dyn .*
+\[[ 0-9]+\] \.rela\.plt .*
+\[[ 0-9]+\] \.text .*
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
+\[[ 0-9]+\] \.symtab .*
+\[[ 0-9]+\] \.strtab .*
#...
 
Elf file type is DYN \(Shared object file\)
Entry point 0x[0-9a-f]+
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+LOAD .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 11 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
[0-9a-f ]+R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION +LOCAL +DEFAULT +1
.* SECTION +LOCAL +DEFAULT +2
.* SECTION +LOCAL +DEFAULT +3
.* SECTION +LOCAL +DEFAULT +4
.* SECTION +LOCAL +DEFAULT +5
.* SECTION +LOCAL +DEFAULT +6
.* SECTION +LOCAL +DEFAULT +7
.* SECTION +LOCAL +DEFAULT +8
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0
.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
.* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0
.* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
.* TLS +GLOBAL +DEFAULT +UND gd
.* TLS +GLOBAL +DEFAULT +8 le0
.* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL +DEFAULT +8 ld0
.* TLS +GLOBAL +DEFAULT +8 le1
.* TLS +GLOBAL +DEFAULT +UND ld
.* NOTYPE +GLOBAL +DEFAULT +6 _start
.* TLS +GLOBAL +DEFAULT +8 ld2
.* TLS +GLOBAL +DEFAULT +8 ld1
.* NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL +DEFAULT +ABS _edata
.* NOTYPE +GLOBAL +DEFAULT +ABS _end
.* TLS +GLOBAL +DEFAULT +8 gd0
.* TLS +GLOBAL +DEFAULT +8 ie0
/testsuite/ld-powerpc/tlsso32.t
0,0 → 1,11
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -sj.tdata
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Contents of section \.tdata:
.* 12345678 23456789 3456789a 456789ab .*
.* 56789abc 6789abcd 789abcde .*
/testsuite/ld-powerpc/tlstocso.t
0,0 → 1,13
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/testsuite/ld-powerpc/attr-gnu-12-2.s
0,0 → 1,13
.gnu_attribute 12,2
/testsuite/ld-powerpc/tlsmark32.s
0,0 → 1,19
.section ".tdata","awT",@progbits
x: .int 1
 
.text
.global _start
_start:
b .L2
 
.L1:
bl __tls_get_addr(x@tlsgd)
lwz 4,0(3)
addi 3,31,x@got@tlsld
b .L3
.L2:
addi 3,31,x@got@tlsgd
b .L1
.L3:
bl __tls_get_addr(x@tlsld)
lwz 4,x@dtprel(3)
/testsuite/ld-powerpc/aix-glink-1-32.d
0,0 → 1,5
#name: Glink test 1 (error) (32-bit)
#source: aix-glink-1.s
#as: -a32
#ld: -b32 -bM:SRE -bnogc
#error: undefined reference to `\.ext'
/testsuite/ld-powerpc/aix-lineno-1a.dd
0,0 → 1,24
 
.*
 
 
Disassembly of section \.text:
 
0*10000000 <\.foo>:
Four
*10000000: 60 00 00 00 (oril r0,r0,0|nop)
and
*10000004: 60 00 00 00 (oril r0,r0,0|nop)
twenty
*10000008: 60 00 00 00 (oril r0,r0,0|nop)
blackbirds
*1000000c: 60 00 00 00 (oril r0,r0,0|nop)
baked
*10000010: 60 00 00 00 (oril r0,r0,0|nop)
 
0*10000014 <\.main>:
in
a
*10000014: 4b ff ff ed bl 10000000 <\.foo>
pie
*10000018: 60 00 00 00 (oril r0,r0,0|nop)
/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.nd
0,0 → 1,8
* U foo
0*10000000 d x
0*10000000 D x
0*10000010 d x
0*10000004 d x1
0*10000004 D x1
0*10000014 d x2
0*10000014 D x2
/testsuite/ld-powerpc/tlsopt4.d
0,0 → 1,48
#source: tlsopt4.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <\.__tls_get_addr>:
100000e8: 4e 80 00 20 blr
 
Disassembly of section \.opt1:
 
0+100000ec <\.opt1>:
100000ec: 3c 6d 00 00 addis r3,r13,0
100000f0: 2c 24 00 00 cmpdi r4,0
100000f4: 41 82 00 10 beq- .*
100000f8: 60 00 00 00 nop
100000fc: 38 63 90 10 addi r3,r3,-28656
10000100: 48 00 00 0c b .*
10000104: 60 00 00 00 nop
10000108: 38 63 90 10 addi r3,r3,-28656
 
Disassembly of section \.opt2:
 
0+1000010c <\.opt2>:
1000010c: 3c 6d 00 00 addis r3,r13,0
10000110: 2c 24 00 00 cmpdi r4,0
10000114: 41 82 00 08 beq- .*
10000118: 3c 6d 00 00 addis r3,r13,0
1000011c: 60 00 00 00 nop
10000120: 38 63 90 10 addi r3,r3,-28656
 
Disassembly of section \.opt3:
 
0+10000124 <\.opt3>:
10000124: 3c 6d 00 00 addis r3,r13,0
10000128: 48 00 00 0c b .*
1000012c: 3c 6d 00 00 addis r3,r13,0
10000130: 48 00 00 10 b .*
10000134: 60 00 00 00 nop
10000138: 38 63 90 10 addi r3,r3,-28656
1000013c: 48 00 00 0c b .*
10000140: 60 00 00 00 nop
10000144: 38 63 90 08 addi r3,r3,-28664
/testsuite/ld-powerpc/tlsopt3_32.d
0,0 → 1,25
#source: tlsopt3_32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
0+1800094 <__tls_get_addr>:
1800094: 4e 80 00 20 blr
 
Disassembly of section \.no_opt3:
 
0+1800098 <\.no_opt3>:
1800098: 38 6d ff ec addi r3,r13,-20
180009c: 48 00 00 0c b .*
18000a0: 38 6d ff f4 addi r3,r13,-12
18000a4: 48 00 00 0c b .*
18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr>
18000ac: 48 00 00 08 b .*
18000b0: 4b ff ff e5 bl 1800094 <__tls_get_addr>
#pass
/testsuite/ld-powerpc/attr-gnu-4-1.s
0,0 → 1,25
.gnu_attribute 4,1
/testsuite/ld-powerpc/aix-abs-branch-1.dd
0,0 → 1,14
 
.*
 
 
Disassembly of section \.text:
 
0*10000000 <foo>:
*10000000:.* bla * 144d000 <.*>
*10000004:.* l(wz|) * r1,80\(r1\)
*10000008:.* bla * 1451000 <.*>
*1000000c:.* (oril * r0,r0,0|nop)
*10000010:.* bla * 1452800 <.*>
*10000014:.* (oril * r0,r0,0|nop)
*10000018:.* bla * 1450000 <.*>
/testsuite/ld-powerpc/attr-gnu-4-13.d
0,0 → 1,6
#source: attr-gnu-4-1.s
#source: attr-gnu-4-3.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses double-precision hard float, .* uses single-precision hard float
#target: powerpc*-*-*
/testsuite/ld-powerpc/attr-gnu-8-1.s
0,0 → 1,6
.gnu_attribute 8,1
/testsuite/ld-powerpc/aix-weak-1a.s
0,0 → 1,24
.comm a,4
.comm b,4
.globl c
.csect c[RW],2
c:
.long 0x11111111
.weak d
.csect d[RW],2
d:
.long 0x22222222
 
# Same again, with weak common symbols
.weak e
.comm e,4
.weak f
.comm f,4
.globl g
.csect g[RW],2
g:
.long 0x33333333
.weak h
.csect h[RW],2
h:
.long 0x44444444
/testsuite/ld-powerpc/aix-gc-1.s
0,0 → 1,55
.macro loadtoc,sym
.if size == 32
lwz 1,\sym(2)
.else
ld 1,\sym(2)
.endif
.endm
 
.toc
LC01: .tc indirect1[TC],indirect1[RW]
LC02: .tc block[TC],block[RW]
 
.csect .unused_local[PR]
.unused_local:
bl .unused_global
 
.globl .init_function
.csect .init_function[PR]
.init_function:
loadtoc LC01
 
.globl .fini_function
.csect .fini_function[PR]
.fini_function:
loadtoc LC02
 
.globl .unused_global
.csect .unused_global[PR]
.unused_global:
bl .unused_local
 
.globl .exported_global
.csect .exported_global[PR]
.exported_global:
bl .indirect2
 
.globl .indirect1
.csect .indirect1[PR]
.indirect1:
lwz 8,4(8)
 
.csect .indirect2[PR]
.indirect2:
lwz 8,8(8)
 
.globl .indirect3
.csect .indirect3[PR]
.indirect3:
lwz 8,12(8)
 
.globl block
.csect block[RW]
block:
.long indirect3
.long 0x11223344
/testsuite/ld-powerpc/attr-gnu-8-11.d
0,0 → 1,10
#source: attr-gnu-8-1.s
#source: attr-gnu-8-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_Vector: Generic
/testsuite/ld-powerpc/attr-gnu-4-34.d
0,0 → 1,6
#source: attr-gnu-4-3.s
#source: attr-gnu-4-4.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 4
#target: powerpc*-*-*
/testsuite/ld-powerpc/vxworks1-lib.nd
0,0 → 1,9
#...
Symbol table '\.dynsym' .*:
#...
.*: 00090400 +0 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _GLOBAL_OFFSET_TABLE_
#...
Symbol table '\.symtab' .*:
#...
.*: 00090400 +0 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _GLOBAL_OFFSET_TABLE_
#pass
/testsuite/ld-powerpc/aix-weak-3b.s
0,0 → 1,30
.globl x1
.csect x1[RW]
x1:
.long 0x0102
 
.weak x2
.csect x2[RW]
x2:
.long 0x0304
 
.toc
Tx1:
.tc x1[TC],x1
Tx2:
.tc x2[TC],x2
Tx3:
.tc x3[TC],x3
 
.globl .main
.csect .main[PR]
.main:
.if size == 32
lwz 1,Tx1(2)
lwz 1,Tx2(2)
lwz 1,Tx3(2)
.else
ld 1,Tx1(2)
ld 1,Tx2(2)
ld 1,Tx3(2)
.endif
/testsuite/ld-powerpc/aix-weak-2c.od
0,0 → 1,13
 
.*
 
DYNAMIC RELOCATION RECORDS
OFFSET * TYPE * VALUE
0*10000010 R_POS * d1
0*10000018 R_POS * d3
0*1000001c R_POS * d4
 
 
Contents of section \.data:
0*10000000 dddd1111 cccc2222 cccc3333 cccc4444 .*
0*10000010 00000000 ffff2222 00000000 00000000 .*
/testsuite/ld-powerpc/vxworks1-lib.s
0,0 → 1,38
.text
.globl foo
.type foo, @function
foo:
stwu r1,-24(r1)
mflr r0
stw r0,28(r1)
lis r30,__GOTT_BASE__@ha
lwz r30,__GOTT_BASE__@l(r30)
lwz r30,__GOTT_INDEX__(r30)
lwz r1,x@got(r30)
lwz r0,0(r1)
addi r0,r0,1
stw r0,0(r1)
bl slocal
bl sglobal@plt
bl sexternal@plt
lwz r0,28(r1)
mtlr r0
addi r1,r1,24
blr
.size foo, .-foo
 
.type slocal, @function
slocal:
blr
.size slocal, .-slocal
 
.globl sglobal
.type sglobal, @function
sglobal:
blr
.size sglobal, .-sglobal
 
.data
.4byte slocal
 
.comm x,4,4
/testsuite/ld-powerpc/tlsopt4.s
0,0 → 1,39
.section ".tbss","awT",@nobits
.global gd0
.align 3
gd0: .space 8
 
.section ".opt1", "ax", %progbits
addi 3,2,gd@got@tlsgd
cmpdi 4,0
beq 0f
bl __tls_get_addr(gd@tlsgd)
nop
b 1f
0:
bl __tls_get_addr(gd@tlsgd)
nop
1:
 
.section ".opt2", "ax", %progbits
addi 3,2,gd@got@tlsgd
cmpdi 4,0
beq 0f
addi 3,2,gd@got@tlsgd
0:
bl __tls_get_addr(gd@tlsgd)
nop
 
.section ".opt3", "ax", %progbits
addi 3,2,gd@got@tlsgd
b 0f
addi 3,2,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr(gd@tlsgd)
nop
b 2f
1:
bl __tls_get_addr(gd0@tlsgd)
nop
2:
/testsuite/ld-powerpc/aix-ref-1-32.od
0,0 → 1,30
 
.*
 
 
Disassembly of section \.text:
 
.* <foo1>:
.*: 60 00 00 00 oril r0,r0,0
.*: R_REF foo2\+.*
.*: 80 22 00 00 l r1,0\(r2\)
.*: R_TOC stuff\+.*
.*: 4e 80 00 20 br
 
.* <foo2>:
.*: 60 00 00 00 oril r0,r0,0
.*: R_REF foo6\+.*
.*: R_REF foo4\+.*
.*: 80 22 00 00 l r1,0\(r2\)
.*: R_TOC stuff\+.*
 
.* <foo4>:
.*: 60 00 00 00 oril r0,r0,0
.*: 80 22 00 00 l r1,0\(r2\)
.*: R_TOC stuff\+.*
 
.* <foo6>:
.*: 60 00 00 00 oril r0,r0,0
.*: 80 22 00 00 l r1,0\(r2\)
.*: R_TOC stuff\+.*
\.\.\.
/testsuite/ld-powerpc/tlsopt3_32.s
0,0 → 1,17
.section ".tbss","awT",@nobits
.global gd0
.align 3
gd0: .space 8
 
.section ".no_opt3", "ax", %progbits
# this section should also not be optimised
addi 3,13,gd@got@tlsgd
b 0f
addi 3,13,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr
b 2f
1:
bl __tls_get_addr
2:
/testsuite/ld-powerpc/aix-gc-1-32.dd
0,0 → 1,67
 
.*
 
 
Disassembly of section \.text:
 
10000000 <\.init_function>:
10000000: 80 22 00 00 l r1,0\(r2\)
 
10000004 <\.fini_function>:
10000004: 80 22 00 04 l r1,4\(r2\)
 
10000008 <\.exported_global>:
10000008: 48 00 00 09 bl 10000010 <\.indirect2>
 
1000000c <\.indirect1>:
1000000c: 81 08 00 04 l r8,4\(r8\)
 
10000010 <\.indirect2>:
10000010: 81 08 00 08 l r8,8\(r8\)
 
10000014 <\.indirect3>:
10000014: 81 08 00 0c l r8,12\(r8\)
 
Disassembly of section \.data:
 
20000000 <block>:
# Pointer to indirect3.
20000000: 20 00 00 98 .*
20000004: 11 22 33 44 .*
 
20000008 <__rtinit>:
#...
 
20000068 <exported_global>:
20000068: 10 00 00 08 .*
2000006c: 20 00 00 a4 .*
20000070: 00 00 00 00 .*
 
20000074 <init_function>:
20000074: 10 00 00 00 .*
20000078: 20 00 00 a4 .*
2000007c: 00 00 00 00 .*
 
20000080 <indirect1>:
20000080: 10 00 00 0c .*
20000084: 20 00 00 a4 .*
20000088: 00 00 00 00 .*
 
2000008c <fini_function>:
2000008c: 10 00 00 04 .*
20000090: 20 00 00 a4 .*
20000094: 00 00 00 00 .*
 
20000098 <indirect3>:
20000098: 10 00 00 14 .*
2000009c: 20 00 00 a4 .*
200000a0: 00 00 00 00 .*
 
200000a4 <TOC>:
# TOC entry for indirect1.
200000a4: 20 00 00 80 .*
 
200000a8 <block>:
# TOC entry for block.
200000a8: 20 00 00 00 .*
200000ac: 00 00 00 00 .*
/testsuite/ld-powerpc/aix-core-sec-1.s
0,0 → 1,5
.globl foo
.csect foo[RO]
foo:
.long 0x12345678
.long 0xdeadbeef
/testsuite/ld-powerpc/aix-lineno-1.txt
0,0 → 1,8
Four
and
twenty
blackbirds
baked
in
a
pie
/testsuite/ld-powerpc/relaxr.d
0,0 → 1,26
 
.*: file format .*
 
Disassembly of section .text:
 
00000000 <_start>:
0: 48 00 00 15 bl 14 <_start\+0x14>
4: 48 00 00 21 bl 24 <_start\+0x24>
8: 48 00 00 0d bl 14 <_start\+0x14>
8: R_PPC_NONE \*ABS\*
c: 48 00 00 19 bl 24 <_start\+0x24>
c: R_PPC_NONE \*ABS\*
10: 48 00 00 00 b 10 <_start\+0x10>
10: R_PPC_REL24 _start
14: 3d 80 00 00 lis r12,0
16: R_PPC_ADDR16_HA near
18: 39 8c 00 00 addi r12,r12,0
1a: R_PPC_ADDR16_LO near
1c: 7d 89 03 a6 mtctr r12
20: 4e 80 04 20 bctr
24: 3d 80 00 00 lis r12,0
26: R_PPC_ADDR16_HA far
28: 39 8c 00 00 addi r12,r12,0
2a: R_PPC_ADDR16_LO far
2c: 7d 89 03 a6 mtctr r12
30: 4e 80 04 20 bctr
/testsuite/ld-powerpc/aix-weak-2a.ex
0,0 → 1,8
c1
c2
c3
c4
d1
d2
d3
d4
/testsuite/ld-powerpc/attr-gnu-12-11.d
0,0 → 1,10
#source: attr-gnu-12-1.s
#source: attr-gnu-12-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_Struct_Return: r3/r4
/testsuite/ld-powerpc/aix-glink-3.s
0,0 → 1,5
.extern .f
.globl __start
.csect __start[PR]
__start:
bl .f
/testsuite/ld-powerpc/tls.d
0,0 → 1,53
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <_start>:
100000e8: 3c 6d 00 00 addis r3,r13,0
100000ec: 60 00 00 00 nop
100000f0: 38 63 90 78 addi r3,r3,-28552
100000f4: 3c 6d 00 00 addis r3,r13,0
100000f8: 60 00 00 00 nop
100000fc: 38 63 10 00 addi r3,r3,4096
10000100: 3c 6d 00 00 addis r3,r13,0
10000104: 60 00 00 00 nop
10000108: 38 63 90 40 addi r3,r3,-28608
1000010c: 3c 6d 00 00 addis r3,r13,0
10000110: 60 00 00 00 nop
10000114: 38 63 10 00 addi r3,r3,4096
10000118: 39 23 80 48 addi r9,r3,-32696
1000011c: 3d 23 00 00 addis r9,r3,0
10000120: 81 49 80 50 lwz r10,-32688\(r9\)
10000124: e9 22 80 10 ld r9,-32752\(r2\)
10000128: 7d 49 18 2a ldx r10,r9,r3
1000012c: 3d 2d 00 00 addis r9,r13,0
10000130: a1 49 90 60 lhz r10,-28576\(r9\)
10000134: 89 4d 90 68 lbz r10,-28568\(r13\)
10000138: 3d 2d 00 00 addis r9,r13,0
1000013c: 99 49 90 70 stb r10,-28560\(r9\)
10000140: 3c 6d 00 00 addis r3,r13,0
10000144: 60 00 00 00 nop
10000148: 38 63 90 00 addi r3,r3,-28672
1000014c: 3c 6d 00 00 addis r3,r13,0
10000150: 60 00 00 00 nop
10000154: 38 63 10 00 addi r3,r3,4096
10000158: f9 43 80 08 std r10,-32760\(r3\)
1000015c: 3d 23 00 00 addis r9,r3,0
10000160: 91 49 80 10 stw r10,-32752\(r9\)
10000164: e9 22 80 08 ld r9,-32760\(r2\)
10000168: 7d 49 19 2a stdx r10,r9,r3
1000016c: 3d 2d 00 00 addis r9,r13,0
10000170: b1 49 90 60 sth r10,-28576\(r9\)
10000174: e9 4d 90 2a lwa r10,-28632\(r13\)
10000178: 3d 2d 00 00 addis r9,r13,0
1000017c: a9 49 90 30 lha r10,-28624\(r9\)
 
0+10000180 <\.__tls_get_addr>:
10000180: 4e 80 00 20 blr
/testsuite/ld-powerpc/aix-glink-2b.s
0,0 → 1,12
.toc
 
.macro deffun,type,name
.globl .\name
.csect .\name\()[PR]
.\name\():
nop
.endm
 
deffun .globl,b1
deffun .globl,b2
deffun .globl,b3
/testsuite/ld-powerpc/tls.g
0,0 → 1,12
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
100101e0 00000000 100181e0 ffffffff ffff8018 .*
100101f0 ffffffff ffff8058 .*
/testsuite/ld-powerpc/aix-glink-1-32.dd
0,0 → 1,44
 
.*
 
 
Disassembly of section \.text:
 
10000000 <\.f1>:
10000000: 4e 80 00 20 br
 
10000004 <\.f2>:
10000004: 48 00 00 05 bl 10000008 <\.f3>
 
10000008 <\.f3>:
10000008: 4e 80 00 20 br
 
1000000c <\.ext>:
1000000c: 81 82 00 00 l r12,0\(r2\)
10000010: 90 41 00 14 st r2,20\(r1\)
10000014: 80 0c 00 00 l r0,0\(r12\)
10000018: 80 4c 00 04 l r2,4\(r12\)
1000001c: 7c 09 03 a6 mtctr r0
10000020: 4e 80 04 20 bctr
10000024: 00 00 00 00 \.long 0x0
10000028: 00 0c 80 00 \.long 0xc8000
1000002c: 00 00 00 00 \.long 0x0
 
Disassembly of section \.data:
 
20000000 <foo>:
20000000: 20 00 00 08 .*
20000004: 10 00 00 0c .*
 
20000008 <f1>:
20000008: 10 00 00 00 .*
2000000c: 20 00 00 20 .*
20000010: 00 00 00 00 .*
 
20000014 <f2>:
20000014: 10 00 00 04 .*
20000018: 20 00 00 20 .*
2000001c: 00 00 00 00 .*
 
20000020 <TOC>:
\.\.\.
/testsuite/ld-powerpc/aix-ref-1.s
0,0 → 1,57
.macro loadtoc,sym
.if size == 32
lwz 1,\sym(2)
.else
ld 1,\sym(2)
.endif
.endm
 
.toc
LC01: .tc stuff[TC],stuff[RW]
 
.globl foo1
.csect foo1[pr]
foo1:
.align 8
nop
loadtoc LC01
 
.globl foo2
.csect foo2[pr]
foo2:
nop
loadtoc LC01
.ref foo4 , foo6
 
.globl foo3
.csect foo3[pr]
foo3:
nop
loadtoc LC01
 
.globl foo4
.csect foo4[pr]
foo4:
nop
loadtoc LC01
 
.globl foo5
.csect foo5[pr]
foo5:
nop
loadtoc LC01
.ref foo3
 
.globl foo6
.csect foo6[pr]
foo6:
nop
loadtoc LC01
 
.csect foo1[pr]
blr
.ref foo2
 
.csect stuff[rw]
stuff:
.long 1
/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.rd
0,0 → 1,9
 
.*
 
RELOCATION RECORDS FOR \[\.data\]:
OFFSET * TYPE * VALUE
0+04 R_POS(|_32) * x
0+08 R_POS(|_32) * foo
0+14 R_POS(|_32) * x\+0xf+0
0+18 R_POS(|_32) * foo
/testsuite/ld-powerpc/aix-glink-2a.ex
0,0 → 1,9
a1
a2
a3
b1
b2
b3
c1
c2
c3
/testsuite/ld-powerpc/aix-glink-2-64.dd
0,0 → 1,73
 
tmpdir/aix64-glink-2: file format aix5coff64-rs6000
 
 
Disassembly of section \.text:
 
0000000010000000 <\.b1>:
10000000: 60 00 00 00 nop
 
0000000010000004 <\.b2>:
10000004: 60 00 00 00 nop
 
0000000010000008 <\.b3>:
10000008: 60 00 00 00 nop
 
000000001000000c <\.main>:
1000000c: 48 00 f1 03 bla f100 <.*>
10000010: 48 00 00 21 bl 10000030 <\.a2>
10000014: 48 00 00 45 bl 10000058 <\.a3>
10000018: 4b ff ff e9 bl 10000000 <\.b1>
1000001c: 4b ff ff e9 bl 10000004 <\.b2>
10000020: 4b ff ff e9 bl 10000008 <\.b3>
10000024: 48 00 f5 03 bla f500 <.*>
10000028: 48 00 00 59 bl 10000080 <\.c2>
1000002c: 48 00 00 7d bl 100000a8 <\.c3>
 
0000000010000030 <\.a2>:
10000030: e9 82 00 00 ld r12,0\(r2\)
10000034: f8 41 00 28 std r2,40\(r1\)
10000038: e8 0c 00 00 ld r0,0\(r12\)
1000003c: e8 4c 00 08 ld r2,8\(r12\)
10000040: 7c 09 03 a6 mtctr r0
10000044: 4e 80 04 20 bctr
10000048: 00 00 00 00 \.long 0x0
1000004c: 00 0c a0 00 \.long 0xca000
10000050: 00 00 00 00 \.long 0x0
10000054: 00 00 00 18 \.long 0x18
 
0000000010000058 <\.a3>:
10000058: e9 82 00 08 ld r12,8\(r2\)
1000005c: f8 41 00 28 std r2,40\(r1\)
10000060: e8 0c 00 00 ld r0,0\(r12\)
10000064: e8 4c 00 08 ld r2,8\(r12\)
10000068: 7c 09 03 a6 mtctr r0
1000006c: 4e 80 04 20 bctr
10000070: 00 00 00 00 \.long 0x0
10000074: 00 0c a0 00 \.long 0xca000
10000078: 00 00 00 00 \.long 0x0
1000007c: 00 00 00 18 \.long 0x18
 
0000000010000080 <\.c2>:
10000080: e9 82 00 10 ld r12,16\(r2\)
10000084: f8 41 00 28 std r2,40\(r1\)
10000088: e8 0c 00 00 ld r0,0\(r12\)
1000008c: e8 4c 00 08 ld r2,8\(r12\)
10000090: 7c 09 03 a6 mtctr r0
10000094: 4e 80 04 20 bctr
10000098: 00 00 00 00 \.long 0x0
1000009c: 00 0c a0 00 \.long 0xca000
100000a0: 00 00 00 00 \.long 0x0
100000a4: 00 00 00 18 \.long 0x18
 
00000000100000a8 <\.c3>:
100000a8: e9 82 00 18 ld r12,24\(r2\)
100000ac: f8 41 00 28 std r2,40\(r1\)
100000b0: e8 0c 00 00 ld r0,0\(r12\)
100000b4: e8 4c 00 08 ld r2,8\(r12\)
100000b8: 7c 09 03 a6 mtctr r0
100000bc: 4e 80 04 20 bctr
100000c0: 00 00 00 00 \.long 0x0
100000c4: 00 0c a0 00 \.long 0xca000
100000c8: 00 00 00 00 \.long 0x0
100000cc: 00 00 00 18 \.long 0x18
/testsuite/ld-powerpc/sdalib.s
0,0 → 1,5
.globl lib_var
.type lib_var, @object
.size lib_var, 2
lib_var:
.word 1
/testsuite/ld-powerpc/aix-rel-1.s
0,0 → 1,5
.globl foo
.csect foo[RW]
foo:
.long .puts
.long foobar
/testsuite/ld-powerpc/aix-rel-1.od
0,0 → 1,22
 
.*
 
# It doesn't matter whether .text, .bss and .debug are listed, as long as
# they're empty. The important thing is that .loader shouldn't appear
# at all.
Sections:
*Idx Name * Size .*
*0 \.text * 0+0 .*
*ALLOC, LOAD, CODE
*1 \.data * 0+8 .*
*CONTENTS, ALLOC, LOAD, RELOC, DATA
*2 \.bss * 0+0 .*
*ALLOC
*3 \.debug * 0+0 .*
RELOCATION RECORDS FOR \[\.data\]:
OFFSET * TYPE * VALUE
0+0 R_POS(|_32) * \.puts
0+4 R_POS(|_32) * foobar
 
 
/testsuite/ld-powerpc/aix-export-1a.s
0,0 → 1,14
.globl lib1
.csect lib1[RW]
lib1:
.long 0x11110001
 
.globl _lib2
.csect _lib2[RW]
_lib2:
.long 0x11110002
 
.globl lib3
.csect lib3[RW]
lib3:
.long 0x11110003
/testsuite/ld-powerpc/attr-gnu-4-01.d
0,0 → 1,10
#source: attr-gnu-4-0.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/testsuite/ld-powerpc/aix-lineno-1.s
0,0 → 1,25
.file "tmpdir/aix-lineno-1.txt"
.csect .foo[PR]
.function .foo,.foo
.foo:
.bf 1
nop
.line 2
nop
.line 3
nop
.line 4
nop
.line 5
nop
.ef 1
 
.globl .main
.csect .main[PR]
.function .main,.main
.main:
.bf 7
bl .foo
.line 2
nop
.ef 7
/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.drd
0,0 → 1,9
 
.*
 
DYNAMIC RELOCATION RECORDS
OFFSET * TYPE * VALUE
0*10000004 R_POS(|_32) * \.data
0*10000008 R_POS(|_32) * foo
0*10000014 R_POS(|_32) * \.data
0*10000018 R_POS(|_32) * foo
/testsuite/ld-powerpc/tls.s
0,0 → 1,92
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 3
gd0: .space 8
ld0: .space 8
ld1: .space 8
ld2: .space 8
ie0: .space 8
le0: .space 8
le1: .space 8
 
.section ".tdata","awT",@progbits
.align 3
gd4: .quad 0x123456789abcdef0
ld4: .quad 0x23456789abcdef01
ld5: .quad 0x3456789abcdef012
ld6: .quad 0x456789abcdef0123
ie4: .quad 0x56789abcdef01234
le4: .quad 0x6789abcdef012345
le5: .quad 0x789abcdef0123456
 
.text
_start:
#extern syms
#GD
addi 3,2,gd@got@tlsgd #R_PPC64_GOT_TLSGD16 gd
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld@got@tlsld #R_PPC64_GOT_TLSLD16 ld
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#global syms
#GD
addi 3,2,gd0@got@tlsgd #R_PPC64_GOT_TLSGD16 gd0
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld0@got@tlsld #R_PPC64_GOT_TLSLD16 ld0
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
addi 9,3,ld0@dtprel #R_PPC64_DTPREL16 ld0
 
addis 9,3,ld1@dtprel@ha #R_PPC64_DTPREL16_HA ld1
lwz 10,ld1@dtprel@l(9) #R_PPC64_DTPREL16_LO ld1
 
ld 9,ld2@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld2
ldx 10,9,3
 
#IE
ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie0
lhzx 10,9,ie0@tls #R_PPC64_TLS ie0
 
#LE
lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
 
addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1
 
#local syms
#GD
addi 3,2,gd4@got@tlsgd #R_PPC64_GOT_TLSGD16 gd4
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld4@got@tlsld #R_PPC64_GOT_TLSLD16 ld4
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
std 10,ld4@dtprel(3) #R_PPC64_DTPREL16_DS ld4
 
addis 9,3,ld5@dtprel@ha #R_PPC64_DTPREL16_HA ld5
stw 10,ld5@dtprel@l(9) #R_PPC64_DTPREL16_LO ld5
 
ld 9,ld6@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld6
stdx 10,9,3
 
#IE
ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie4
sthx 10,9,ie0@tls #R_PPC64_TLS ie4
 
#LE
lwa 10,le4@tprel(13) #R_PPC64_TPREL16 le4
 
addis 9,13,le5@tprel@ha #R_PPC64_TPREL16_HA le5
lha 10,le5@tprel@l(9) #R_PPC64_TPREL16_LO le5
 
/testsuite/ld-powerpc/sdadyn.d
0,0 → 1,8
 
.*: +file format elf32-powerpc
 
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
#...
.* R_PPC_COPY lib_var
#pass
/testsuite/ld-powerpc/tls.t
0,0 → 1,14
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 00c0ffee .*
/testsuite/ld-powerpc/attr-gnu-4-22.d
0,0 → 1,10
#source: attr-gnu-4-2.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/testsuite/ld-powerpc/vxworks1.s
0,0 → 1,14
.text
.globl _start
.type _start,@function
_start:
bl foo@plt
bl sexternal@plt
bl sglobal@plt
.size _start, .-_start
 
.globl sexternal
.type sexternal,@function
sexternal:
blr
.size sexternal, .-sexternal
/testsuite/ld-powerpc/aix-weak-2a.nd
0,0 → 1,8
0*cccc1111 W c1
0*cccc2222 W c2
0*cccc3333 A c3
0*cccc4444 A c4
0*ffff1111 W d1
0*ffff2222 W d2
0*10000000 D d3
0*10000004 D d4
/testsuite/ld-powerpc/vxworks1.rd
0,0 → 1,22
 
Relocation section '\.rela\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
0009040c .*15 R_PPC_JMP_SLOT 00000000 sglobal \+ 0
00090410 .*15 R_PPC_JMP_SLOT 00000000 foo \+ 0
 
Relocation section '\.rela\.text' at offset .* contains 3 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00080c00 .*12 R_PPC_PLTREL24 00080800 \.plt \+ 40
00080c04 .*12 R_PPC_PLTREL24 00080c0c sexternal \+ 0
00080c08 .*12 R_PPC_PLTREL24 00080800 \.plt \+ 20
 
Relocation section '\.rela\.plt\.unloaded' at offset .* contains 8 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00080802 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ 0
00080806 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ 0
00080822 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ c
00080826 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ c
0009040c .*01 R_PPC_ADDR32 00080800 _PROCEDURE_LINKAGE_TAB.* \+ 30
00080842 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ 10
00080846 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ 10
00090410 .*01 R_PPC_ADDR32 00080800 _PROCEDURE_LINKAGE_TAB.* \+ 50
/testsuite/ld-powerpc/aix-glink-3.dd
0,0 → 1,14
 
.*
 
 
Disassembly of section \.text:
 
0*10000000 <\.f>:
*10000000: 48 00 00 05 bl 10000004 <\.g>
 
0*10000004 <\.g>:
*10000004: 4e 80 00 20 bl?r
 
0*10000008 <__start>:
*10000008: 4b ff ff f9 bl 10000000 <\.f>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.