summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ld-powerpc/powerpc.exp1
-rw-r--r--ld/testsuite/ld-powerpc/pr28827-2.d48
-rw-r--r--ld/testsuite/ld-powerpc/pr28827-2.lnk9
-rw-r--r--ld/testsuite/ld-powerpc/pr28827-2.s15
4 files changed, 73 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index 3eb707f42e..3d738f5f93 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -445,6 +445,7 @@ if [ supports_ppc64 ] then {
run_dump_test "tlsie"
run_dump_test "non-contiguous-powerpc64"
run_dump_test "tprel"
+ run_dump_test "pr28827-2"
}
run_dump_test "localgot"
diff --git a/ld/testsuite/ld-powerpc/pr28827-2.d b/ld/testsuite/ld-powerpc/pr28827-2.d
new file mode 100644
index 0000000000..8da819d822
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/pr28827-2.d
@@ -0,0 +1,48 @@
+#as: -a64
+#ld: -melf64ppc --plt-align=0 -T pr28827-2.lnk
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+.*:
+.*: (49 ff ff f0|f0 ff ff 49) b .* <far1>
+ \.\.\.
+
+.* <.*\.plt_branch\..*>:
+.*: (e9 82 80 28|28 80 82 e9) ld r12,-32728\(r2\)
+.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
+.*: (4e 80 04 20|20 04 80 4e) bctr
+
+.* <_start>:
+.*: (49 ff ff d8|d8 ff ff 49) b .* <far1>
+.*: (4b ff ff f0|f0 ff ff 4b) b .*
+
+Disassembly of section \.far1:
+
+.*:
+.*: (4a 00 00 38|38 00 00 4a) b .* <_start>
+
+.* <.*\.long_branch\..*>:
+.*: (49 ff ff f4|f4 ff ff 49) b .* <far2>
+ \.\.\.
+
+.* <far1>:
+.*: (41 82 ff f4|f4 ff 82 41) beq .*
+.*: (4a 00 00 24|24 00 00 4a) b .* <_start>
+
+Disassembly of section \.far2:
+
+.*:
+.*: (e9 82 80 20|20 80 82 e9) ld r12,-32736\(r2\)
+.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
+.*: (4e 80 04 20|20 04 80 4e) bctr
+
+.*:
+.*: (4a 00 00 24|24 00 00 4a) b .* <far1>
+ \.\.\.
+
+.* <far2>:
+.*: (40 82 ff f4|f4 ff 82 40) bne .*
+.*: (4b ff ff e4|e4 ff ff 4b) b .*
diff --git a/ld/testsuite/ld-powerpc/pr28827-2.lnk b/ld/testsuite/ld-powerpc/pr28827-2.lnk
new file mode 100644
index 0000000000..61a8ca269f
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/pr28827-2.lnk
@@ -0,0 +1,9 @@
+SECTIONS
+{
+ . = SIZEOF_HEADERS;
+ .text : { *(.text) }
+ . = . + 0x2000000 + 32 - 4 * SIZEOF (.text);
+ .far1 : { *(.far1) }
+ . = . + 0x2000000 + 32 - 4 * SIZEOF (.far1);
+ .far2 : { *(.far2) }
+}
diff --git a/ld/testsuite/ld-powerpc/pr28827-2.s b/ld/testsuite/ld-powerpc/pr28827-2.s
new file mode 100644
index 0000000000..a628d6d09f
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/pr28827-2.s
@@ -0,0 +1,15 @@
+ .globl _start
+ .text
+_start:
+ b far1
+ b far2
+
+ .section .far1,"ax",@progbits
+far1:
+ beq far2
+ b _start
+
+ .section .far2,"ax",@progbits
+far2:
+ bne far1
+ b _start