From patchwork Mon Dec 5 17:53:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiong Wang X-Patchwork-Id: 86602 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1611459qgi; Mon, 5 Dec 2016 09:54:50 -0800 (PST) X-Received: by 10.84.133.69 with SMTP id 63mr127431071plf.15.1480960490613; Mon, 05 Dec 2016 09:54:50 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id y30si15463947plh.111.2016.12.05.09.54.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Dec 2016 09:54:50 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-return-94729-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org; spf=pass (google.com: domain of binutils-return-94729-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=binutils-return-94729-patch=linaro.org@sourceware.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:subject:references:to:message-id:date :mime-version:in-reply-to:content-type; q=dns; s=default; b=TdoR MGrpLks5omJ+gmzfM/2ahzayakqFvbIHAmCNvm9AE+dcqJov+8Qim8vX6XmIJKvi dP6YmAT15Rg3OVco/EkDJgf66d7OGEUFdoUhKrW0SGsw3OV+o36MbMazvryw4M+z Op74F3OjrTx8mgy6wMXI2pPAoHlNNLoDmtyvlNY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:subject:references:to:message-id:date :mime-version:in-reply-to:content-type; s=default; bh=/89Dfyiqzn H/762ghCR9oG4olW4=; b=iKolDJWniCu8FY4nPNXAtQa6aYE3Bkf5G5jz7/OYhP AYL51H2M3XZpL39fqZov2NIUmf3fMo+Mjl4Ddyru7wahj4VgCWc+ZjPTKVb7JYOg JZv3IRDaKs26mEcOD512o1lbCOgECtEjY8NCAoxgJG5CdCXtWt8US6N5fPU12VXZ s= Received: (qmail 120177 invoked by alias); 5 Dec 2016 17:53:35 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Delivered-To: mailing list binutils@sourceware.org Received: (qmail 119525 invoked by uid 89); 5 Dec 2016 17:53:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.8 required=5.0 tests=BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=64, 5, 4, 40000000, D*plt X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Dec 2016 17:53:22 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 97CE31516; Mon, 5 Dec 2016 09:53:21 -0800 (PST) Received: from [10.2.206.198] (e104437-lin.cambridge.arm.com [10.2.206.198]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 489CF3F483 for ; Mon, 5 Dec 2016 09:53:21 -0800 (PST) From: Jiong Wang Subject: [AArch64][2/4] Make LD testcases support ILP32 mode References: <2217462f-42bd-83e0-6141-acd62e8becb8@foss.arm.com> To: Binutils Message-ID: Date: Mon, 5 Dec 2016 17:53:20 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 MIME-Version: 1.0 In-Reply-To: <2217462f-42bd-83e0-6141-acd62e8becb8@foss.arm.com> X-IsSubscribed: yes This patch fixed most of LD testcases for ILP32 mode. * If one test should assemble/link under ILP32, then add ILP32 expected results. * If one test can't assemble/link under ILP32, run it through "run_dump_test_lp64". OK for master? ld/ChangeLog: 2016-12-05 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. diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 8e425d2..de158fe 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 55a8a8c..28e4445 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 c3e1602..4952d4b 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 e89f0bb..6e9a7bb 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 c1a0c6f..affc8a3 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 68332bf..1ffa007 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 c5bb372..b26a71a 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 78e94dc..75f39cc 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 51d9242..801b615 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 31ec162..9a20b61 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 9693585..36f110b 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 f0ee59f..03afaef 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 e8e620c..1a7cab7 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 0175982..03a7837 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 463cd25..8bd5476 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 a50ad3a..cb81dea 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 c415bc3..d7248e8 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 c246c99..7da9148 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 efdd379..ff1e73e 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 8aadc51..0366f5d 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 95d4c8f..c32bbbc 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 2eddeb7..0e4e622 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