From 971f1d27d2ee2732f9ab2fa75923007b40e2bbec Mon Sep 17 00:00:00 2001 From: Jiong Wang Date: Tue, 13 Dec 2016 12:50:17 +0000 Subject: [PATCH] [AArch64] Make LD testcases support ILP32 mode ld/ * testsuite/ld-aarch64/aarch64-elf.exp (aarch64_choose_lp64_emul): New function. (run_dump_test_lp64): New function which pass LP64 mode options to both assembler and linker when building test binary. (aarch64elftests): Remove eh-frame-merge test. (eh-frame-merge-lp64): Restrict eh-frame-merge test to LP64 only. (run_dump_test): Migrate to run_dump_test_lp64 if the test source was written for LP64 only. * testsuite/ld-aarch64/erratum843419.d: Support ILP32 mode. * testsuite/ld-aarch64/farcall-b-defsym.d: Likewise. * testsuite/ld-aarch64/farcall-b-plt.d: Likewise. * testsuite/ld-aarch64/farcall-b.d: Likewise. * testsuite/ld-aarch64/farcall-bl-defsym.d: Likewise. * testsuite/ld-aarch64/farcall-bl-plt.d: Likewise. * testsuite/ld-aarch64/farcall-bl.d: Likewise. * testsuite/ld-aarch64/ifunc-15.d: Likewise. * testsuite/ld-aarch64/ifunc-16.d: Likewise. * testsuite/ld-aarch64/ifunc-5a-local.d: Likewise. * testsuite/ld-aarch64/ifunc-5a.d: Likewise. * testsuite/ld-aarch64/ifunc-5b-local.d: Likewise. * testsuite/ld-aarch64/ifunc-5b.d: Likewise. * testsuite/ld-aarch64/ifunc-5r-local.d: Likewise. * testsuite/ld-aarch64/ifunc-6a.d: Likewise. * testsuite/ld-aarch64/ifunc-6b.d: Likewise. * testsuite/ld-aarch64/ifunc-7a.d: Likewise. * testsuite/ld-aarch64/ifunc-7b.d: Likewise. * testsuite/ld-aarch64/ifunc-8.d: Likewise. * testsuite/ld-aarch64/limit-b.d: Likewise. * testsuite/ld-aarch64/limit-bl.d: Likewise. --- ld/ChangeLog | 32 +++ ld/testsuite/ld-aarch64/aarch64-elf.exp | 268 +++++++++++--------- ld/testsuite/ld-aarch64/erratum843419.d | 92 +++---- ld/testsuite/ld-aarch64/farcall-b-defsym.d | 4 +- ld/testsuite/ld-aarch64/farcall-b-plt.d | 8 +- ld/testsuite/ld-aarch64/farcall-b.d | 6 +- ld/testsuite/ld-aarch64/farcall-bl-defsym.d | 4 +- ld/testsuite/ld-aarch64/farcall-bl-plt.d | 8 +- ld/testsuite/ld-aarch64/farcall-bl.d | 6 +- ld/testsuite/ld-aarch64/ifunc-15.d | 4 +- ld/testsuite/ld-aarch64/ifunc-16.d | 4 +- ld/testsuite/ld-aarch64/ifunc-5a-local.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5b-local.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5b.d | 4 +- ld/testsuite/ld-aarch64/ifunc-5r-local.d | 6 +- ld/testsuite/ld-aarch64/ifunc-6a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-6b.d | 4 +- ld/testsuite/ld-aarch64/ifunc-7a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-7b.d | 2 +- ld/testsuite/ld-aarch64/ifunc-8.d | 2 +- ld/testsuite/ld-aarch64/limit-b.d | 4 +- ld/testsuite/ld-aarch64/limit-bl.d | 4 +- 23 files changed, 265 insertions(+), 207 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 7252e6bbdaa..08ce0164646 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,35 @@ +2016-12-13 Jiong Wang + + * testsuite/ld-aarch64/aarch64-elf.exp (aarch64_choose_lp64_emul): New + function. + (run_dump_test_lp64): New function which pass LP64 mode options to both + assembler and linker when building test binary. + (aarch64elftests): Remove eh-frame-merge test. + (eh-frame-merge-lp64): Restrict eh-frame-merge test to LP64 only. + (run_dump_test): Migrate to run_dump_test_lp64 if the test source was + written for LP64 only. + * testsuite/ld-aarch64/erratum843419.d: Support ILP32 mode. + * testsuite/ld-aarch64/farcall-b-defsym.d: Likewise. + * testsuite/ld-aarch64/farcall-b-plt.d: Likewise. + * testsuite/ld-aarch64/farcall-b.d: Likewise. + * testsuite/ld-aarch64/farcall-bl-defsym.d: Likewise. + * testsuite/ld-aarch64/farcall-bl-plt.d: Likewise. + * testsuite/ld-aarch64/farcall-bl.d: Likewise. + * testsuite/ld-aarch64/ifunc-15.d: Likewise. + * testsuite/ld-aarch64/ifunc-16.d: Likewise. + * testsuite/ld-aarch64/ifunc-5a-local.d: Likewise. + * testsuite/ld-aarch64/ifunc-5a.d: Likewise. + * testsuite/ld-aarch64/ifunc-5b-local.d: Likewise. + * testsuite/ld-aarch64/ifunc-5b.d: Likewise. + * testsuite/ld-aarch64/ifunc-5r-local.d: Likewise. + * testsuite/ld-aarch64/ifunc-6a.d: Likewise. + * testsuite/ld-aarch64/ifunc-6b.d: Likewise. + * testsuite/ld-aarch64/ifunc-7a.d: Likewise. + * testsuite/ld-aarch64/ifunc-7b.d: Likewise. + * testsuite/ld-aarch64/ifunc-8.d: Likewise. + * testsuite/ld-aarch64/limit-b.d: Likewise. + * testsuite/ld-aarch64/limit-bl.d: Likewise. + 2016-12-13 Alan Modra * testsuite/ld-elf/nobits-1.d: Remove xfail for hppa64. diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 8e425d214f8..de158fe1d1a 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -33,8 +33,6 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } { # readelf: Apply readelf options on result. Compare with regex (last arg). set aarch64elftests { - {"EH Frame merge" "-Ttext 0x8000" "" "" {eh-frame-bar.s eh-frame-foo.s} - {{objdump --dwarf=frames eh-frame.d}} "eh-frame"} {"Erratum 835769 dump test" "--fix-cortex-a53-835769" "" "" {erratum835769.s} {{objdump -dr erratum835769.d}} @@ -58,11 +56,39 @@ proc aarch64_choose_ilp32_emul {} { return "aarch64elf32" } +proc aarch64_choose_lp64_emul {} { + if [istarget *linux*] then { + if [istarget aarch64_be-*] { + return "aarch64linuxb" + } + return "aarch64linux" + } + if [istarget aarch64_be-*] { + return "aarch64elfb" + } + return "aarch64elf" +} + +proc run_dump_test_lp64 { testname } { + run_dump_test $testname \ + [list [list as "-mabi=lp64"] \ + [list ld [concat "-m " [aarch64_choose_lp64_emul]]]] +} + +set eh-frame-merge-lp64 [list [list "EH Frame merge" \ + [concat "-m " [aarch64_choose_lp64_emul] \ + " -Ttext 0x8000"] \ + "" "-mabi=lp64" {eh-frame-bar.s eh-frame-foo.s} \ + {{objdump --dwarf=frames eh-frame.d}} \ + "eh-frame"]] + run_ld_link_tests $aarch64elftests +run_ld_link_tests eh-frame-merge-lp64 + run_dump_test "erratum843419" # Relocation Tests -run_dump_test "weak-undefined" +run_dump_test_lp64 "weak-undefined" run_dump_test "emit-relocs-28" run_dump_test "emit-relocs-86" run_dump_test "emit-relocs-86-overflow" @@ -73,103 +99,103 @@ run_dump_test "emit-relocs-89" run_dump_test "emit-relocs-90" run_dump_test "emit-relocs-90-overflow" run_dump_test "emit-relocs-92" -run_dump_test "emit-relocs-257" -run_dump_test "emit-relocs-257-be" +run_dump_test_lp64 "emit-relocs-257" +run_dump_test_lp64 "emit-relocs-257-be" # 258 is tested in 257 # 259 is tested in 257 -run_dump_test "emit-relocs-260" -run_dump_test "emit-relocs-260-be" +run_dump_test_lp64 "emit-relocs-260" +run_dump_test_lp64 "emit-relocs-260-be" # 261 is tested by 260 -run_dump_test "emit-relocs-262" -run_dump_test "emit-relocs-263" -run_dump_test "emit-relocs-264" -run_dump_test "emit-relocs-264-bad" -run_dump_test "emit-relocs-265" -run_dump_test "emit-relocs-266" -run_dump_test "emit-relocs-266-bad" -run_dump_test "emit-relocs-267" -run_dump_test "emit-relocs-268" -run_dump_test "emit-relocs-268-bad" -run_dump_test "emit-relocs-269" -run_dump_test "emit-relocs-269-bad" -run_dump_test "emit-relocs-270" -run_dump_test "emit-relocs-270-bad" -run_dump_test "emit-relocs-270-overflow" -run_dump_test "emit-relocs-271" -run_dump_test "emit-relocs-271-overflow" -run_dump_test "emit-relocs-272" -run_dump_test "emit-relocs-272-overflow" -run_dump_test "emit-relocs-273" -run_dump_test "emit-relocs-274" -run_dump_test "emit-relocs-275" -run_dump_test "emit-relocs-276" -run_dump_test "emit-relocs-277" -run_dump_test "emit-relocs-278" -run_dump_test "emit-relocs-279" -run_dump_test "emit-relocs-279-bad" -run_dump_test "emit-relocs-280" +run_dump_test_lp64 "emit-relocs-262" +run_dump_test_lp64 "emit-relocs-263" +run_dump_test_lp64 "emit-relocs-264" +run_dump_test_lp64 "emit-relocs-264-bad" +run_dump_test_lp64 "emit-relocs-265" +run_dump_test_lp64 "emit-relocs-266" +run_dump_test_lp64 "emit-relocs-266-bad" +run_dump_test_lp64 "emit-relocs-267" +run_dump_test_lp64 "emit-relocs-268" +run_dump_test_lp64 "emit-relocs-268-bad" +run_dump_test_lp64 "emit-relocs-269" +run_dump_test_lp64 "emit-relocs-269-bad" +run_dump_test_lp64 "emit-relocs-270" +run_dump_test_lp64 "emit-relocs-270-bad" +run_dump_test_lp64 "emit-relocs-270-overflow" +run_dump_test_lp64 "emit-relocs-271" +run_dump_test_lp64 "emit-relocs-271-overflow" +run_dump_test_lp64 "emit-relocs-272" +run_dump_test_lp64 "emit-relocs-272-overflow" +run_dump_test_lp64 "emit-relocs-273" +run_dump_test_lp64 "emit-relocs-274" +run_dump_test_lp64 "emit-relocs-275" +run_dump_test_lp64 "emit-relocs-276" +run_dump_test_lp64 "emit-relocs-277" +run_dump_test_lp64 "emit-relocs-278" +run_dump_test_lp64 "emit-relocs-279" +run_dump_test_lp64 "emit-relocs-279-bad" +run_dump_test_lp64 "emit-relocs-280" # 281 is unused -run_dump_test "emit-relocs-282" -run_dump_test "emit-relocs-283" -run_dump_test "emit-relocs-284" -run_dump_test "emit-relocs-285" -run_dump_test "emit-relocs-286" -run_dump_test "emit-relocs-286-bad" +run_dump_test_lp64 "emit-relocs-282" +run_dump_test_lp64 "emit-relocs-283" +run_dump_test_lp64 "emit-relocs-284" +run_dump_test_lp64 "emit-relocs-285" +run_dump_test_lp64 "emit-relocs-286" +run_dump_test_lp64 "emit-relocs-286-bad" # 287-298 are not done yet -run_dump_test "emit-relocs-299" +run_dump_test_lp64 "emit-relocs-299" # 300 is not done yet -run_dump_test "emit-relocs-301" -run_dump_test "emit-relocs-301-be" -run_dump_test "emit-relocs-302" -run_dump_test "emit-relocs-302-be" +run_dump_test_lp64 "emit-relocs-301" +run_dump_test_lp64 "emit-relocs-301-be" +run_dump_test_lp64 "emit-relocs-302" +run_dump_test_lp64 "emit-relocs-302-be" # 303-308 are not done yet -run_dump_test "emit-relocs-309-up" -run_dump_test "emit-relocs-309-low" -run_dump_test "emit-relocs-309-up-bad" -run_dump_test "emit-relocs-309-low-bad" -run_dump_test "emit-relocs-310" -run_dump_test "emit-relocs-310-be" -run_dump_test "emit-relocs-311" -run_dump_test "emit-relocs-312" -run_dump_test "emit-relocs-313" -run_dump_test "emit-relocs-515" -run_dump_test "emit-relocs-515-be" -run_dump_test "emit-relocs-516" -run_dump_test "emit-relocs-516-be" -run_dump_test "emit-relocs-523" -run_dump_test "emit-relocs-524" -run_dump_test "emit-relocs-525" -run_dump_test "emit-relocs-526" -run_dump_test "emit-relocs-526-overflow" -run_dump_test "emit-relocs-527" -run_dump_test "emit-relocs-528" -run_dump_test "emit-relocs-528-overflow" -run_dump_test "emit-relocs-529" -run_dump_test "emit-relocs-529-overflow" -run_dump_test "emit-relocs-530" -run_dump_test "emit-relocs-531" -run_dump_test "emit-relocs-531-overflow" -run_dump_test "emit-relocs-532" -run_dump_test "emit-relocs-533" -run_dump_test "emit-relocs-533-overflow" -run_dump_test "emit-relocs-534" -run_dump_test "emit-relocs-535" -run_dump_test "emit-relocs-535-overflow" -run_dump_test "emit-relocs-536" -run_dump_test "emit-relocs-537" -run_dump_test "emit-relocs-537-overflow" -run_dump_test "emit-relocs-538" +run_dump_test_lp64 "emit-relocs-309-up" +run_dump_test_lp64 "emit-relocs-309-low" +run_dump_test_lp64 "emit-relocs-309-up-bad" +run_dump_test_lp64 "emit-relocs-309-low-bad" +run_dump_test_lp64 "emit-relocs-310" +run_dump_test_lp64 "emit-relocs-310-be" +run_dump_test_lp64 "emit-relocs-311" +run_dump_test_lp64 "emit-relocs-312" +run_dump_test_lp64 "emit-relocs-313" +run_dump_test_lp64 "emit-relocs-515" +run_dump_test_lp64 "emit-relocs-515-be" +run_dump_test_lp64 "emit-relocs-516" +run_dump_test_lp64 "emit-relocs-516-be" +run_dump_test_lp64 "emit-relocs-523" +run_dump_test_lp64 "emit-relocs-524" +run_dump_test_lp64 "emit-relocs-525" +run_dump_test_lp64 "emit-relocs-526" +run_dump_test_lp64 "emit-relocs-526-overflow" +run_dump_test_lp64 "emit-relocs-527" +run_dump_test_lp64 "emit-relocs-528" +run_dump_test_lp64 "emit-relocs-528-overflow" +run_dump_test_lp64 "emit-relocs-529" +run_dump_test_lp64 "emit-relocs-529-overflow" +run_dump_test_lp64 "emit-relocs-530" +run_dump_test_lp64 "emit-relocs-531" +run_dump_test_lp64 "emit-relocs-531-overflow" +run_dump_test_lp64 "emit-relocs-532" +run_dump_test_lp64 "emit-relocs-533" +run_dump_test_lp64 "emit-relocs-533-overflow" +run_dump_test_lp64 "emit-relocs-534" +run_dump_test_lp64 "emit-relocs-535" +run_dump_test_lp64 "emit-relocs-535-overflow" +run_dump_test_lp64 "emit-relocs-536" +run_dump_test_lp64 "emit-relocs-537" +run_dump_test_lp64 "emit-relocs-537-overflow" +run_dump_test_lp64 "emit-relocs-538" run_dump_test "reloc-overflow-bad" # test addend correctness when --emit-relocs specified for non-relocatable obj. -run_dump_test "emit-relocs-local-addend" +run_dump_test_lp64 "emit-relocs-local-addend" # test addend correctness when -r specified. -run_dump_test "local-addend-r" +run_dump_test_lp64 "local-addend-r" # test error handling on pcrel relocation for shared libraries. -run_dump_test "pcrel_pic_undefined" -run_dump_test "pcrel_pic_defined_local" +run_dump_test_lp64 "pcrel_pic_undefined" +run_dump_test_lp64 "pcrel_pic_defined_local" run_dump_test "limit-b" run_dump_test "limit-bl" @@ -191,14 +217,14 @@ run_dump_test "tls-relax-gd-le" run_dump_test "tls-relax-gdesc-le" run_dump_test "tls-relax-gd-ie-ilp32" run_dump_test "tls-relax-gd-ie" -run_dump_test "tls-relax-large-gd-ie" -run_dump_test "tls-relax-large-gd-ie-be" -run_dump_test "tls-relax-large-gd-le" -run_dump_test "tls-relax-large-gd-le-be" -run_dump_test "tls-relax-large-desc-ie" -run_dump_test "tls-relax-large-desc-ie-be" -run_dump_test "tls-relax-large-desc-le" -run_dump_test "tls-relax-large-desc-le-be" +run_dump_test_lp64 "tls-relax-large-gd-ie" +run_dump_test_lp64 "tls-relax-large-gd-ie-be" +run_dump_test_lp64 "tls-relax-large-gd-le" +run_dump_test_lp64 "tls-relax-large-gd-le-be" +run_dump_test_lp64 "tls-relax-large-desc-ie" +run_dump_test_lp64 "tls-relax-large-desc-ie-be" +run_dump_test_lp64 "tls-relax-large-desc-le" +run_dump_test_lp64 "tls-relax-large-desc-le-be" run_dump_test "tls-relax-gdesc-ie" run_dump_test "tls-relax-ie-le" run_dump_test "tls-relax-ld-le-small" @@ -215,22 +241,22 @@ run_dump_test "tls-tiny-desc" run_dump_test "tls-tiny-desc-ie" run_dump_test "tls-tiny-desc-le" run_dump_test "tls-tiny-ie" -run_dump_test "tls-large-ie" -run_dump_test "tls-large-ie-be" -run_dump_test "tls-large-desc" -run_dump_test "tls-large-desc-be" +run_dump_test_lp64 "tls-large-ie" +run_dump_test_lp64 "tls-large-ie-be" +run_dump_test_lp64 "tls-large-desc" +run_dump_test_lp64 "tls-large-desc-be" run_dump_test "tls-tiny-ld" run_dump_test "tls-small-ld" -run_dump_test "tlsle" +run_dump_test_lp64 "tlsle" run_dump_test "tlsle-symbol-offset" run_dump_test "gc-got-relocs" run_dump_test "gc-tls-relocs" -run_dump_test "gc-plt-relocs" -run_dump_test "gc-relocs-257-dyn" -run_dump_test "gc-relocs-257" +run_dump_test_lp64 "gc-plt-relocs" +run_dump_test_lp64 "gc-relocs-257-dyn" +run_dump_test_lp64 "gc-relocs-257" run_dump_test "implicit_got_section_1" run_dump_test "pr17415" -run_dump_test "tprel_g2_overflow" +run_dump_test_lp64 "tprel_g2_overflow" run_dump_test "tprel_add_lo12_overflow" run_dump_test "protected-data" @@ -254,11 +280,11 @@ run_dump_test "ifunc-7a" run_dump_test "ifunc-7b" run_dump_test "ifunc-7c" run_dump_test "ifunc-8" -run_dump_test "ifunc-9" -run_dump_test "ifunc-10" -run_dump_test "ifunc-11" -run_dump_test "ifunc-12" -run_dump_test "ifunc-13" +run_dump_test_lp64 "ifunc-9" +run_dump_test_lp64 "ifunc-10" +run_dump_test_lp64 "ifunc-11" +run_dump_test_lp64 "ifunc-12" +run_dump_test_lp64 "ifunc-13" run_dump_test "ifunc-14a" run_dump_test "ifunc-14b" run_dump_test "ifunc-14c" @@ -269,26 +295,26 @@ run_dump_test "ifunc-15" run_dump_test "ifunc-16" run_dump_test "ifunc-17a" run_dump_test "ifunc-17b" -run_dump_test "ifunc-18a" -run_dump_test "ifunc-18b" -run_dump_test "ifunc-19a" -run_dump_test "ifunc-19b" -run_dump_test "ifunc-20" -run_dump_test "ifunc-21" -run_dump_test "ifunc-22" +run_dump_test_lp64 "ifunc-18a" +run_dump_test_lp64 "ifunc-18b" +run_dump_test_lp64 "ifunc-19a" +run_dump_test_lp64 "ifunc-19b" +run_dump_test_lp64 "ifunc-20" +run_dump_test_lp64 "ifunc-21" +run_dump_test_lp64 "ifunc-22" run_dump_test "relasz" -run_dump_test "relocs-1027-symbolic-func" +run_dump_test_lp64 "relocs-1027-symbolic-func" -run_dump_test "dt_textrel" +run_dump_test_lp64 "dt_textrel" run_dump_test "plt_mapping_symbol" -run_dump_test "rela-abs-relative" -run_dump_test "rela-abs-relative-be" -run_dump_test "rela-abs-relative-opt" +run_dump_test_lp64 "rela-abs-relative" +run_dump_test_lp64 "rela-abs-relative-be" +run_dump_test_lp64 "rela-abs-relative-opt" -run_dump_test "pie-bind-locally" +run_dump_test_lp64 "pie-bind-locally" set aarch64elflinktests { {"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s} diff --git a/ld/testsuite/ld-aarch64/erratum843419.d b/ld/testsuite/ld-aarch64/erratum843419.d index 55a8a8ca905..28e4445672d 100644 --- a/ld/testsuite/ld-aarch64/erratum843419.d +++ b/ld/testsuite/ld-aarch64/erratum843419.d @@ -6,64 +6,64 @@ Disassembly of section .e843419: -0000000020000000 : - 20000000: d10043ff sub sp, sp, #0x10 - 20000004: d28001a7 mov x7, #0xd // #13 - 20000008: b9000fe7 str w7, \[sp, #12\] - 2000000c: 140003fb b 20000ff8 +0*20000000 : +[ ]*20000000: d10043ff sub sp, sp, #0x10 +[ ]*20000004: d28001a7 mov x7, #0xd // #13 +[ ]*20000008: b9000fe7 str w7, \[sp, #12\] +[ ]*2000000c: 140003fb b 20000ff8 ... -0000000020000ff8 : - 20000ff8: 90100000 adrp x0, 40000000 <[_a-zA-z0-9]+> - 20000ffc: f800c007 stur x7, \[x0, #12\] - 20001000: d2800128 mov x8, #0x9 // #9 - 20001004: 14000008 b 20001024 - 20001008: 8b050020 add x0, x1, x5 - 2000100c: b9400fe7 ldr w7, \[sp, #12\] - 20001010: 0b0700e0 add w0, w7, w7 - 20001014: 910043ff add sp, sp, #0x10 - 20001018: 14000005 b 2000102c <__e835769_veneer> - 2000101c: d65f03c0 ret - 20001020: 14000400 b 20002020 <__e835769_veneer\+0xff4> +0*20000ff8 : +[ ]*20000ff8: 90100000 adrp x0, 40000000 <[_a-zA-z0-9]+> +[ ]*20000ffc: f800c007 stur x7, \[x0, #12\] +[ ]*20001000: d2800128 mov x8, #0x9 // #9 +[ ]*20001004: 14000008 b 20001024 +[ ]*20001008: 8b050020 add x0, x1, x5 +[ ]*2000100c: b9400fe7 ldr w7, \[sp, #12\] +[ ]*20001010: 0b0700e0 add w0, w7, w7 +[ ]*20001014: 910043ff add sp, sp, #0x10 +[ ]*20001018: 14000005 b 2000102c <__e835769_veneer> +[ ]*2000101c: d65f03c0 ret +[ ]*20001020: 14000400 b 20002020 <__e835769_veneer\+0xff4> -0000000020001024 : - 20001024: f9000008 str x8, \[x0\] - 20001028: 17fffff8 b 20001008 +0*20001024 : +[ ]*20001024: f9000008 str x8, \[x0\] +[ ]*20001028: 17fffff8 b 20001008 -000000002000102c <__e835769_veneer>: - 2000102c: f0f17ff0 adrp x16, 3000000 - 20001030: 91000210 add x16, x16, #0x0 - 20001034: d61f0200 br x16 +0*2000102c <__e835769_veneer>: +[ ]*2000102c: f0f17ff0 adrp x16, 3000000 +[ ]*20001030: 91000210 add x16, x16, #0x0 +[ ]*20001034: d61f0200 br x16 ... Disassembly of section .e835769: -0000000003000000 : - 3000000: b8408c87 ldr w7, \[x4, #8\]! - 3000004: 1b017c06 mul w6, w0, w1 - 3000008: f9400084 ldr x4, \[x4\] - 300000c: 14000004 b 300001c <__erratum_835769_veneer_0> - 3000010: aa0503e0 mov x0, x5 - 3000014: d65f03c0 ret - 3000018: 14000400 b 3001018 <__erratum_835769_veneer_0\+0xffc> +0*3000000 : +[ ]*3000000: b8408c87 ldr w7, \[x4, #8\]! +[ ]*3000004: 1b017c06 mul w6, w0, w1 +[ ]*3000008: f9400084 ldr x4, \[x4\] +[ ]*300000c: 14000004 b 300001c <__erratum_835769_veneer_0> +[ ]*3000010: aa0503e0 mov x0, x5 +[ ]*3000014: d65f03c0 ret +[ ]*3000018: 14000400 b 3001018 <__erratum_835769_veneer_0\+0xffc> -000000000300001c <__erratum_835769_veneer_0>: - 300001c: 9b031845 madd x5, x2, x3, x6 - 3000020: 17fffffc b 3000010 +0*300001c <__erratum_835769_veneer_0>: +[ ]*300001c: 9b031845 madd x5, x2, x3, x6 +[ ]*3000020: 17fffffc b 3000010 ... Disassembly of section .text: -0000000000400000
: - 400000: d10043ff sub sp, sp, #0x10 - 400004: d28001a7 mov x7, #0xd // #13 - 400008: b9000fe7 str w7, \[sp, #12\] - 40000c: 14000003 b 400018 <__e843419_veneer> - 400010: d65f03c0 ret - 400014: 14000400 b 401014 <__e843419_veneer\+0xffc> +0*400000
: +[ ]*400000: d10043ff sub sp, sp, #0x10 +[ ]*400004: d28001a7 mov x7, #0xd // #13 +[ ]*400008: b9000fe7 str w7, \[sp, #12\] +[ ]*40000c: 14000003 b 400018 <__e843419_veneer> +[ ]*400010: d65f03c0 ret +[ ]*400014: 14000400 b 401014 <__e843419_veneer\+0xffc> -0000000000400018 <__e843419_veneer>: - 400018: 900fe010 adrp x16, 20000000 - 40001c: 91000210 add x16, x16, #0x0 - 400020: d61f0200 br x16 +0*400018 <__e843419_veneer>: +[ ]*400018: 900fe010 adrp x16, 20000000 +[ ]*40001c: 91000210 add x16, x16, #0x0 +[ ]*400020: d61f0200 br x16 ... diff --git a/ld/testsuite/ld-aarch64/farcall-b-defsym.d b/ld/testsuite/ld-aarch64/farcall-b-defsym.d index c3e16029931..4952d4be3d3 100644 --- a/ld/testsuite/ld-aarch64/farcall-b-defsym.d +++ b/ld/testsuite/ld-aarch64/farcall-b-defsym.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: +1000: 14000003 b 100c <__bar_veneer> +1004: d65f03c0 ret [ \t]+1008:[ \t]+14000007[ \t]+b[ \t]+1024 <__bar_veneer\+0x18> -000000000000100c <__bar_veneer>: +0+100c <__bar_veneer>: 100c: 90040010 adrp x16, 8001000 1010: 91000210 add x16, x16, #0x0 1014: d61f0200 br x16 diff --git a/ld/testsuite/ld-aarch64/farcall-b-plt.d b/ld/testsuite/ld-aarch64/farcall-b-plt.d index e89f0bb7352..6e9a7bb9cd5 100644 --- a/ld/testsuite/ld-aarch64/farcall-b-plt.d +++ b/ld/testsuite/ld-aarch64/farcall-b-plt.d @@ -10,8 +10,8 @@ Disassembly of section .plt: .* <.plt>: .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! .*: .* adrp x16, .* <__foo_veneer\+.*> -.*: .* ldr x17, \[x16, #.*\] -.*: .* add x16, x16, #.* +.*: .* ldr [wx]17, \[x16, #.*\] +.*: .* add [wx]16, [wx]16, #.* .*: d61f0220 br x17 .*: d503201f nop .*: d503201f nop @@ -19,8 +19,8 @@ Disassembly of section .plt: .* : .*: .* adrp x16, .* <__foo_veneer\+.*> -.*: .* ldr x17, \[x16, #.*\] -.*: .* add x16, x16, #.* +.*: .* ldr [wx]17, \[x16, #.*\] +.*: .* add [wx]16, [wx]16, #.* .*: d61f0220 br x17 Disassembly of section .text: diff --git a/ld/testsuite/ld-aarch64/farcall-b.d b/ld/testsuite/ld-aarch64/farcall-b.d index c1a0c6f8d48..affc8a37b65 100644 --- a/ld/testsuite/ld-aarch64/farcall-b.d +++ b/ld/testsuite/ld-aarch64/farcall-b.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: +1000: 14000003 b 100c <__bar_veneer> +1004: d65f03c0 ret [ \t]+1008:[ \t]+14000007[ \t]+b[ \t]+1024 <__bar_veneer\+0x18> -000000000000100c <__bar_veneer>: +0+100c <__bar_veneer>: 100c: 90040010 adrp x16, 8001000 1010: 91000210 add x16, x16, #0x0 1014: d61f0200 br x16 @@ -19,5 +19,5 @@ Disassembly of section .text: Disassembly of section .foo: -0000000008001000 : +0+8001000 : 8001000: d65f03c0 ret diff --git a/ld/testsuite/ld-aarch64/farcall-bl-defsym.d b/ld/testsuite/ld-aarch64/farcall-bl-defsym.d index 68332bf2caf..1ffa00709ee 100644 --- a/ld/testsuite/ld-aarch64/farcall-bl-defsym.d +++ b/ld/testsuite/ld-aarch64/farcall-bl-defsym.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: +1000: 94000003 bl 100c <__bar_veneer> +1004: d65f03c0 ret [ \t]+1008:[ \t]+14000007[ \t]+b[ \t]+1024 <__bar_veneer\+0x18> -000000000000100c <__bar_veneer>: +0+100c <__bar_veneer>: 100c: 90040010 adrp x16, 8001000 1010: 91000210 add x16, x16, #0x0 1014: d61f0200 br x16 diff --git a/ld/testsuite/ld-aarch64/farcall-bl-plt.d b/ld/testsuite/ld-aarch64/farcall-bl-plt.d index c5bb37267f7..b26a71ae9f2 100644 --- a/ld/testsuite/ld-aarch64/farcall-bl-plt.d +++ b/ld/testsuite/ld-aarch64/farcall-bl-plt.d @@ -10,8 +10,8 @@ Disassembly of section .plt: .* <.plt>: .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! .*: .* adrp x16, .* <__foo_veneer\+.*> -.*: .* ldr x17, \[x16, #.*\] -.*: .* add x16, x16, #.* +.*: .* ldr [wx]17, \[x16, #.*\] +.*: .* add [wx]16, [wx]16, #.* .*: d61f0220 br x17 .*: d503201f nop .*: d503201f nop @@ -19,8 +19,8 @@ Disassembly of section .plt: .* : .*: .* adrp x16, .* <__foo_veneer\+.*> -.*: .* ldr x17, \[x16, #.*\] -.*: .* add x16, x16, #.* +.*: .* ldr [wx]17, \[x16, #.*\] +.*: .* add [wx]16, [wx]16, #.* .*: d61f0220 br x17 Disassembly of section .text: diff --git a/ld/testsuite/ld-aarch64/farcall-bl.d b/ld/testsuite/ld-aarch64/farcall-bl.d index 78e94dc3503..75f39cc7e4f 100644 --- a/ld/testsuite/ld-aarch64/farcall-bl.d +++ b/ld/testsuite/ld-aarch64/farcall-bl.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: +1000: 94000003 bl 100c <__bar_veneer> +1004: d65f03c0 ret [ \t]+1008:[ \t]+14000007[ \t]+b[ \t]+1024 <__bar_veneer\+0x18> -000000000000100c <__bar_veneer>: +0+100c <__bar_veneer>: 100c: 90040010 adrp x16, 8001000 1010: 91000210 add x16, x16, #0x0 1014: d61f0200 br x16 @@ -19,5 +19,5 @@ Disassembly of section .text: Disassembly of section .foo: -0000000008001000 : +0+8001000 : 8001000: d65f03c0 ret diff --git a/ld/testsuite/ld-aarch64/ifunc-15.d b/ld/testsuite/ld-aarch64/ifunc-15.d index 51d924220e3..801b6159d63 100644 --- a/ld/testsuite/ld-aarch64/ifunc-15.d +++ b/ld/testsuite/ld-aarch64/ifunc-15.d @@ -5,8 +5,8 @@ Relocation section '.rela.got' at offset 0x[0-9a-f]+ contains 1 entries: [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_GLOB_DAT[ ]+ifunc\(\)[ ]+ifunc \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)GLOB_DAT[ ]+ifunc\(\)[ ]+ifunc \+ 0 Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries: [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)JUMP_SLO(T|)[ ]+ifunc\(\)[ ]+ifunc \+ 0 diff --git a/ld/testsuite/ld-aarch64/ifunc-16.d b/ld/testsuite/ld-aarch64/ifunc-16.d index 31ec162c7c5..9a20b617f68 100644 --- a/ld/testsuite/ld-aarch64/ifunc-16.d +++ b/ld/testsuite/ld-aarch64/ifunc-16.d @@ -5,5 +5,5 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_JUMP_SLOT[ ]+0+[ ]+ifunc \+ 0 -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)JUMP_SLO(T|)[ ]+0+[ ]+ifunc \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-5a-local.d b/ld/testsuite/ld-aarch64/ifunc-5a-local.d index 96935851d5f..36f110b361a 100644 --- a/ld/testsuite/ld-aarch64/ifunc-5a-local.d +++ b/ld/testsuite/ld-aarch64/ifunc-5a-local.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-5a.d b/ld/testsuite/ld-aarch64/ifunc-5a.d index f0ee59f3c46..03afaefe3e6 100644 --- a/ld/testsuite/ld-aarch64/ifunc-5a.d +++ b/ld/testsuite/ld-aarch64/ifunc-5a.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-5b-local.d b/ld/testsuite/ld-aarch64/ifunc-5b-local.d index e8e620c03b8..1a7cab70fc2 100644 --- a/ld/testsuite/ld-aarch64/ifunc-5b-local.d +++ b/ld/testsuite/ld-aarch64/ifunc-5b-local.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-5b.d b/ld/testsuite/ld-aarch64/ifunc-5b.d index 0175982f50d..03a7837b12c 100644 --- a/ld/testsuite/ld-aarch64/ifunc-5b.d +++ b/ld/testsuite/ld-aarch64/ifunc-5b.d @@ -5,8 +5,8 @@ Relocation section '.rela.got' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_GLOB_DAT[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)GLOB_DAT[ ]+foo\(\)[ ]+foo \+ 0 #... Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_JUMP_SLOT[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)JUMP_SLO(T|)[ ]+foo\(\)[ ]+foo \+ 0 diff --git a/ld/testsuite/ld-aarch64/ifunc-5r-local.d b/ld/testsuite/ld-aarch64/ifunc-5r-local.d index 463cd25a9e1..8bd54763863 100644 --- a/ld/testsuite/ld-aarch64/ifunc-5r-local.d +++ b/ld/testsuite/ld-aarch64/ifunc-5r-local.d @@ -5,6 +5,6 @@ Relocation section '.rela.text' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_CALL26[ ]+foo\(\)[ ]+foo \+ 0 -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_ADR_GOT_PAGE[ ]+foo\(\)[ ]+foo \+ 0 -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_LD64_GOT_LO1[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)CALL26[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)ADR_GOT_(PAGE|)[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)LD(64|32)_GOT(_LO1|)[ ]+foo\(\)[ ]+foo \+ 0 diff --git a/ld/testsuite/ld-aarch64/ifunc-6a.d b/ld/testsuite/ld-aarch64/ifunc-6a.d index a50ad3afc4d..cb81deaf447 100644 --- a/ld/testsuite/ld-aarch64/ifunc-6a.d +++ b/ld/testsuite/ld-aarch64/ifunc-6a.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-6b.d b/ld/testsuite/ld-aarch64/ifunc-6b.d index c415bc3ccc8..d7248e83a2a 100644 --- a/ld/testsuite/ld-aarch64/ifunc-6b.d +++ b/ld/testsuite/ld-aarch64/ifunc-6b.d @@ -5,8 +5,8 @@ Relocation section '.rela.got' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_GLOB_DAT[ ]+foo\(\)[ ]+foo \+ 0 +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)GLOB_DAT[ ]+foo\(\)[ ]+foo \+ 0 #... Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-7a.d b/ld/testsuite/ld-aarch64/ifunc-7a.d index c246c99f796..7da9148fc77 100644 --- a/ld/testsuite/ld-aarch64/ifunc-7a.d +++ b/ld/testsuite/ld-aarch64/ifunc-7a.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-7b.d b/ld/testsuite/ld-aarch64/ifunc-7b.d index efdd3798be2..ff1e73ea7cf 100644 --- a/ld/testsuite/ld-aarch64/ifunc-7b.d +++ b/ld/testsuite/ld-aarch64/ifunc-7b.d @@ -5,4 +5,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/ifunc-8.d b/ld/testsuite/ld-aarch64/ifunc-8.d index 8aadc51b493..0366f5df2b6 100644 --- a/ld/testsuite/ld-aarch64/ifunc-8.d +++ b/ld/testsuite/ld-aarch64/ifunc-8.d @@ -6,4 +6,4 @@ Relocation section '.rela.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* -[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_IRELATIVE[ ]+[0-9a-f]* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_(P32_|)IRELATIV(E|)[ ]+[0-9a-f]* diff --git a/ld/testsuite/ld-aarch64/limit-b.d b/ld/testsuite/ld-aarch64/limit-b.d index 95d4c8fd622..c32bbbc84a3 100644 --- a/ld/testsuite/ld-aarch64/limit-b.d +++ b/ld/testsuite/ld-aarch64/limit-b.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: 1000: 15ffffff b 8000ffc 1004: d65f03c0 ret Disassembly of section .foo: -0000000008000ffc : +0+8000ffc : 8000ffc: d65f03c0 ret diff --git a/ld/testsuite/ld-aarch64/limit-bl.d b/ld/testsuite/ld-aarch64/limit-bl.d index 2eddeb7edf9..0e4e622b3c0 100644 --- a/ld/testsuite/ld-aarch64/limit-bl.d +++ b/ld/testsuite/ld-aarch64/limit-bl.d @@ -7,11 +7,11 @@ Disassembly of section .text: -0000000000001000 <_start>: +0+1000 <_start>: 1000: 95ffffff bl 8000ffc 1004: d65f03c0 ret Disassembly of section .foo: -0000000008000ffc : +0+8000ffc : 8000ffc: d65f03c0 ret -- 2.30.2