diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ld-powerpc/powerpc.exp | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/pr28827-2.d | 48 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/pr28827-2.lnk | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/pr28827-2.s | 15 |
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 |