summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-sparc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2011-10-19 00:32:24 +0000
committerDavid S. Miller <davem@redhat.com>2011-10-19 00:32:24 +0000
commit287cfd9435d4e481bafa61bde68690eb5927bde9 (patch)
tree16b0d32cf8ab88866178b6a40db51b31f128cb96 /ld/testsuite/ld-sparc
parentf6a21f44b59a5bb82d5255e7b774f09f5769ae57 (diff)
downloadbinutils-redhat-287cfd9435d4e481bafa61bde68690eb5927bde9.tar.gz
Fix sparc TLS call relaxation when the delay slot sets up %o0.
bfd/ PR binutils/13301 * elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function. (_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr call delay slot instruction forward 4 bytes when performing relaxation. gold/ PR binutils/13301 * sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New member to track relocation locations that have moved during TLS reloc optimizations. (Target_sparc::Relocate::Relocate): Initialize to NULL. (Target_sparc::Relocate::relocate): Adjust view down by 4 bytes if it matches reloc_adjust_addr_. (Target_sparc::Relocate::relocate_tls): Always move the __tls_get_addr call delay slot instruction forward 4 bytes when performing relaxation. ld/testsuite/ * ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix for PR 13301. * ld-sparc/tlssunbin64.dd: Likewise. * ld-sparc/tlssunpic32.dd: Likewise. * ld-sparc/tlssunpic64.dd: Likewise.
Diffstat (limited to 'ld/testsuite/ld-sparc')
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin32.dd8
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin64.dd8
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic32.dd16
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic64.dd16
4 files changed, 24 insertions, 24 deletions
diff --git a/ld/testsuite/ld-sparc/tlssunbin32.dd b/ld/testsuite/ld-sparc/tlssunbin32.dd
index 37c1d04280..c31d1909a5 100644
--- a/ld/testsuite/ld-sparc/tlssunbin32.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin32.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
+11034: 01 00 00 00 nop *
+11038: d0 05 c0 12 ld \[ %l7 \+ %l2 \], %o0
+1103c: 01 00 00 00 nop *
- +11040: 90 01 c0 08 add %g7, %o0, %o0
- +11044: 01 00 00 00 nop *
+ +11040: 01 00 00 00 nop *
+ +11044: 90 01 c0 08 add %g7, %o0, %o0
+11048: 01 00 00 00 nop *
+1104c: 01 00 00 00 nop *
+11050: 01 00 00 00 nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
+11058: 11 00 00 00 sethi %hi\(0\), %o0
+1105c: 92 02 20 08 add %o0, 8, %o1 ! 8 <.*>
+11060: d0 05 c0 09 ld \[ %l7 \+ %o1 \], %o0
- +11064: 90 01 c0 08 add %g7, %o0, %o0
- +11068: 01 00 00 00 nop *
+ +11064: 01 00 00 00 nop *
+ +11068: 90 01 c0 08 add %g7, %o0, %o0
+1106c: 01 00 00 00 nop *
+11070: 01 00 00 00 nop *
+11074: 01 00 00 00 nop *
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.dd b/ld/testsuite/ld-sparc/tlssunbin64.dd
index 0585ae6e28..cd7db1c55f 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
+101034: 01 00 00 00 nop *
+101038: d0 5d c0 12 ldx \[ %l7 \+ %l2 \], %o0
+10103c: 01 00 00 00 nop *
- +101040: 90 01 c0 08 add %g7, %o0, %o0
- +101044: 01 00 00 00 nop *
+ +101040: 01 00 00 00 nop *
+ +101044: 90 01 c0 08 add %g7, %o0, %o0
+101048: 01 00 00 00 nop *
+10104c: 01 00 00 00 nop *
+101050: 01 00 00 00 nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
+101058: 11 00 00 00 sethi %hi\(0\), %o0
+10105c: 92 02 20 10 add %o0, 0x10, %o1 ! 10 <.*>
+101060: d0 5d c0 09 ldx \[ %l7 \+ %o1 \], %o0
- +101064: 90 01 c0 08 add %g7, %o0, %o0
- +101068: 01 00 00 00 nop *
+ +101064: 01 00 00 00 nop *
+ +101068: 90 01 c0 08 add %g7, %o0, %o0
+10106c: 01 00 00 00 nop *
+101070: 01 00 00 00 nop *
+101074: 01 00 00 00 nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic32.dd b/ld/testsuite/ld-sparc/tlssunpic32.dd
index c34d514ac1..558977114d 100644
--- a/ld/testsuite/ld-sparc/tlssunpic32.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic32.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
+1058: 11 00 00 00 sethi %hi\(0\), %o0
+105c: 92 02 20 3c add %o0, 0x3c, %o1 ! 3c <.*>
+1060: d0 05 c0 09 ld \[ %l7 \+ %o1 \], %o0
- +1064: 90 01 c0 08 add %g7, %o0, %o0
- +1068: 01 00 00 00 nop *
+ +1064: 01 00 00 00 nop *
+ +1068: 90 01 c0 08 add %g7, %o0, %o0
+106c: 01 00 00 00 nop *
+1070: 01 00 00 00 nop *
+1074: 01 00 00 00 nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
+10a0: 11 00 00 00 sethi %hi\(0\), %o0
+10a4: 90 02 20 0c add %o0, 0xc, %o0 ! c <.*>
+10a8: d0 05 c0 08 ld \[ %l7 \+ %o0 \], %o0
- +10ac: 90 01 c0 08 add %g7, %o0, %o0
- +10b0: 01 00 00 00 nop *
+ +10ac: 01 00 00 00 nop *
+ +10b0: 90 01 c0 08 add %g7, %o0, %o0
+10b4: 01 00 00 00 nop *
+10b8: 01 00 00 00 nop *
+10bc: 01 00 00 00 nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
+10e8: 11 00 00 00 sethi %hi\(0\), %o0
+10ec: 90 02 20 48 add %o0, 0x48, %o0 ! 48 <.*>
+10f0: d0 05 c0 08 ld \[ %l7 \+ %o0 \], %o0
- +10f4: 90 01 c0 08 add %g7, %o0, %o0
- +10f8: 01 00 00 00 nop *
+ +10f4: 01 00 00 00 nop *
+ +10f8: 90 01 c0 08 add %g7, %o0, %o0
+10fc: 01 00 00 00 nop *
+1100: 01 00 00 00 nop *
+1104: 01 00 00 00 nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
+1130: 11 00 00 00 sethi %hi\(0\), %o0
+1134: 90 02 20 24 add %o0, 0x24, %o0 ! 24 <.*>
+1138: d0 05 c0 08 ld \[ %l7 \+ %o0 \], %o0
- +113c: 90 01 c0 08 add %g7, %o0, %o0
- +1140: 01 00 00 00 nop *
+ +113c: 01 00 00 00 nop *
+ +1140: 90 01 c0 08 add %g7, %o0, %o0
+1144: 01 00 00 00 nop *
+1148: 01 00 00 00 nop *
+114c: 01 00 00 00 nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.dd b/ld/testsuite/ld-sparc/tlssunpic64.dd
index 0b41b6858f..5e94858182 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
+1058: 11 00 00 00 sethi %hi\(0\), %o0
+105c: 92 02 20 78 add %o0, 0x78, %o1 ! 78 <.*>
+1060: d0 5d c0 09 ldx \[ %l7 \+ %o1 \], %o0
- +1064: 90 01 c0 08 add %g7, %o0, %o0
- +1068: 01 00 00 00 nop *
+ +1064: 01 00 00 00 nop *
+ +1068: 90 01 c0 08 add %g7, %o0, %o0
+106c: 01 00 00 00 nop *
+1070: 01 00 00 00 nop *
+1074: 01 00 00 00 nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
+10a0: 11 00 00 00 sethi %hi\(0\), %o0
+10a4: 90 02 20 18 add %o0, 0x18, %o0 ! 18 <.*>
+10a8: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
- +10ac: 90 01 c0 08 add %g7, %o0, %o0
- +10b0: 01 00 00 00 nop *
+ +10ac: 01 00 00 00 nop *
+ +10b0: 90 01 c0 08 add %g7, %o0, %o0
+10b4: 01 00 00 00 nop *
+10b8: 01 00 00 00 nop *
+10bc: 01 00 00 00 nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
+10e8: 11 00 00 00 sethi %hi\(0\), %o0
+10ec: 90 02 20 90 add %o0, 0x90, %o0 ! 90 <.*>
+10f0: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
- +10f4: 90 01 c0 08 add %g7, %o0, %o0
- +10f8: 01 00 00 00 nop *
+ +10f4: 01 00 00 00 nop *
+ +10f8: 90 01 c0 08 add %g7, %o0, %o0
+10fc: 01 00 00 00 nop *
+1100: 01 00 00 00 nop *
+1104: 01 00 00 00 nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
+1130: 11 00 00 00 sethi %hi\(0\), %o0
+1134: 90 02 20 48 add %o0, 0x48, %o0 ! 48 <.*>
+1138: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
- +113c: 90 01 c0 08 add %g7, %o0, %o0
- +1140: 01 00 00 00 nop *
+ +113c: 01 00 00 00 nop *
+ +1140: 90 01 c0 08 add %g7, %o0, %o0
+1144: 01 00 00 00 nop *
+1148: 01 00 00 00 nop *
+114c: 01 00 00 00 nop *