From patchwork Fri Jan 6 01:25:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39890 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp580017wrt; Thu, 5 Jan 2023 17:25:26 -0800 (PST) X-Google-Smtp-Source: AMrXdXtf5o1Pq+HsVoIXzsBeh7/dWeyQQO/BxjjKx3/ksGHQXztnP4tR1j+FFL9nE7WH+BGrCSTr X-Received: by 2002:a17:906:171b:b0:7e8:ced8:cb9b with SMTP id c27-20020a170906171b00b007e8ced8cb9bmr45484429eje.42.1672968326384; Thu, 05 Jan 2023 17:25:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968326; cv=none; d=google.com; s=arc-20160816; b=Psyo16HNLBiIUW3Z03haRpXEcESnnbMS+jdymMgxPXHuMpANSSLLNUtvdllNim5/uF YyiGJuAF7lstfAn9KpYidkY+lycFgASCpVYWHe5PcGZGhItqXACXd5yidEQCQRzEYNvD HRTzhK7gecFeDERFcxOcmdNXBtnS2xFrNdYl8yHO+gsWVgsD+yzVS7kgZK6ksVtyt1ZH FZeTiMzP32M8lWOI9Z2CUp4KrTKTlYFhCmPo99SZWb1GeMyxFiQgdODD4kd2RXZhqd0l qKoLBNakXxQfBUJPJ/cEAZ5750g00zone9Bs6F9zNQ0YhDNjiyBGZTrz/07ArpM67zAO rdsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :dmarc-filter:delivered-to; bh=bxTAofEIMll+tqFAlpeDL9lkWtE0gdvmKs9Jgv+oZAc=; b=wu6+oP24P7fZGTyt9xvCaGKIe5UBLceNji2i2Qobvbo2Qv1ovrRZSEJSpvXSyngu/g fBBPPO0+JtVapEwxhSDrdrfjUnEs8OO/eHvdQds3Xd/QoD3YYMgU/OP4Z2Bb87xwsmml zDI0pRMzf3wd8o+dT0m5qm2Vm1ltjCWlEokhbkA/EVhg4HZHOZK6lbRLc/7bwFctvMpa 6n4ttzO55EGIQxhr63xyklxQPGfvzVS0Pd6WwYZeMgpD8mo8FLGf+uclHbIiDqKj4GM9 gUY5/6XnSDrDfsF1EmvI+NPnbUtoyVUGjO83TRRdL64IwM/r4FmfqMa8xzxl9R8EXDht pKsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=cJoMKCPw; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id cr18-20020a170906d55200b0084b895b6a22si31633777ejc.947.2023.01.05.17.25.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:26 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=cJoMKCPw; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D433C385841A for ; Fri, 6 Jan 2023 01:25:24 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id 7B5AE3858D28 for ; Fri, 6 Jan 2023 01:25:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7B5AE3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42a.google.com with SMTP id w1so56580wrt.8 for ; Thu, 05 Jan 2023 17:25:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=bxTAofEIMll+tqFAlpeDL9lkWtE0gdvmKs9Jgv+oZAc=; b=cJoMKCPwzenXfWt3USIBJcsCqi+YgAT8Vvm4dktG10ZYGn54MzE9EXNG1dCnhiu3LC EUXx1DO+tRolmXOQzPXRxfG/MCCTtRJLoAVeypNUJJT9cysE0BnQXia+CBDlvEHpVgjG x1refUJOFYKRtqWr8m7+lMB+FnpUzKfLrkMoB8Cif+LuwX8/NJ64c6HxOe1mt6IQYdeX 1kCy/cD9kIGd04f+GAN+NGQrtZmtEo+VrjuzUwui8MjIrI1s0SaLxSLKfchi+c0yvBn+ poqtUnl578OOEqeFKDFrcaNOwLbvTQl3k0Peqc4ROlGvp3Bi3xdn6fyxhOVxTqr7AxXn XSoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bxTAofEIMll+tqFAlpeDL9lkWtE0gdvmKs9Jgv+oZAc=; b=UuIIhdLvUaPuKVIZafdohB5hRs4pm0zp57R729yPvZH4BFmRtZulMQ6AJMlnUO2pow H3EapDu03MFzi5FhHpF2KyCkM6uAvhxzwn5/xC1dKJK6VlOZXUnovwRLDqea5G0Pi/aj +aZrC/aY+Mbw/kIcHlWN/3dV0MFqWHfzDPeYnW1YxVru8mrIeUpb0buHqq89NM6xTlG/ H3QFNBDyp25j0y8JRwz7ohFP2x/ChwGtkY+ql3clirZe13aUYK8Mz+AgNikx68B4Hjpt 3z4UswXIis8TKkBrArv/jdecRv8qF6leU6v+jRGa95wL1E0e4mHihAIgr6O+1VYmH7po fowA== X-Gm-Message-State: AFqh2kpH1XIQLtIR0RrnXMD5+wVzIdVbGEZaebUdzCjTEg+M2iXv9zIu OwDyJYr2KQm8DfX8NijWIIGW2wzL7ngzEQ== X-Received: by 2002:adf:ef89:0:b0:26f:63ec:eb78 with SMTP id d9-20020adfef89000000b0026f63eceb78mr32066595wro.23.1672968315688; Thu, 05 Jan 2023 17:25:15 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:15 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 1/7] Fix size of external_reloc for pe-aarch64 Date: Fri, 6 Jan 2023 01:25:03 +0000 Message-Id: <20230106012509.7918-1-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234435592605494?= X-GMAIL-MSGID: =?utf-8?q?1754234435592605494?= Resubmission of aarch64-w64-mingw32 patches against Nick's arm64pe patch. --- bfd/coff-aarch64.c | 4 ---- include/coff/aarch64.h | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 8a514b278ee..236cbb79ffb 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -188,10 +188,6 @@ coff_aarch64_rtype_lookup (unsigned int code) #define bfd_pe_print_pdata NULL #endif -/* Handle include/coff/aarch64.h external_reloc. */ -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 - /* Return TRUE if this relocation should appear in the output .reloc section. */ diff --git a/include/coff/aarch64.h b/include/coff/aarch64.h index 7592661553f..4616cfef2b8 100644 --- a/include/coff/aarch64.h +++ b/include/coff/aarch64.h @@ -54,11 +54,10 @@ struct external_reloc char r_vaddr[4]; char r_symndx[4]; char r_type[2]; - char r_offset[4]; }; #define RELOC struct external_reloc -#define RELSZ 14 +#define RELSZ 10 /* ARM64 relocations types. */ From patchwork Fri Jan 6 01:25:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39891 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp580145wrt; Thu, 5 Jan 2023 17:25:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXuQMtYG3PTzmTl53MZAJ5Ws9QjFIVAmbpGCSPdrxfsPuyVjZdCTrwx0OdwlH5cyNAxAm3ep X-Received: by 2002:a17:906:a0cf:b0:7c1:4d21:abb7 with SMTP id bh15-20020a170906a0cf00b007c14d21abb7mr43167047ejb.54.1672968349978; Thu, 05 Jan 2023 17:25:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968349; cv=none; d=google.com; s=arc-20160816; b=N8puRR9dUGBTi1Wahz6OORXNqBKqn8wBwAaXqFqP2eb1EC9ZbbMyD0lcxknTgWZ2rA MqS3MAmb/FSQnZ7D+mEdRWJ4juAav02jP1UJ97iTcJwq/7ESckfO9q/imMc/SWevE5iP c/D4GA70t0htWGBbUa6xGtTdIh+EGX1EEJr/lZ/6Z6Qa0pEnkYUkTq4yOpC261IZIXU0 pL/wiERq15N8SQrPGIqmJXu1WnhyzdxlGS6NMnWm2NkUrphV89oAVzfY+13KJMsP+Ocq cLpmnabrQjSYHpTVAuGXnZORSjhwOPlFN96H6HaJfqMtQLOK33cS3EdxL16DB5y9I3ya +bTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=esR9gDnfm+tpjrb/8GijQyWs8olrOXs2CdxQilNlNFs=; b=nArQ9x2kH8N/aJZS3Rt0SiVdyk9xNwL2nGvi1Kgt/jsH67suYc7f0ZVBxq8kUidEQd c6QUtI+RZHyh+3ez+O/OWu0eO2o24Yei6f5ja6mQoICIuXA65MojoTEf3vEG7zMXXLbA hhE8lWnp+5E+aDKWw72A0GhGcx2mvv9t3G/ax5XXpTGAk4LN7iHXEA1EFEUCr0GP9F9B 9EUraqLyZzjWqpp2cqZ4/WhMWL5mPPdyNHXsa05CT8fcUsxdXIYGarDH/PA3EHusI/uN tdfsa9tgUgQy1PfNNzSfZNigGEkl5ql5qqKIpQkt7Gj2U3WQA3O7JYHn9GDJM9j+mz3J SqWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=GG7wVAhK; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id x2-20020aa7d382000000b0048772a84504si21249367edq.591.2023.01.05.17.25.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:49 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=GG7wVAhK; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7B8A3385842C for ; Fri, 6 Jan 2023 01:25:40 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id 36D313858D33 for ; Fri, 6 Jan 2023 01:25:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 36D313858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42f.google.com with SMTP id bk16so49098wrb.11 for ; Thu, 05 Jan 2023 17:25:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=esR9gDnfm+tpjrb/8GijQyWs8olrOXs2CdxQilNlNFs=; b=GG7wVAhKxWeEO47bAVXNxKnTaqyUtPOxDaWzL/Wsg/aFkPb6Evb6dll/guIVXx33b2 lPEkClMhYaZ4LTsVJ8BqPv8GpcdywRXcem1yYDev6X0hMyBlc4Z1HUNm1iW6Z54CgbOB XtV5Qnq5DsO/VCLeEInePuBqO8pTSKhQUBYF8HIIXU2JWzdYdKZCzLffQh24cKxe5/36 e7g89WGqDeRaIkbB3sbtG+oGHggO9CTNFPvsRYrePsFsGC1kIgqCvsrQnAzkdv4MGCKt lxko12MHOJjRDxVtZ0Np0ki5qW0n7b6s8pLJel8e5YD01Hq1GBS0t94bhmm6NHlxm58l AwCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=esR9gDnfm+tpjrb/8GijQyWs8olrOXs2CdxQilNlNFs=; b=6MwTPD3mGt9N+K1DZQpQHelcqLUh4QouFcjXO0DB/yoiIJeJ+uUjjBkV5Q7z51jHzD BeB4rAA8IrOku45OWIcSjOgv5/gGva+ZMZA8Gqp/+HOVx+4Z5rNZTXOe+x/2N0A1imlE 6AbHcYEknpMM3W0vUcJ+Z9SylRa+NHPJA3yfpYmAFfhrL6vRaDQhwivF1YciqFrMkUCM cbEClLP7U9SXvOBsD8QlXoBj0YcSEJM4rIdSJFMol88kqd7uiqIIjL8RvDORmL7GubQs QAi3ijQbHntTEc71XLDxNBy7B6+CSzcONdhAwkgBJPb1FMwbgyEOCYp7j/dyFaZR7tR/ spvQ== X-Gm-Message-State: AFqh2koxg+7w9zT9ELPwj0qsI2a39LqL4KvqfBOTmPEyFhEp/tqHS2i5 c+Cucy8LA0XXmJpuvHXH0MLy94BbkBUZ7A== X-Received: by 2002:a05:6000:4:b0:248:443:2d81 with SMTP id h4-20020a056000000400b0024804432d81mr33529534wrx.59.1672968317125; Thu, 05 Jan 2023 17:25:17 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:16 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 2/7] Skip ELF-specific tests when targeting pe-aarch64 Date: Fri, 6 Jan 2023 01:25:04 +0000 Message-Id: <20230106012509.7918-2-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234460269120347?= X-GMAIL-MSGID: =?utf-8?q?1754234460269120347?= --- binutils/testsuite/binutils-all/objcopy.exp | 1 + gas/testsuite/gas/aarch64/adr_1.d | 1 + gas/testsuite/gas/aarch64/advsimd-mov-bad.d | 1 + gas/testsuite/gas/aarch64/b_1.d | 1 + gas/testsuite/gas/aarch64/beq_1.d | 1 + gas/testsuite/gas/aarch64/bfloat16-directive-be.d | 1 + gas/testsuite/gas/aarch64/bfloat16-directive-le.d | 1 + gas/testsuite/gas/aarch64/codealign.d | 2 +- gas/testsuite/gas/aarch64/codealign_1.d | 1 + gas/testsuite/gas/aarch64/dwarf.d | 1 + gas/testsuite/gas/aarch64/ilp32-basic.d | 1 + gas/testsuite/gas/aarch64/int-insns.d | 1 + gas/testsuite/gas/aarch64/ldr_1.d | 1 + gas/testsuite/gas/aarch64/litpool.d | 2 +- gas/testsuite/gas/aarch64/mapmisc.d | 2 +- gas/testsuite/gas/aarch64/mapping.d | 2 +- gas/testsuite/gas/aarch64/mapping2.d | 2 +- gas/testsuite/gas/aarch64/mapping3.d | 2 +- gas/testsuite/gas/aarch64/mapping4.d | 2 +- gas/testsuite/gas/aarch64/mapping_5.d | 1 + gas/testsuite/gas/aarch64/mapping_6.d | 1 + gas/testsuite/gas/aarch64/mops_invalid_2.d | 1 + gas/testsuite/gas/aarch64/movw_label.d | 1 + gas/testsuite/gas/aarch64/optional.d | 1 + gas/testsuite/gas/aarch64/pac_ab_key.d | 1 + gas/testsuite/gas/aarch64/pac_negate_ra_state.d | 1 + gas/testsuite/gas/aarch64/pr20364.d | 1 + gas/testsuite/gas/aarch64/pr27217.d | 1 + gas/testsuite/gas/aarch64/pr29519.d | 1 + gas/testsuite/gas/aarch64/programmer-friendly.d | 1 + gas/testsuite/gas/aarch64/reloc-data.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g2.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gotoff_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-insn.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g0.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g2.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g3.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_1.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_10.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_11.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_12.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_13.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_14.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_15.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_16.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_17.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_18.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_19.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_2.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_20.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_21.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_22.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_23.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_24.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_25.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_26.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_27.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_28.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_3.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_4.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_5.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_6.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_7.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_8.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_9.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d | 1 + gas/testsuite/gas/aarch64/system.d | 1 + gas/testsuite/gas/aarch64/tail_padding.d | 1 + gas/testsuite/gas/aarch64/tbz_1.d | 1 + gas/testsuite/gas/aarch64/tls-desc.d | 1 + gas/testsuite/gas/aarch64/tls.d | 1 + 127 files changed, 127 insertions(+), 7 deletions(-) diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index 77af5ba84ba..c74853cf3ba 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -1411,6 +1411,7 @@ proc objcopy_test_without_global_symbol { } { # The AArch64 and ARM targets preserve mapping symbols # in object files, so they will fail this test. setup_xfail aarch64*-*-* arm*-*-* +clear_xfail aarch64*-*-pe* aarch64*-*-mingw* objcopy_test_without_global_symbol diff --git a/gas/testsuite/gas/aarch64/adr_1.d b/gas/testsuite/gas/aarch64/adr_1.d index 4b5cc56144b..09ac6abe2a6 100644 --- a/gas/testsuite/gas/aarch64/adr_1.d +++ b/gas/testsuite/gas/aarch64/adr_1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/advsimd-mov-bad.d b/gas/testsuite/gas/aarch64/advsimd-mov-bad.d index 6ca98873ac2..02ac2a12715 100644 --- a/gas/testsuite/gas/aarch64/advsimd-mov-bad.d +++ b/gas/testsuite/gas/aarch64/advsimd-mov-bad.d @@ -1,5 +1,6 @@ #source: advsimd-mov-bad.s #readelf: -s --wide +#notarget: *-*-pe* *-*-mingw* Symbol table '.symtab' contains 6 entries: +Num:.* diff --git a/gas/testsuite/gas/aarch64/b_1.d b/gas/testsuite/gas/aarch64/b_1.d index 4815decb0c6..6268a8f9aec 100644 --- a/gas/testsuite/gas/aarch64/b_1.d +++ b/gas/testsuite/gas/aarch64/b_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/beq_1.d b/gas/testsuite/gas/aarch64/beq_1.d index 525a17e75e5..4571e39e608 100644 --- a/gas/testsuite/gas/aarch64/beq_1.d +++ b/gas/testsuite/gas/aarch64/beq_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/bfloat16-directive-be.d b/gas/testsuite/gas/aarch64/bfloat16-directive-be.d index 132d04e44fa..fad1c832f4d 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-directive-be.d +++ b/gas/testsuite/gas/aarch64/bfloat16-directive-be.d @@ -2,6 +2,7 @@ # source: bfloat16-directive.s # as: -mbig-endian # objdump: -s --section=.data +#notarget: *-*-pe* *-*-mingw* .*: +file format .* diff --git a/gas/testsuite/gas/aarch64/bfloat16-directive-le.d b/gas/testsuite/gas/aarch64/bfloat16-directive-le.d index f22d610d84b..af96f4ad7b5 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-directive-le.d +++ b/gas/testsuite/gas/aarch64/bfloat16-directive-le.d @@ -2,6 +2,7 @@ # source: bfloat16-directive.s # as: -mlittle-endian # objdump: -s --section=.data +#notarget: *-*-pe* *-*-mingw* .*: +file format .* diff --git a/gas/testsuite/gas/aarch64/codealign.d b/gas/testsuite/gas/aarch64/codealign.d index a44c1073e09..a3db195fc0e 100644 --- a/gas/testsuite/gas/aarch64/codealign.d +++ b/gas/testsuite/gas/aarch64/codealign.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no # Minimum code alignment should be set. # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/codealign_1.d b/gas/testsuite/gas/aarch64/codealign_1.d index c4dc5270195..2b9819f174c 100644 --- a/gas/testsuite/gas/aarch64/codealign_1.d +++ b/gas/testsuite/gas/aarch64/codealign_1.d @@ -1,6 +1,7 @@ #objdump: --section-headers #as: --generate-missing-build-notes=no # Minimum code alignment should be set. +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/dwarf.d b/gas/testsuite/gas/aarch64/dwarf.d index 9e4184ab6e8..98c202e3613 100644 --- a/gas/testsuite/gas/aarch64/dwarf.d +++ b/gas/testsuite/gas/aarch64/dwarf.d @@ -1,5 +1,6 @@ #readelf: -s --debug-dump=aranges #as: -g --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* Symbol table '.symtab' contains 11 entries: Num:[ ]+Value[ ]+Size[ ]+Type[ ]+Bind[ ]+Vis[ ]+Ndx[ ]+Name diff --git a/gas/testsuite/gas/aarch64/ilp32-basic.d b/gas/testsuite/gas/aarch64/ilp32-basic.d index 876f28cba28..9adb6876ac0 100644 --- a/gas/testsuite/gas/aarch64/ilp32-basic.d +++ b/gas/testsuite/gas/aarch64/ilp32-basic.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format elf32-.*aarch64 diff --git a/gas/testsuite/gas/aarch64/int-insns.d b/gas/testsuite/gas/aarch64/int-insns.d index 76f937c4fbf..9fe31551bde 100644 --- a/gas/testsuite/gas/aarch64/int-insns.d +++ b/gas/testsuite/gas/aarch64/int-insns.d @@ -1,5 +1,6 @@ #objdump: -dr #as: -march=armv8-a -mabi=lp64 +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/ldr_1.d b/gas/testsuite/gas/aarch64/ldr_1.d index f68b01d6838..399edd63672 100644 --- a/gas/testsuite/gas/aarch64/ldr_1.d +++ b/gas/testsuite/gas/aarch64/ldr_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/litpool.d b/gas/testsuite/gas/aarch64/litpool.d index e37e07df22f..e0e0e3a30dd 100644 --- a/gas/testsuite/gas/aarch64/litpool.d +++ b/gas/testsuite/gas/aarch64/litpool.d @@ -1,7 +1,7 @@ #objdump: -d #name: AArch64 Bignums in Literal Pool (PR 16688) # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapmisc.d b/gas/testsuite/gas/aarch64/mapmisc.d index 95dcd81a0cc..395e8b7b6ef 100644 --- a/gas/testsuite/gas/aarch64/mapmisc.d +++ b/gas/testsuite/gas/aarch64/mapmisc.d @@ -3,7 +3,7 @@ #name: AArch64 Mapping Symbols for miscellaneous directives #source: mapmisc.s # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-mingw* .*: +file format .*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping.d b/gas/testsuite/gas/aarch64/mapping.d index d23c0fdbd54..c0255bf7d15 100644 --- a/gas/testsuite/gas/aarch64/mapping.d +++ b/gas/testsuite/gas/aarch64/mapping.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* # Test the generation of AArch64 ELF Mapping Symbols diff --git a/gas/testsuite/gas/aarch64/mapping2.d b/gas/testsuite/gas/aarch64/mapping2.d index 4ad1a079aa5..927a5cc80a2 100644 --- a/gas/testsuite/gas/aarch64/mapping2.d +++ b/gas/testsuite/gas/aarch64/mapping2.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 2 # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping3.d b/gas/testsuite/gas/aarch64/mapping3.d index e6e087c23c7..0ea19cb127e 100644 --- a/gas/testsuite/gas/aarch64/mapping3.d +++ b/gas/testsuite/gas/aarch64/mapping3.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 3 # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping4.d b/gas/testsuite/gas/aarch64/mapping4.d index 0012f4efd3b..26c6cb9566e 100644 --- a/gas/testsuite/gas/aarch64/mapping4.d +++ b/gas/testsuite/gas/aarch64/mapping4.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 4 # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping_5.d b/gas/testsuite/gas/aarch64/mapping_5.d index 04263484ae6..1c2ae76aef3 100644 --- a/gas/testsuite/gas/aarch64/mapping_5.d +++ b/gas/testsuite/gas/aarch64/mapping_5.d @@ -1,6 +1,7 @@ #objdump: --syms --special-syms #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 5 +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping_6.d b/gas/testsuite/gas/aarch64/mapping_6.d index 96d0ed663c9..9da44901a65 100644 --- a/gas/testsuite/gas/aarch64/mapping_6.d +++ b/gas/testsuite/gas/aarch64/mapping_6.d @@ -1,6 +1,7 @@ #objdump: --syms --special-syms #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 6 +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mops_invalid_2.d b/gas/testsuite/gas/aarch64/mops_invalid_2.d index f5e7228f6e7..8acdc8edfb4 100644 --- a/gas/testsuite/gas/aarch64/mops_invalid_2.d +++ b/gas/testsuite/gas/aarch64/mops_invalid_2.d @@ -1,5 +1,6 @@ # warning_output: mops_invalid_2.l # objdump: -dr -M notes +#notarget: *-*-pe* *-*-mingw* .* diff --git a/gas/testsuite/gas/aarch64/movw_label.d b/gas/testsuite/gas/aarch64/movw_label.d index 8466570b33c..cff34433756 100644 --- a/gas/testsuite/gas/aarch64/movw_label.d +++ b/gas/testsuite/gas/aarch64/movw_label.d @@ -1,5 +1,6 @@ #objdump: -dr #name: movw relocation symbol name +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/optional.d b/gas/testsuite/gas/aarch64/optional.d index b2a123d55a2..c9971bbaf97 100644 --- a/gas/testsuite/gas/aarch64/optional.d +++ b/gas/testsuite/gas/aarch64/optional.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pac_ab_key.d b/gas/testsuite/gas/aarch64/pac_ab_key.d index 5e7496a86bd..4a31fbfe631 100644 --- a/gas/testsuite/gas/aarch64/pac_ab_key.d +++ b/gas/testsuite/gas/aarch64/pac_ab_key.d @@ -2,6 +2,7 @@ # Test assembling a file with functions signed by two different pointer # authentication keys. It must interpret .cfi_b_key_frame properly and emit a # 'B' character into the correct CIE's augmentation string. +#notarget: *-*-pe* *-*-mingw* .+: file .+ diff --git a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d index 62717767608..3ca21522734 100644 --- a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d +++ b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d @@ -1,4 +1,5 @@ #objdump: --dwarf=frames +#notarget: *-*-pe* *-*-mingw* .+: file .+ diff --git a/gas/testsuite/gas/aarch64/pr20364.d b/gas/testsuite/gas/aarch64/pr20364.d index babcff10304..1b77a9d4ceb 100644 --- a/gas/testsuite/gas/aarch64/pr20364.d +++ b/gas/testsuite/gas/aarch64/pr20364.d @@ -1,6 +1,7 @@ # Check that ".align , " does not set the mapping state to DATA, causing unnecessary frag generation. #name: PR20364 #objdump: -d +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pr27217.d b/gas/testsuite/gas/aarch64/pr27217.d index 3397dfa2481..24434824323 100644 --- a/gas/testsuite/gas/aarch64/pr27217.d +++ b/gas/testsuite/gas/aarch64/pr27217.d @@ -1,6 +1,7 @@ # Check that expressions that generate relocations work when the symbol is a constant. #name: PR27217 #objdump: -rd +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pr29519.d b/gas/testsuite/gas/aarch64/pr29519.d index 4bfea09bee0..c70e05f95ae 100644 --- a/gas/testsuite/gas/aarch64/pr29519.d +++ b/gas/testsuite/gas/aarch64/pr29519.d @@ -1,6 +1,7 @@ # Check that AArch64 specific pseudo-ops can be separated by the ; line separator character. #name: PR29519 (Separating AArch64 pseudo-ops with ;) #objdump: -rd +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/programmer-friendly.d b/gas/testsuite/gas/aarch64/programmer-friendly.d index 8fa6aa70dbf..20ace20f707 100644 --- a/gas/testsuite/gas/aarch64/programmer-friendly.d +++ b/gas/testsuite/gas/aarch64/programmer-friendly.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-data.d b/gas/testsuite/gas/aarch64/reloc-data.d index 7bcf300f78c..9976585e40e 100644 --- a/gas/testsuite/gas/aarch64/reloc-data.d +++ b/gas/testsuite/gas/aarch64/reloc-data.d @@ -1,6 +1,7 @@ #as: -mabi=lp64 #objdump: -dr #skip: aarch64_be-*-* +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d index 44b66762673..7a4e5c45c0e 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d index 6a6ec00a56d..fc25265732e 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d index c319e3d8dc8..7a944be92df 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d index 5d7f6cf3d5d..4da4da340fb 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d index 6a918065dfd..0b87c2f691c 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d index c5995f5541a..abee16b1d21 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d index 739eaa313d6..0782c758f70 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d index 00d278b53d1..6a9d4e6de6b 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d index 0235aeb9729..76479531db2 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d index f904850a9ed..f29c94c0863 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d index ee1f504baf5..61465b4087c 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d index a44f9d23066..403bdbad126 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d index cd793bb8b12..b4bcdb3691d 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d index ab5d869baaa..1db57093e42 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d index fa46d7b1f56..14032a05570 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d index f754449701e..f397cbc9b62 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d index b232b2f51fb..30501411c71 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d index 62ff7ab420e..5c457849bae 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d index 78074f5edb2..a2600f5e7f4 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d index 8eac3bd99d5..dcdca5e3fba 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d index 02695047fc9..4609ce91836 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d index 0a231f9f062..7f04bb82059 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d index 858898a0748..4ceb95986ba 100644 --- a/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d b/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d index e6a68f06e47..2599b85a84c 100644 --- a/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d index bae4e37b27d..46005c976db 100644 --- a/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d b/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d index 3061c2f5007..770c4e0a932 100644 --- a/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-insn.d b/gas/testsuite/gas/aarch64/reloc-insn.d index 0f3b4143d96..4626b6f57a3 100644 --- a/gas/testsuite/gas/aarch64/reloc-insn.d +++ b/gas/testsuite/gas/aarch64/reloc-insn.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g0.d b/gas/testsuite/gas/aarch64/reloc-prel_g0.d index c5a7685b381..79667fed4c7 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g0.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g0.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d index f7a29194be2..7fd954cb0ac 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g1.d b/gas/testsuite/gas/aarch64/reloc-prel_g1.d index 63c91e0d7e8..4295fcab0fe 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d index 4c0a1d943cc..438d9b3b7d2 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g2.d b/gas/testsuite/gas/aarch64/reloc-prel_g2.d index 80d18704a57..e4c6cd21cc2 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g2.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g2.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d index dc3c58e44fd..8aeab101059 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g3.d b/gas/testsuite/gas/aarch64/reloc-prel_g3.d index 4a476ab954f..2b540f154a3 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g3.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g3.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d index 606c801d053..35a061489ca 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d index a046e787306..abe6811e1d4 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* Disassembly of section \.text: diff --git a/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d index f25913f4170..9749716983f 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d b/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d index 52a37aed62b..13864591246 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d index 6b7132fb07e..7034e299a4b 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d index 28686cd04ef..a7417eca554 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d index f4faa4bddeb..472f8c33efd 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d index e2c81efdfd5..b3f47b180cc 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d index c7d1f6b0448..24ea06cb479 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d index f068cfb85bb..c7a96501804 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d index 11ff08f8b17..1f537fb3bc8 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst16.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d index 66c17a444d6..06774a3b573 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d index 79cffb51bbd..b1d45bf2c26 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst32.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d index 17b2de3ee48..c2caaca6f34 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d index 25c6f2353e3..1969595c7ea 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst64.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d index 73277b38c56..30eb3fa2138 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d index 5b6f2330e6a..6a428c49f0b 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst8.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d index 781997473ce..3e5cb6796ef 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d index 896c6ca8447..28757a8a3c9 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst16.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d index 06aa052b949..3ccc1b432a5 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d index 7b8f6bf495f..98ac7660969 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst32.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d index c83044b3ac0..ae9432ee952 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d index f8827505a63..34d6832583a 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst64.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d index 8e16b09d97c..6b176f9e287 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d index 14e3345b7d3..8464db797ca 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst8.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d index a87429f85d5..76a1e76ccd4 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_1.d b/gas/testsuite/gas/aarch64/sve-movprfx_1.d index 13035db1d82..5ead32cfe4e 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_1.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_1.d @@ -1,6 +1,7 @@ #source: sve-movprfx_1.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_10.d b/gas/testsuite/gas/aarch64/sve-movprfx_10.d index 575632f9a40..1dcbbacbaf3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_10.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_10.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_10.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_11.d b/gas/testsuite/gas/aarch64/sve-movprfx_11.d index 71bab8abd55..90ba848b615 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_11.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_11.d @@ -1,6 +1,7 @@ #source: sve-movprfx_11.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_12.d b/gas/testsuite/gas/aarch64/sve-movprfx_12.d index dde3a926965..4698567b6d3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_12.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_12.d @@ -1,6 +1,7 @@ #source: sve-movprfx_12.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_13.d b/gas/testsuite/gas/aarch64/sve-movprfx_13.d index 46b0bb0a18f..4a12efe5008 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_13.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_13.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_13.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_14.d b/gas/testsuite/gas/aarch64/sve-movprfx_14.d index 1024339a7c2..9d2a8f0c29c 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_14.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_14.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_14.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_15.d b/gas/testsuite/gas/aarch64/sve-movprfx_15.d index 436e59f8269..9e77f04fed7 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_15.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_15.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_15.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_16.d b/gas/testsuite/gas/aarch64/sve-movprfx_16.d index a6550b78990..e998e62afe5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_16.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_16.d @@ -1,6 +1,7 @@ #source: sve-movprfx_16.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_17.d b/gas/testsuite/gas/aarch64/sve-movprfx_17.d index ce96138339d..a873bfdfaa2 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_17.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_17.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_17.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_18.d b/gas/testsuite/gas/aarch64/sve-movprfx_18.d index e158131331b..2868d8ed8ef 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_18.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_18.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_18.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_19.d b/gas/testsuite/gas/aarch64/sve-movprfx_19.d index bf3b0631ef0..996316ad599 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_19.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_19.d @@ -1,6 +1,7 @@ #source: sve-movprfx_19.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_2.d b/gas/testsuite/gas/aarch64/sve-movprfx_2.d index 905c1f4c120..81965828201 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_2.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_2.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_2.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_20.d b/gas/testsuite/gas/aarch64/sve-movprfx_20.d index 80621d64adb..002879d6f33 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_20.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_20.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_20.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_21.d b/gas/testsuite/gas/aarch64/sve-movprfx_21.d index 20eb85b3377..2c1eeb998dd 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_21.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_21.d @@ -1,6 +1,7 @@ #source: sve-movprfx_21.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_22.d b/gas/testsuite/gas/aarch64/sve-movprfx_22.d index de4d1a3693b..32c1f79a101 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_22.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_22.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_22.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_23.d b/gas/testsuite/gas/aarch64/sve-movprfx_23.d index e1c6c2c2cce..dac3a818408 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_23.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_23.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_23.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_24.d b/gas/testsuite/gas/aarch64/sve-movprfx_24.d index ff1bdbe7109..8459324a354 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_24.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_24.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_24.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_25.d b/gas/testsuite/gas/aarch64/sve-movprfx_25.d index 83a6500710c..02bcfd561a5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_25.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_25.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_25.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_26.d b/gas/testsuite/gas/aarch64/sve-movprfx_26.d index f0830cc718b..9a5827759c5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_26.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_26.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_26.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_27.d b/gas/testsuite/gas/aarch64/sve-movprfx_27.d index e71d1715b61..5e96bd328db 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_27.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_27.d @@ -1,6 +1,7 @@ #source: sve-movprfx_27.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_28.d b/gas/testsuite/gas/aarch64/sve-movprfx_28.d index 808d07da892..3121b71ebec 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_28.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_28.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_28.l #as: -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_3.d b/gas/testsuite/gas/aarch64/sve-movprfx_3.d index 03909dbc62c..1aec576d130 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_3.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_3.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_3.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_4.d b/gas/testsuite/gas/aarch64/sve-movprfx_4.d index fd71a4bac28..a3dedae230d 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_4.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_4.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_4.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_5.d b/gas/testsuite/gas/aarch64/sve-movprfx_5.d index 511cf66c665..74a43dfd3e4 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_5.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_5.d @@ -1,6 +1,7 @@ #source: sve-movprfx_5.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_6.d b/gas/testsuite/gas/aarch64/sve-movprfx_6.d index 4af626993aa..1ae23ed68b3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_6.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_6.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_6.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_7.d b/gas/testsuite/gas/aarch64/sve-movprfx_7.d index 725a8a8604b..9be980436a4 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_7.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_7.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_7.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_8.d b/gas/testsuite/gas/aarch64/sve-movprfx_8.d index f853e218b93..33be771eddd 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_8.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_8.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_8.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_9.d b/gas/testsuite/gas/aarch64/sve-movprfx_9.d index 54a1733937b..34d85ba6d33 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_9.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_9.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_9.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d index ce99514b3da..85468aa0b0e 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d index 5f46f27236d..001cf0da1e3 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d index 8d05c1a6361..486a6c083b1 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d index 93c84a72982..4c1d9ff16a9 100644 --- a/gas/testsuite/gas/aarch64/system.d +++ b/gas/testsuite/gas/aarch64/system.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tail_padding.d b/gas/testsuite/gas/aarch64/tail_padding.d index a816ac4a2de..5ef1e3a1c5e 100644 --- a/gas/testsuite/gas/aarch64/tail_padding.d +++ b/gas/testsuite/gas/aarch64/tail_padding.d @@ -1,6 +1,7 @@ #as: -mabi=lp64 #readelf: -S #name: AArch64 section tail padding +#notarget: *-*-pe* *-*-mingw* There are .* section headers, starting at offset .*: diff --git a/gas/testsuite/gas/aarch64/tbz_1.d b/gas/testsuite/gas/aarch64/tbz_1.d index 54b7dbab079..e7ca8db5466 100644 --- a/gas/testsuite/gas/aarch64/tbz_1.d +++ b/gas/testsuite/gas/aarch64/tbz_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tls-desc.d b/gas/testsuite/gas/aarch64/tls-desc.d index e393d455461..85d1f4b6a64 100644 --- a/gas/testsuite/gas/aarch64/tls-desc.d +++ b/gas/testsuite/gas/aarch64/tls-desc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tls.d b/gas/testsuite/gas/aarch64/tls.d index dc18949bd0c..f8ed49725e5 100644 --- a/gas/testsuite/gas/aarch64/tls.d +++ b/gas/testsuite/gas/aarch64/tls.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* From patchwork Fri Jan 6 01:25:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39892 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp580391wrt; Thu, 5 Jan 2023 17:26:38 -0800 (PST) X-Google-Smtp-Source: AMrXdXvqEF3aL35yswiKlJUYhc0sQFI15XvAONMizgNWUMN8Rw4kYA0rvI8QBHjXx7yS92b9nDdn X-Received: by 2002:a17:907:c296:b0:820:4046:1586 with SMTP id tk22-20020a170907c29600b0082040461586mr43788208ejc.12.1672968398730; Thu, 05 Jan 2023 17:26:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968398; cv=none; d=google.com; s=arc-20160816; b=NbxcvmI1j0AOZpuFxrYooRfnvNyuWJfTnGNLJu4+XMnecDLimjTzFUxZu2oIhs9wfO geyBDPsPkO0YGmAt2cVLhLKWpLo4slI8fJpD5Z+OjE4TVWwUSCInYPxiAfvKd56ybDG3 49aAGRcQFQxCGTot6IobMpMz0seJkkLP95rX2LSOwfOjzgIMyxAjUVIjibb/izdrTMLb d0iVfjD+fUHosSxjESgTNhNNjkQRO+HhunILDrLVJ5c00fxFRMaXgtSYUCYPy25jehM/ fscMcFp8mQucooc6gkROsOrkGrauNuQ1t4PLM6UmX/Lw1pMKETM/mcos6vjsbRzDYjGD ViyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=yz38e/QU+j9kS6d9hdeaHc1+y7SNOmadGKwd1Z1j1Td+QjtI7XmpgTpFq8ex5czFfY wAQvbaY/Wnp9SrDPlyYvPYm1sRVI/mdIb9pilTfCyy70MVjrtFi5L0S+0t2IgjAHEiw6 io6MozxgHuxdy6jC+AOvzzl+mhFUoFqyG0mb1GEckaTFC/+hvHFkpl3Q3/aHyQ/gpVEt 7FFOcn+G+jjErPSMTk5OAiTqdSgVDfJGwgEu6HAiGKz5zZ4n2aXhCvABUupIXdR4LlPq 36uckhWjuit97tcH2XmIfA5BzrwlYo6FP3HgoVYwNxSfGVsqSCy89Y1sJBlE+Ghng6Rk OeIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=lQAnOlNu; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ae2-20020a17090725c200b0084c7e7eb6fesi22809158ejc.452.2023.01.05.17.26.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:26:38 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=lQAnOlNu; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 662FB38432F8 for ; Fri, 6 Jan 2023 01:26:02 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 70ADF3858D35 for ; Fri, 6 Jan 2023 01:25:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 70ADF3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x430.google.com with SMTP id r2so59425wrv.7 for ; Thu, 05 Jan 2023 17:25:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=lQAnOlNuSRtQ3367QwpCdSfnqN48NZi9oBn75NBNobZQktpKTcU7hSPu2Eu6KNR24+ k5jN5p18etqpVTy9oY476ZB75FxnN1Zv4UCSXY00BQYa2TcAFgO2Wgr6MaG9pm8ZMqlS 5Q0mvTrD/DsQ7BmNpNdCeqRJlKqwQNp6s0henT293tAupH/pPUyhTODefL/PiixZhxdA 2OrWDylLntq3rB2AqLEjg9dSzn6yHincBljDzsAzrl1B+LFiUQijoy16HIIrDeKNNfgc WCTq97S9I1gjfCO2Tabyg5eI38YVuAmB+gRwMfE/jhBYzZ0aU8NIC55C5QTvefAXVnbc JRnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=KnhCJ/CwYaj8jFiJWXuljMHJbcKaAbNjXNvhGU1cIS6T8Pwzqzk+tCe5g3n3e43ehB PNq6lpWVXQ84d6ehNACtkySzeUvfZ8OvNHE8K0cL3G0rCwzK3gc6dicYevVL9/NOfiDU PgxM+6Ce3QazHRPtW5c2NCg8k9CtbU/bIbbdYHaUD11FDuMQFK5ciX4/PxaQ6tE6Rpae hmvRu0kO6s1oBSQa/vvCPN0hQnOHlXN/jBGz7i+aPijB71OCrJDLGMKpcUlCwoS/9v5L M41jXjEwLqXqmmnVagf6FfNP/MGlhQ7U7DXeI7b6QicRt4796sOLVD9w9QBiZ7di9jg8 Xwsw== X-Gm-Message-State: AFqh2kpZMWl4XUidWGyKJPghmrBtN0PWAxs3C9+GRKeuMnGUb3HPAi2c CubohsaH//IortJ3/WodwELer0EClZl83A== X-Received: by 2002:adf:e949:0:b0:28b:536c:61c8 with SMTP id m9-20020adfe949000000b0028b536c61c8mr16245340wrn.37.1672968318054; Thu, 05 Jan 2023 17:25:18 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:17 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 3/7] Skip big-obj test for pe-aarch64 Date: Fri, 6 Jan 2023 01:25:05 +0000 Message-Id: <20230106012509.7918-3-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234511378434562?= X-GMAIL-MSGID: =?utf-8?q?1754234511378434562?= --- gas/testsuite/gas/pe/big-obj.d | 1 + 1 file changed, 1 insertion(+) diff --git a/gas/testsuite/gas/pe/big-obj.d b/gas/testsuite/gas/pe/big-obj.d index 27b351a7d60..ad44cd51310 100644 --- a/gas/testsuite/gas/pe/big-obj.d +++ b/gas/testsuite/gas/pe/big-obj.d @@ -1,6 +1,7 @@ #as: -mbig-obj #objdump: -h #name: PE big obj +#notarget: aarch64-* .*: *file format pe-bigobj-.* From patchwork Fri Jan 6 01:25:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39896 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp581195wrt; Thu, 5 Jan 2023 17:29:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXvwWiAfN+V7x0L2Ixfuq3niWsvHA24C6FfO13V2bNpglEbNQsvmOe7PC7VvOEjgKUgFLWbi X-Received: by 2002:a17:907:a782:b0:7c1:6430:e5d0 with SMTP id vx2-20020a170907a78200b007c16430e5d0mr47335176ejc.4.1672968570433; Thu, 05 Jan 2023 17:29:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968570; cv=none; d=google.com; s=arc-20160816; b=J6OiW/XPtHEOtwErMnHFKUPrv3s/lCDnhDoy0aBKpYuoXgxdDfnDQ4vHsFfAT73C+o 3Z2QS8ISEU+js0eTMFWDWhBSgrvwt+ZKB0rrrK48QtqaRJqjnKxjj9fC43WMPfcCz1e1 atGsxybsCcs8OCiuWQGJzxRD5WR0I9e8TzhOljYG6HJwxqkWF/V7cv/JXgpGEypoaaS5 WOA7VxaljIaPR/Uz/fqpns4RVccsrEqSBXAN5ap5h/zuH1dZwIy14SH1kWmIRSfkgL5B rBtzbihGBMxGCzQrDWAiu1T5i75w/XDw2G7dMPuLq59M6Q9KmTFuwirYRUl5lAmcWj3+ eAjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=Y03JmZOkGGIbtqG5R8RoyDC/bImdNl9rZfsozeUD2/0=; b=TAb2rqVfV/g808MA204i4NbmjIRwb6exKrNACwQf8+GD/8McySDAwzAsh+1+nZNGE9 AOPDIdRwJc8W7cHulT7jVmfSKi44BV6jiPVV7WsqoeHoUDDRKBzLTvfIheeXRfhqw9nZ m+YTe50zurpdX1N+EcHKJGcbKxPBu9OQQqwR1ElvLXaZdh05qcU4//xbuz+GfvVLeJfd yUcdUMsfg9ztBbnoq3X49A/K9TYgHEbRLnStYiCLCLRjlJSxKlpqXv0jE/WwOP0KNMWD ZWN5BgI1anriMTK59w0F0EkipFeZI0ULxBwqwOQYMSmCsYC7bE0av+jK3NMSEFIcToO/ z2wQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=KHk3Oerc; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id ht11-20020a170907608b00b007c18706010asi37269165ejc.753.2023.01.05.17.29.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:29:30 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=KHk3Oerc; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BA5AD385B534 for ; Fri, 6 Jan 2023 01:27:55 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 779863858C39 for ; Fri, 6 Jan 2023 01:25:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 779863858C39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32e.google.com with SMTP id g10so173277wmo.1 for ; Thu, 05 Jan 2023 17:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=Y03JmZOkGGIbtqG5R8RoyDC/bImdNl9rZfsozeUD2/0=; b=KHk3OerczQ9D7YV0FJ/8ncGPVOjM0pLgrg6E+VWk/76AvLqNG/ZU6/AuWo+53SD6Id QCvpncXQdhQ5F5Dtmihf1xyxu8lCuWhGalfijkbn0gyfYDjMqrJOm42S2gTizOPKsUIg dkChgNJau11FEg6Jk4st9TVCYVn/sG7jABxTtwlNT8Ba+z7k9dZZq5WhjfRrWxjsQEx8 i/2aJj9rrrJMtnEi6MMtgt+rA8Maf5UVr4BcYSg3r4JyGjiPV/voOFqqzfkznUKT3r0J Rdn3pY3Uslx5h6UNJUL5X+uLDfZdqXLwPgqU6EHzUi6jWlzxOioCXW62PbFUC/xIlFoD jnqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Y03JmZOkGGIbtqG5R8RoyDC/bImdNl9rZfsozeUD2/0=; b=HcIbKLkLtxNt1jnr8RyvLTKp4/XM6WGI4wq0TSxurtef9yxbhtzhlDMMbGUBtGMKlk SAZ/dSxHZgHpZiJOE912rXrp665QK9ShO0nHa+ZodcVUBJN7hzIn8swoRQ8+paXSy18g i8uxtk2Mz9U1pdFQl13o/2WG0SJrHsGzpFBd+YktgIPf9ckXjaYA4vEU+INRa4IORJqV a2j54QcvlaVkP63Cuuc1IUB/MS5tAeH8n/a0Kvzbepy/RZTcD1zHGxpjz8QHo09BlGE9 Ch7fQtUcqKk1KeYaRycd7a5X/jbZ8DnueCJxoS12Dis9X5gOuYUQYWzbFmff0g+ZERqr XqfA== X-Gm-Message-State: AFqh2krvlV0aaIK8l6i7SFUHLYyJcIv+u6xuBJl/TvjmZTGx5XKht9IV w8wLh5xbA0XZwgI0vd83mwvDYd/l0mw8rQ== X-Received: by 2002:a05:600c:16c5:b0:3d1:f687:1fd0 with SMTP id l5-20020a05600c16c500b003d1f6871fd0mr38056362wmn.12.1672968319431; Thu, 05 Jan 2023 17:25:19 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:18 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 4/7] Add pe-aarch64 relocations Date: Fri, 6 Jan 2023 01:25:06 +0000 Message-Id: <20230106012509.7918-4-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_35_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234691659720385?= X-GMAIL-MSGID: =?utf-8?q?1754234691659720385?= --- bfd/coff-aarch64.c | 674 +++++++++++++++++++++++++++++- bfd/config.bfd | 6 - gas/config/tc-aarch64.c | 24 +- gas/testsuite/gas/pe/pe-aarch64.d | 230 +++++++++- gas/testsuite/gas/pe/pe-aarch64.s | 162 ++++++- ld/testsuite/ld-pe/aarch64.d | 158 +++++++ ld/testsuite/ld-pe/aarch64a.s | 159 +++++++ ld/testsuite/ld-pe/aarch64b.s | 8 + ld/testsuite/ld-pe/pe.exp | 10 +- 9 files changed, 1388 insertions(+), 43 deletions(-) create mode 100644 ld/testsuite/ld-pe/aarch64.d create mode 100644 ld/testsuite/ld-pe/aarch64a.s create mode 100644 ld/testsuite/ld-pe/aarch64b.s diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 236cbb79ffb..d6c48eba63b 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -39,59 +39,310 @@ #include "libcoff.h" +static bfd_reloc_status_type +coff_aarch64_addr64_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val = reloc_entry->addend; + + bfd_putl64 (val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_addr32_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val; + + if ((int64_t) reloc_entry->addend > 0x7fffffff + || (int64_t) reloc_entry->addend < -0x7fffffff) + return bfd_reloc_overflow; + + val = reloc_entry->addend; + + bfd_putl32 ((uint32_t) val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch26_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0x7ffffff || param < -0x8000000) + return bfd_reloc_overflow; + + op &= 0xfc000000; + op |= (param >> 2) & 0x3ffffff; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_rel21_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0xfffff || param < -0x100000) + return bfd_reloc_overflow; + + op &= 0x9f00001f; + op |= (param & 0x1ffffc) << 3; + op |= (param & 0x3) << 29; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_po12l_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + uint8_t shift; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend & 0xfff; + + if ((op & 0xff800000) == 0x3d800000) + { + /* LDR / STR with q register */ + shift = 4; + } + else + { + /* top two bits represent how much addend should be shifted */ + shift = op >> 30; + } + + if (param & ((1 << shift) - 1)) + return bfd_reloc_overflow; + + param >>= shift; + + op &= 0xffc003ff; + op |= param << 10; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch19_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0xfffff || param < -0x100000) + return bfd_reloc_overflow; + + op &= 0xff00001f; + op |= ((param >> 2) & 0x7ffff) << 5; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch14_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0x7fff || param < -0x8000) + return bfd_reloc_overflow; + + op &= 0xfff8001f; + op |= ((param >> 2) & 0x3fff) << 5; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_po12a_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + op &= 0xffc003ff; + op |= (param & 0xfff) << 10; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_addr32nb_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val; + + if ((int64_t) reloc_entry->addend > 0x7fffffff + || (int64_t) reloc_entry->addend < -0x7fffffff) + return bfd_reloc_overflow; + + val = reloc_entry->addend; + + bfd_putl32 ((uint32_t) val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + /* In case we're on a 32-bit machine, construct a 64-bit "-1" value. */ #define MINUS_ONE (~ (bfd_vma) 0) +static const reloc_howto_type arm64_reloc_howto_abs = HOWTO(IMAGE_REL_ARM64_ABSOLUTE, 0, 1, 0, false, 0, + complain_overflow_dont, + NULL, "IMAGE_REL_ARM64_ABSOLUTE", + false, 0, 0, false); + static const reloc_howto_type arm64_reloc_howto_64 = HOWTO(IMAGE_REL_ARM64_ADDR64, 0, 8, 64, false, 0, complain_overflow_bitfield, - NULL, "64", + coff_aarch64_addr64_reloc, "IMAGE_REL_ARM64_ADDR64", false, MINUS_ONE, MINUS_ONE, false); static const reloc_howto_type arm64_reloc_howto_32 = HOWTO (IMAGE_REL_ARM64_ADDR32, 0, 4, 32, false, 0, complain_overflow_bitfield, - NULL, "32", + coff_aarch64_addr32_reloc, "IMAGE_REL_ARM64_ADDR32", false, 0xffffffff, 0xffffffff, false); static const reloc_howto_type arm64_reloc_howto_32_pcrel = HOWTO (IMAGE_REL_ARM64_REL32, 0, 4, 32, true, 0, complain_overflow_bitfield, - NULL, "DISP32", + NULL, "IMAGE_REL_ARM64_REL32", false, 0xffffffff, 0xffffffff, true); static const reloc_howto_type arm64_reloc_howto_branch26 = HOWTO (IMAGE_REL_ARM64_BRANCH26, 0, 4, 26, true, 0, complain_overflow_bitfield, - NULL, "BRANCH26", + coff_aarch64_branch26_reloc, "IMAGE_REL_ARM64_BRANCH26", false, 0x03ffffff, 0x03ffffff, true); static const reloc_howto_type arm64_reloc_howto_page21 = HOWTO (IMAGE_REL_ARM64_PAGEBASE_REL21, 12, 4, 21, true, 0, complain_overflow_signed, - NULL, "PAGE21", + coff_aarch64_rel21_reloc, "IMAGE_REL_ARM64_PAGEBASE_REL21", false, 0x1fffff, 0x1fffff, false); static const reloc_howto_type arm64_reloc_howto_lo21 = HOWTO (IMAGE_REL_ARM64_REL21, 0, 4, 21, true, 0, complain_overflow_signed, - NULL, "LO21", + coff_aarch64_rel21_reloc, "IMAGE_REL_ARM64_REL21", false, 0x1fffff, 0x1fffff, true); -static const reloc_howto_type arm64_reloc_howto_pgoff12 = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12L, 1, 4, 12, true, 0, +static const reloc_howto_type arm64_reloc_howto_pgoff12l = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12L, 1, 4, 12, true, 0, complain_overflow_signed, - NULL, "PGOFF12", + coff_aarch64_po12l_reloc, "IMAGE_REL_ARM64_PAGEOFFSET_12L", false, 0xffe, 0xffe, true); static const reloc_howto_type arm64_reloc_howto_branch19 = HOWTO (IMAGE_REL_ARM64_BRANCH19, 2, 4, 19, true, 0, complain_overflow_signed, - NULL, "BRANCH19", + coff_aarch64_branch19_reloc, "IMAGE_REL_ARM64_BRANCH19", false, 0x7ffff, 0x7ffff, true); +static const reloc_howto_type arm64_reloc_howto_branch14 = HOWTO (IMAGE_REL_ARM64_BRANCH14, 2, 4, 14, true, 0, + complain_overflow_signed, + coff_aarch64_branch14_reloc, "IMAGE_REL_ARM64_BRANCH14", + false, 0x3fff, 0x3fff, true); + +static const reloc_howto_type arm64_reloc_howto_pgoff12a = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12A, 2, 4, 12, true, 10, + complain_overflow_dont, + coff_aarch64_po12a_reloc, "IMAGE_REL_ARM64_PAGEOFFSET_12A", + false, 0x3ffc00, 0x3ffc00, false); + +static const reloc_howto_type arm64_reloc_howto_32nb = HOWTO (IMAGE_REL_ARM64_ADDR32NB, 0, 4, 32, false, 0, + complain_overflow_bitfield, + coff_aarch64_addr32nb_reloc, "IMAGE_REL_ARM64_ADDR32NB", + false, 0xffffffff, 0xffffffff, false); static const reloc_howto_type* const arm64_howto_table[] = { + &arm64_reloc_howto_abs, &arm64_reloc_howto_64, &arm64_reloc_howto_32, &arm64_reloc_howto_32_pcrel, &arm64_reloc_howto_branch26, &arm64_reloc_howto_page21, &arm64_reloc_howto_lo21, - &arm64_reloc_howto_pgoff12, - &arm64_reloc_howto_branch19 + &arm64_reloc_howto_pgoff12l, + &arm64_reloc_howto_branch19, + &arm64_reloc_howto_branch14, + &arm64_reloc_howto_pgoff12a, + &arm64_reloc_howto_32nb }; #ifndef NUM_ELEM @@ -118,13 +369,24 @@ coff_aarch64_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real case BFD_RELOC_AARCH64_JUMP26: return &arm64_reloc_howto_branch26; case BFD_RELOC_AARCH64_ADR_HI21_PCREL: + case BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: return &arm64_reloc_howto_page21; + case BFD_RELOC_AARCH64_TSTBR14: + return &arm64_reloc_howto_branch14; case BFD_RELOC_AARCH64_ADR_LO21_PCREL: return &arm64_reloc_howto_lo21; + case BFD_RELOC_AARCH64_ADD_LO12: + return &arm64_reloc_howto_pgoff12a; + case BFD_RELOC_AARCH64_LDST8_LO12: case BFD_RELOC_AARCH64_LDST16_LO12: - return &arm64_reloc_howto_pgoff12; + case BFD_RELOC_AARCH64_LDST32_LO12: + case BFD_RELOC_AARCH64_LDST64_LO12: + case BFD_RELOC_AARCH64_LDST128_LO12: + return &arm64_reloc_howto_pgoff12l; case BFD_RELOC_AARCH64_BRANCH19: return &arm64_reloc_howto_branch19; + case BFD_RELOC_RVA: + return &arm64_reloc_howto_32nb; default: BFD_FAIL (); return NULL; @@ -155,6 +417,8 @@ coff_aarch64_rtype_lookup (unsigned int code) { switch (code) { + case IMAGE_REL_ARM64_ABSOLUTE: + return &arm64_reloc_howto_abs; case IMAGE_REL_ARM64_ADDR64: return &arm64_reloc_howto_64; case IMAGE_REL_ARM64_ADDR32: @@ -168,9 +432,15 @@ coff_aarch64_rtype_lookup (unsigned int code) case IMAGE_REL_ARM64_REL21: return &arm64_reloc_howto_lo21; case IMAGE_REL_ARM64_PAGEOFFSET_12L: - return &arm64_reloc_howto_pgoff12; + return &arm64_reloc_howto_pgoff12l; case IMAGE_REL_ARM64_BRANCH19: return &arm64_reloc_howto_branch19; + case IMAGE_REL_ARM64_BRANCH14: + return &arm64_reloc_howto_branch14; + case IMAGE_REL_ARM64_PAGEOFFSET_12A: + return &arm64_reloc_howto_pgoff12a; + case IMAGE_REL_ARM64_ADDR32NB: + return &arm64_reloc_howto_32nb; default: BFD_FAIL (); return NULL; @@ -188,6 +458,7 @@ coff_aarch64_rtype_lookup (unsigned int code) #define bfd_pe_print_pdata NULL #endif +#ifdef COFF_WITH_PE /* Return TRUE if this relocation should appear in the output .reloc section. */ @@ -197,9 +468,384 @@ in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED, { return !howto->pc_relative; } +#endif + +static bool +coff_pe_aarch64_relocate_section (bfd *output_bfd, + struct bfd_link_info *info, + bfd *input_bfd, + asection *input_section, + bfd_byte *contents, + struct internal_reloc *relocs, + struct internal_syment *syms, + asection **sections) +{ + struct internal_reloc *rel; + struct internal_reloc *relend; + + if (bfd_link_relocatable (info)) + return true; + + rel = relocs; + relend = rel + input_section->reloc_count; + + /* The addend for a relocation is stored in the immediate bits of each + opcode. So for each relocation, we need to extract the immediate value, + use this to calculate what it should be for the symbol, and rewrite the + opcode into the section stream. */ + + for (; rel < relend; rel++) + { + long symndx; + struct coff_link_hash_entry *h; + bfd_vma sym_value; + asection *sec = NULL; + uint64_t dest_vma; + + /* skip trivial relocations */ + if (rel->r_type == IMAGE_REL_ARM64_ADDR32 + || rel->r_type == IMAGE_REL_ARM64_ADDR64 + || rel->r_type == IMAGE_REL_ARM64_ABSOLUTE) + continue; + + symndx = rel->r_symndx; + sym_value = syms[symndx].n_value; + + h = obj_coff_sym_hashes (input_bfd)[symndx]; + + if (h && h->root.type == bfd_link_hash_defined) + { + sec = h->root.u.def.section; + sym_value = h->root.u.def.value; + } + else + { + sec = sections[symndx]; + } + + if (!sec) + continue; + + if (bfd_is_und_section (sec)) + continue; + + if (discarded_section (sec)) + continue; + + dest_vma = sec->output_section->vma + sec->output_offset + sym_value; + + if (symndx < 0 + || (unsigned long) symndx >= obj_raw_syment_count (input_bfd)) + continue; + + switch (rel->r_type) + { + case IMAGE_REL_ARM64_ADDR32NB: + { + uint64_t val; + int32_t addend; + + addend = bfd_getl32 (contents + rel->r_vaddr); + + dest_vma += addend; + + val = dest_vma; + val -= pe_data (output_bfd)->pe_opthdr.ImageBase; + + if (val > 0xffffffff) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_ADDR32NB", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + bfd_putl32 (val, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH26: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffffff) << 2; + + if (addend & 0x8000000) + addend |= 0xfffffffff0000000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x1ffffff || val < -0x2000000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH26", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xfc000000; + opcode |= val & 0x3ffffff; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH19: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0xffffe0) >> 3; + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x3ffff || val < -0x40000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH19", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xff00001f; + opcode |= (val & 0x7ffff) << 5; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH14: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x7ffe0) >> 3; + + if (addend & 0x8000) + addend |= 0xffffffffffff0000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x1fff || val < -0x2000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH14", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xfff8001f; + opcode |= (val & 0x3fff) << 5; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEBASE_REL21: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = ((opcode & 0xffffe0) >> 3) + | ((opcode & 0x60000000) >> 29); + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 12) - (cur_vma >> 12); + + if (val > 0xfffff || val < -0x100000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_PAGEBASE_REL21", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0x9f00001f; + opcode |= (val & 0x3) << 29; + opcode |= (val & 0x1ffffc) << 3; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_REL21: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = ((opcode & 0xffffe0) >> 3) + | ((opcode & 0x60000000) >> 29); + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = dest_vma - cur_vma; + + if (val > 0xfffff || val < -0x100000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_REL21", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0x9f00001f; + opcode |= (val & 0x3) << 29; + opcode |= (val & 0x1ffffc) << 3; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEOFFSET_12L: + { + uint32_t opcode, val; + uint8_t shift; + int32_t addend; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffc00) >> 10; + + if ((opcode & 0xff800000) == 0x3d800000) + { + /* LDR / STR with q register */ + shift = 4; + } + else + { + /* top two bits represent how much addend should be shifted */ + shift = opcode >> 30; + } + + addend <<= shift; + + dest_vma += addend; + + /* only interested in bottom 12 bits */ + val = dest_vma & 0xfff; + + if (val & ((1 << shift) - 1)) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_PAGEOFFSET_12L", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + val >>= shift; + + opcode &= 0xffc003ff; + opcode |= val << 10; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEOFFSET_12A: + { + uint32_t opcode, val; + int32_t addend; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffc00) >> 10; + + dest_vma += addend; + + /* only interested in bottom 12 bits */ + val = dest_vma & 0xfff; + + opcode &= 0xffc003ff; + opcode |= val << 10; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + default: + info->callbacks->einfo (_("%F%P: Unhandled relocation type %u\n"), + rel->r_type); + BFD_FAIL (); + return false; + } + } + + return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, + input_section, contents, + relocs, syms, sections); +} + +#define coff_relocate_section coff_pe_aarch64_relocate_section #include "coffcode.h" +/* Prevent assertion in md_apply_fix by forcing use_rela_p on for new + sections. */ +static bool +coff_aarch64_new_section_hook (bfd *abfd, asection *section) +{ + if (!coff_new_section_hook (abfd, section)) + return false; + + section->use_rela_p = 1; + + return true; +} + +#define coff_aarch64_close_and_cleanup coff_close_and_cleanup +#define coff_aarch64_bfd_free_cached_info coff_bfd_free_cached_info +#define coff_aarch64_get_section_contents coff_get_section_contents +#define coff_aarch64_get_section_contents_in_window coff_get_section_contents_in_window + /* Target vectors. */ const bfd_target #ifdef TARGET_SYM @@ -266,7 +912,7 @@ const bfd_target _bfd_bool_bfd_false_error }, - BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_GENERIC (coff_aarch64), BFD_JUMP_TABLE_COPY (coff), BFD_JUMP_TABLE_CORE (_bfd_nocore), BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), diff --git a/bfd/config.bfd b/bfd/config.bfd index 3672b6a3602..800afa8105f 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1493,12 +1493,6 @@ case "${targ}" in ;; esac -if test x"$targ_defvec" = x"aarch64-pe"; then - # Not currently complete (and probably not stable), warn user - echo "*** WARNING BFD aarch64-pe support not complete nor stable" - echo "*** Do not rely on this for production purposes" -fi - # All MIPS ELF targets need a 64-bit bfd_vma. case "${targ_defvec} ${targ_selvecs}" in *mips_elf*) diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 132f8db7c50..25e79431046 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -1889,10 +1889,9 @@ s_ltorg (int ignored ATTRIBUTE_UNUSED) } } -#ifdef OBJ_ELF +#if defined(OBJ_ELF) || defined(OBJ_COFF) /* Forward declarations for functions below, in the MD interface section. */ -static fixS *fix_new_aarch64 (fragS *, int, short, expressionS *, int, int); static struct reloc_table_entry * find_reloc_table_entry (char **); /* Directives: Data. */ @@ -1900,7 +1899,7 @@ static struct reloc_table_entry * find_reloc_table_entry (char **); implemented properly. */ static void -s_aarch64_elf_cons (int nbytes) +s_aarch64_cons (int nbytes) { expressionS exp; @@ -1950,6 +1949,12 @@ s_aarch64_elf_cons (int nbytes) input_line_pointer--; demand_empty_rest_of_line (); } +#endif + +#ifdef OBJ_ELF +/* Forward declarations for functions below, in the MD interface + section. */ + static fixS *fix_new_aarch64 (fragS *, int, short, expressionS *, int, int); /* Mark symbol that it follows a variant PCS convention. */ @@ -2119,11 +2124,13 @@ const pseudo_typeS md_pseudo_table[] = { {"tlsdescadd", s_tlsdescadd, 0}, {"tlsdesccall", s_tlsdesccall, 0}, {"tlsdescldr", s_tlsdescldr, 0}, - {"word", s_aarch64_elf_cons, 4}, - {"long", s_aarch64_elf_cons, 4}, - {"xword", s_aarch64_elf_cons, 8}, - {"dword", s_aarch64_elf_cons, 8}, {"variant_pcs", s_variant_pcs, 0}, +#endif +#if defined(OBJ_ELF) || defined(OBJ_COFF) + {"word", s_aarch64_cons, 4}, + {"long", s_aarch64_cons, 4}, + {"xword", s_aarch64_cons, 8}, + {"dword", s_aarch64_cons, 8}, #endif {"float16", float_cons, 'h'}, {"bfloat16", float_cons, 'b'}, @@ -9260,6 +9267,9 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg) /* An error will already have been reported. */ break; + case BFD_RELOC_RVA: + break; + default: as_bad_where (fixP->fx_file, fixP->fx_line, _("unexpected %s fixup"), diff --git a/gas/testsuite/gas/pe/pe-aarch64.d b/gas/testsuite/gas/pe/pe-aarch64.d index 0b8009da5c4..eb611031183 100644 --- a/gas/testsuite/gas/pe/pe-aarch64.d +++ b/gas/testsuite/gas/pe/pe-aarch64.d @@ -1,14 +1,232 @@ #as: -#objdump: -d +#objdump: -dr .*: file format pe-aarch64-little Disassembly of section .text: -0000000000000000 <_start>: - 0: d2800281 mov x1, #0x14 // #20 - 4: 14000001 b 8 +0000000000000000 <.text>: + ... -0000000000000008 : - 8: d65f03c0 ret +0000000000000010 : + 10: 12345678 and w24, w19, #0xfffff003 + 14: 12345678 and w24, w19, #0xfffff003 + 18: 00000010 udf #16 + 18: IMAGE_REL_ARM64_ADDR32 .text + 1c: 00000010 udf #16 + 1c: IMAGE_REL_ARM64_ADDR32 .text + ... + 20: IMAGE_REL_ARM64_ADDR32 bar + 24: IMAGE_REL_ARM64_ADDR32 bar + 28: 00000011 udf #17 + 28: IMAGE_REL_ARM64_ADDR32 .text + 2c: 00000011 udf #17 + 2c: IMAGE_REL_ARM64_ADDR32 .text + 30: 00000001 udf #1 + 30: IMAGE_REL_ARM64_ADDR32 bar + 34: 00000001 udf #1 + 34: IMAGE_REL_ARM64_ADDR32 bar + 38: 0000000f udf #15 + 38: IMAGE_REL_ARM64_ADDR32 .text + 3c: 0000000f udf #15 + 3c: IMAGE_REL_ARM64_ADDR32 .text + 40: ffffffff .inst 0xffffffff ; undefined + 40: IMAGE_REL_ARM64_ADDR32 bar + 44: ffffffff .inst 0xffffffff ; undefined + 44: IMAGE_REL_ARM64_ADDR32 bar + 48: 9abcdef0 .inst 0x9abcdef0 ; undefined + 4c: 12345678 and w24, w19, #0xfffff003 + 50: 9abcdef0 .inst 0x9abcdef0 ; undefined + 54: 12345678 and w24, w19, #0xfffff003 + 58: 00000010 udf #16 + 58: IMAGE_REL_ARM64_ADDR64 .text + 5c: 00000000 udf #0 + 60: 00000010 udf #16 + 60: IMAGE_REL_ARM64_ADDR64 .text + ... + 68: IMAGE_REL_ARM64_ADDR64 bar + 70: IMAGE_REL_ARM64_ADDR64 bar + 78: 00000011 udf #17 + 78: IMAGE_REL_ARM64_ADDR64 .text + 7c: 00000000 udf #0 + 80: 00000011 udf #17 + 80: IMAGE_REL_ARM64_ADDR64 .text + 84: 00000000 udf #0 + 88: 00000001 udf #1 + 88: IMAGE_REL_ARM64_ADDR64 bar + 8c: 00000000 udf #0 + 90: 00000001 udf #1 + 90: IMAGE_REL_ARM64_ADDR64 bar + 94: 00000000 udf #0 + 98: 0000000f udf #15 + 98: IMAGE_REL_ARM64_ADDR64 .text + 9c: 00000000 udf #0 + a0: 0000000f udf #15 + a0: IMAGE_REL_ARM64_ADDR64 .text + a4: 00000000 udf #0 + a8: ffffffff .inst 0xffffffff ; undefined + a8: IMAGE_REL_ARM64_ADDR64 bar + ac: ffffffff .inst 0xffffffff ; undefined + b0: ffffffff .inst 0xffffffff ; undefined + b0: IMAGE_REL_ARM64_ADDR64 bar + b4: ffffffff .inst 0xffffffff ; undefined + b8: 00000010 udf #16 + b8: IMAGE_REL_ARM64_ADDR32NB .text + bc: 00000000 udf #0 + bc: IMAGE_REL_ARM64_ADDR32NB bar + c0: 00000011 udf #17 + c0: IMAGE_REL_ARM64_ADDR32NB .text + c4: 00000001 udf #1 + c4: IMAGE_REL_ARM64_ADDR32NB bar + c8: 0000000f udf #15 + c8: IMAGE_REL_ARM64_ADDR32NB .text + cc: ffffffff .inst 0xffffffff ; undefined + cc: IMAGE_REL_ARM64_ADDR32NB bar + d0: 17ffffd0 b 10 + d4: 17ffffd0 b 14 + d8: 17ffffcd b c <.text\+0xc> + dc: 14000000 b 0 + dc: IMAGE_REL_ARM64_BRANCH26 bar + e0: 14000001 b 4 + e0: IMAGE_REL_ARM64_BRANCH26 bar + e4: 17ffffff b fffffffffffffffc + e4: IMAGE_REL_ARM64_BRANCH26 bar + e8: 97ffffca bl 10 + ec: 97ffffca bl 14 + f0: 97ffffc7 bl c <.text\+0xc> + f4: 94000000 bl 0 + f4: IMAGE_REL_ARM64_BRANCH26 bar + f8: 94000001 bl 4 + f8: IMAGE_REL_ARM64_BRANCH26 bar + fc: 97ffffff bl fffffffffffffffc + fc: IMAGE_REL_ARM64_BRANCH26 bar + 100: 97ffffbf bl fffffffffffffffc + 104: b4fff860 cbz x0, 10 + 108: b4fff860 cbz x0, 14 + 10c: b4fff800 cbz x0, c <.text\+0xc> + 110: b4000000 cbz x0, 0 + 110: IMAGE_REL_ARM64_BRANCH19 bar + 114: b4000020 cbz x0, 4 + 114: IMAGE_REL_ARM64_BRANCH19 bar + 118: b4ffffe0 cbz x0, fffffffffffffffc + 118: IMAGE_REL_ARM64_BRANCH19 bar + 11c: b4fff700 cbz x0, fffffffffffffffc + 120: 3607f780 tbz w0, #0, 10 + 124: 3607f780 tbz w0, #0, 14 + 128: 3607f720 tbz w0, #0, c <.text\+0xc> + 12c: 36000000 tbz w0, #0, 0 + 12c: IMAGE_REL_ARM64_BRANCH14 bar + 130: 36000020 tbz w0, #0, 4 + 130: IMAGE_REL_ARM64_BRANCH14 bar + 134: 3607ffe0 tbz w0, #0, fffffffffffffffc + 134: IMAGE_REL_ARM64_BRANCH14 bar + 138: 3607f620 tbz w0, #0, fffffffffffffffc + 13c: 90000080 adrp x0, 10000 + 13c: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 140: b0000080 adrp x0, 11000 + 140: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 144: f0000060 adrp x0, f000 + 144: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 148: 90000000 adrp x0, 0 + 148: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 14c: b0000000 adrp x0, 1000 + 14c: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 150: f0ffffe0 adrp x0, fffffffffffff000 + 150: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 154: 90ffffe0 adrp x0, ffffffffffffc000 + 154: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 158: 10fff5c0 adr x0, 10 + 15c: 30fff5a0 adr x0, 11 + 160: 70fff560 adr x0, f <.text\+0xf> + 164: 10000000 adr x0, 0 + 164: IMAGE_REL_ARM64_REL21 bar + 168: 30000000 adr x0, 1 + 168: IMAGE_REL_ARM64_REL21 bar + 16c: 70ffffe0 adr x0, ffffffffffffffff + 16c: IMAGE_REL_ARM64_REL21 bar + 170: 70fff460 adr x0, ffffffffffffffff + 174: 39004000 strb w0, \[x0, #16\] + 174: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 178: 39005000 strb w0, \[x0, #20\] + 178: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 17c: 39003000 strb w0, \[x0, #12\] + 17c: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 180: 39000000 strb w0, \[x0\] + 180: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 184: 39001000 strb w0, \[x0, #4\] + 184: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 188: 393ff000 strb w0, \[x0, #4092\] + 188: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 18c: 393ff000 strb w0, \[x0, #4092\] + 18c: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 190: 79002000 strh w0, \[x0, #16\] + 190: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 194: 79002800 strh w0, \[x0, #20\] + 194: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 198: 79001800 strh w0, \[x0, #12\] + 198: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 19c: 79000000 strh w0, \[x0\] + 19c: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a0: 79000800 strh w0, \[x0, #4\] + 1a0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a4: 791ff800 strh w0, \[x0, #4092\] + 1a4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a8: 791ff800 strh w0, \[x0, #4092\] + 1a8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1ac: b9001000 str w0, \[x0, #16\] + 1ac: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b0: b9001400 str w0, \[x0, #20\] + 1b0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b4: b9000c00 str w0, \[x0, #12\] + 1b4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b8: b9000000 str w0, \[x0\] + 1b8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1bc: b9000400 str w0, \[x0, #4\] + 1bc: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1c0: b90ffc00 str w0, \[x0, #4092\] + 1c0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1c4: b90ffc00 str w0, \[x0, #4092\] + 1c4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1c8: f9000800 str x0, \[x0, #16\] + 1c8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1cc: f9000c00 str x0, \[x0, #24\] + 1cc: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1d0: f9000400 str x0, \[x0, #8\] + 1d0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1d4: f9000000 str x0, \[x0\] + 1d4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1d8: f9000400 str x0, \[x0, #8\] + 1d8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1dc: f907fc00 str x0, \[x0, #4088\] + 1dc: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1e0: f907fc00 str x0, \[x0, #4088\] + 1e0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1e4: 3d800400 str q0, \[x0, #16\] + 1e4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1e8: 3d800800 str q0, \[x0, #32\] + 1e8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1ec: 3d800000 str q0, \[x0\] + 1ec: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1f0: 3d800000 str q0, \[x0\] + 1f0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1f4: 3d800400 str q0, \[x0, #16\] + 1f4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1f8: 3d83fc00 str q0, \[x0, #4080\] + 1f8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1fc: 3d83fc00 str q0, \[x0, #4080\] + 1fc: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 200: 91004000 add x0, x0, #0x10 + 200: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 204: 91004400 add x0, x0, #0x11 + 204: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 208: 91003c00 add x0, x0, #0xf + 208: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 20c: 91000000 add x0, x0, #0x0 + 20c: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 210: 91000400 add x0, x0, #0x1 + 210: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 214: 913ffc00 add x0, x0, #0xfff + 214: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 218: 913ffc00 add x0, x0, #0xfff + 218: IMAGE_REL_ARM64_PAGEOFFSET_12A .text diff --git a/gas/testsuite/gas/pe/pe-aarch64.s b/gas/testsuite/gas/pe/pe-aarch64.s index 546d55fc361..2a02d2d1c0d 100644 --- a/gas/testsuite/gas/pe/pe-aarch64.s +++ b/gas/testsuite/gas/pe/pe-aarch64.s @@ -1,11 +1,157 @@ -# A little test to ensure pe-aarch64 is working in GAS. -# Currently, the poor pe-aarch64 implementation in binutils -# couldn't do anything useful, hence, this test is rather short +.text -.section .text +.dword 0 +.dword 0 -_start: - mov x1, 20 - b foo foo: - ret + +# 4-byte literal +.long 0x12345678 +.word 0x12345678 + +# IMAGE_REL_ARM64_ADDR32 (BFD_RELOC_32) +.long foo +.word foo +.long bar +.word bar +.long foo + 1 +.word foo + 1 +.long bar + 1 +.word bar + 1 +.long foo - 1 +.word foo - 1 +.long bar - 1 +.word bar - 1 + +# 8-byte literal +.dword 0x123456789abcdef0 +.xword 0x123456789abcdef0 + +# IMAGE_REL_ARM64_ADDR64 (BFD_RELOC_64) +.dword foo +.xword foo +.dword bar +.xword bar +.dword foo + 1 +.xword foo + 1 +.dword bar + 1 +.xword bar + 1 +.dword foo - 1 +.xword foo - 1 +.dword bar - 1 +.xword bar - 1 + +# IMAGE_REL_ARM64_ADDR32NB (BFD_RELOC_RVA) +.rva foo +.rva bar +.rva foo + 1 +.rva bar + 1 +.rva foo - 1 +.rva bar - 1 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_JUMP26) +b foo +b foo + 4 +b foo - 4 +b bar +b bar + 4 +b bar - 4 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_CALL26) +bl foo +bl foo + 4 +bl foo - 4 +bl bar +bl bar + 4 +bl bar - 4 +bl .text - 4 + +# IMAGE_REL_ARM64_BRANCH19 (BFD_RELOC_AARCH64_BRANCH19) +cbz x0, foo +cbz x0, foo + 4 +cbz x0, foo - 4 +cbz x0, bar +cbz x0, bar + 4 +cbz x0, bar - 4 +cbz x0, .text - 4 + +# IMAGE_REL_ARM64_BRANCH14 (BFD_RELOC_AARCH64_TSTBR14) +tbz x0, 0, foo +tbz x0, 0, foo + 4 +tbz x0, 0, foo - 4 +tbz x0, 0, bar +tbz x0, 0, bar + 4 +tbz x0, 0, bar - 4 +tbz x0, 0, .text - 4 + +# IMAGE_REL_ARM64_PAGEBASE_REL21 (BFD_RELOC_AARCH64_ADR_HI21_PCREL) +adrp x0, foo +adrp x0, foo + 1 +adrp x0, foo - 1 +adrp x0, bar +adrp x0, bar + 1 +adrp x0, bar - 1 +adrp x0, .text - 4 + +# IMAGE_REL_ARM64_REL21 (BFD_RELOC_AARCH64_ADR_LO21_PCREL) +adr x0, foo +adr x0, foo + 1 +adr x0, foo - 1 +adr x0, bar +adr x0, bar + 1 +adr x0, bar - 1 +adr x0, .text - 1 + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST8_LO12) +strb w0, [x0,:lo12:foo] +strb w0, [x0,:lo12:foo + 4] +strb w0, [x0,:lo12:foo - 4] +strb w0, [x0,:lo12:bar] +strb w0, [x0,:lo12:bar + 4] +strb w0, [x0,:lo12:bar - 4] +strb w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST16_LO12) +strh w0, [x0,:lo12:foo] +strh w0, [x0,:lo12:foo + 4] +strh w0, [x0,:lo12:foo - 4] +strh w0, [x0,:lo12:bar] +strh w0, [x0,:lo12:bar + 4] +strh w0, [x0,:lo12:bar - 4] +strh w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST32_LO12) +str w0, [x0,:lo12:foo] +str w0, [x0,:lo12:foo + 4] +str w0, [x0,:lo12:foo - 4] +str w0, [x0,:lo12:bar] +str w0, [x0,:lo12:bar + 4] +str w0, [x0,:lo12:bar - 4] +str w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST64_LO12) +str x0, [x0,:lo12:foo] +str x0, [x0,:lo12:foo + 8] +str x0, [x0,:lo12:foo - 8] +str x0, [x0,:lo12:bar] +str x0, [x0,:lo12:bar + 8] +str x0, [x0,:lo12:bar - 8] +str x0, [x0,:lo12:.text - 8] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST128_LO12) +str q0, [x0,:lo12:foo] +str q0, [x0,:lo12:foo + 16] +str q0, [x0,:lo12:foo - 16] +str q0, [x0,:lo12:bar] +str q0, [x0,:lo12:bar + 16] +str q0, [x0,:lo12:bar - 16] +str q0, [x0,:lo12:.text - 16] + +# IMAGE_REL_ARM64_PAGEOFFSET_12A (BFD_RELOC_AARCH64_ADD_LO12) +add x0, x0, #:lo12:foo +add x0, x0, #:lo12:foo + 1 +add x0, x0, #:lo12:foo - 1 +add x0, x0, #:lo12:bar +add x0, x0, #:lo12:bar + 1 +add x0, x0, #:lo12:bar - 1 +add x0, x0, #:lo12:.text - 1 diff --git a/ld/testsuite/ld-pe/aarch64.d b/ld/testsuite/ld-pe/aarch64.d new file mode 100644 index 00000000000..cc3daf9e9cd --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64.d @@ -0,0 +1,158 @@ + +tmpdir/aarch64.x: file format pei-aarch64-little + + +Disassembly of section .text: + +0000000000002000 <__rt_psrelocs_end>: + ... + +0000000000002010 : + 2010: 12345678 and w24, w19, #0xfffff003 + 2014: 12345678 and w24, w19, #0xfffff003 + 2018: 00002000 udf #8192 + 201c: 00002000 udf #8192 + 2020: 00002220 udf #8736 + 2024: 00002220 udf #8736 + 2028: 00002001 udf #8193 + 202c: 00002001 udf #8193 + 2030: 00002221 udf #8737 + 2034: 00002221 udf #8737 + 2038: 00001fff udf #8191 + 203c: 00001fff udf #8191 + 2040: 0000221f udf #8735 + 2044: 0000221f udf #8735 + 2048: 9abcdef0 .inst 0x9abcdef0 ; undefined + 204c: 12345678 and w24, w19, #0xfffff003 + 2050: 9abcdef0 .inst 0x9abcdef0 ; undefined + 2054: 12345678 and w24, w19, #0xfffff003 + 2058: 00002000 udf #8192 + 205c: 00000000 udf #0 + 2060: 00002000 udf #8192 + 2064: 00000000 udf #0 + 2068: 00002220 udf #8736 + 206c: 00000000 udf #0 + 2070: 00002220 udf #8736 + 2074: 00000000 udf #0 + 2078: 00002001 udf #8193 + 207c: 00000000 udf #0 + 2080: 00002001 udf #8193 + 2084: 00000000 udf #0 + 2088: 00002221 udf #8737 + 208c: 00000000 udf #0 + 2090: 00002221 udf #8737 + 2094: 00000000 udf #0 + 2098: 00001fff udf #8191 + 209c: 00000000 udf #0 + 20a0: 00001fff udf #8191 + 20a4: 00000000 udf #0 + 20a8: 0000221f udf #8735 + 20ac: 00000000 udf #0 + 20b0: 0000221f udf #8735 + 20b4: 00000000 udf #0 + 20b8: 00001010 udf #4112 + 20bc: 00001220 udf #4640 + 20c0: 00001011 udf #4113 + 20c4: 00001221 udf #4641 + 20c8: 0000100f udf #4111 + 20cc: 0000121f udf #4639 + 20d0: 17ffffd0 b 2010 + 20d4: 17ffffd0 b 2014 + 20d8: 17ffffcd b 200c <__rt_psrelocs_end\+0xc> + 20dc: 14000051 b 2220 + 20e0: 14000051 b 2224 + 20e4: 1400004e b 221c <.text> + 20e8: 97ffffca bl 2010 + 20ec: 97ffffca bl 2014 + 20f0: 97ffffc7 bl 200c <__rt_psrelocs_end\+0xc> + 20f4: 9400004b bl 2220 + 20f8: 9400004b bl 2224 + 20fc: 94000048 bl 221c <.text> + 2100: 97ffffbf bl 1ffc <__ImageBase\+0xffc> + 2104: b4fff860 cbz x0, 2010 + 2108: b4fff860 cbz x0, 2014 + 210c: b4fff800 cbz x0, 200c <__rt_psrelocs_end\+0xc> + 2110: b4000880 cbz x0, 2220 + 2114: b4000880 cbz x0, 2224 + 2118: b4000820 cbz x0, 221c <.text> + 211c: b4fff700 cbz x0, 1ffc <__ImageBase\+0xffc> + 2120: 3607f780 tbz w0, #0, 2010 + 2124: 3607f780 tbz w0, #0, 2014 + 2128: 3607f720 tbz w0, #0, 200c <__rt_psrelocs_end\+0xc> + 212c: 360007a0 tbz w0, #0, 2220 + 2130: 360007a0 tbz w0, #0, 2224 + 2134: 36000740 tbz w0, #0, 221c <.text> + 2138: 3607f620 tbz w0, #0, 1ffc <__ImageBase\+0xffc> + 213c: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2140: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2144: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2148: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 214c: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2150: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2154: f0ffffe0 adrp x0, 1000 <__ImageBase> + 2158: 10fff5c0 adr x0, 2010 + 215c: 30fff5a0 adr x0, 2011 + 2160: 70fff560 adr x0, 200f <__rt_psrelocs_end\+0xf> + 2164: 100005e0 adr x0, 2220 + 2168: 300005c0 adr x0, 2221 + 216c: 70000580 adr x0, 221f <.text\+0x3> + 2170: 70fff460 adr x0, 1fff <__ImageBase\+0xfff> + 2174: 39004000 strb w0, \[x0, #16\] + 2178: 39005000 strb w0, \[x0, #20\] + 217c: 39003000 strb w0, \[x0, #12\] + 2180: 39088000 strb w0, \[x0, #544\] + 2184: 39089000 strb w0, \[x0, #548\] + 2188: 39087000 strb w0, \[x0, #540\] + 218c: 393ff000 strb w0, \[x0, #4092\] + 2190: 79002000 strh w0, \[x0, #16\] + 2194: 79002800 strh w0, \[x0, #20\] + 2198: 79001800 strh w0, \[x0, #12\] + 219c: 79044000 strh w0, \[x0, #544\] + 21a0: 79044800 strh w0, \[x0, #548\] + 21a4: 79043800 strh w0, \[x0, #540\] + 21a8: 791ff800 strh w0, \[x0, #4092\] + 21ac: b9001000 str w0, \[x0, #16\] + 21b0: b9001400 str w0, \[x0, #20\] + 21b4: b9000c00 str w0, \[x0, #12\] + 21b8: b9022000 str w0, \[x0, #544\] + 21bc: b9022400 str w0, \[x0, #548\] + 21c0: b9021c00 str w0, \[x0, #540\] + 21c4: b90ffc00 str w0, \[x0, #4092\] + 21c8: f9000800 str x0, \[x0, #16\] + 21cc: f9000c00 str x0, \[x0, #24\] + 21d0: f9000400 str x0, \[x0, #8\] + 21d4: f9011000 str x0, \[x0, #544\] + 21d8: f9011400 str x0, \[x0, #552\] + 21dc: f9010c00 str x0, \[x0, #536\] + 21e0: f907fc00 str x0, \[x0, #4088\] + 21e4: 3d800400 str q0, \[x0, #16\] + 21e8: 3d800800 str q0, \[x0, #32\] + 21ec: 3d800000 str q0, \[x0\] + 21f0: 3d808800 str q0, \[x0, #544\] + 21f4: 3d808c00 str q0, \[x0, #560\] + 21f8: 3d808400 str q0, \[x0, #528\] + 21fc: 3d83fc00 str q0, \[x0, #4080\] + 2200: 91004000 add x0, x0, #0x10 + 2204: 91004400 add x0, x0, #0x11 + 2208: 91003c00 add x0, x0, #0xf + 220c: 91088000 add x0, x0, #0x220 + 2210: 91088400 add x0, x0, #0x221 + 2214: 91087c00 add x0, x0, #0x21f + 2218: 913ffc00 add x0, x0, #0xfff + +000000000000221c <.text>: + 221c: 00000000 udf #0 + +0000000000002220 : + 2220: 9abcdef0 .inst 0x9abcdef0 ; undefined + 2224: 12345678 and w24, w19, #0xfffff003 + +0000000000002228 <__CTOR_LIST__>: + 2228: ffffffff .inst 0xffffffff ; undefined + 222c: ffffffff .inst 0xffffffff ; undefined + ... + +0000000000002238 <__DTOR_LIST__>: + 2238: ffffffff .inst 0xffffffff ; undefined + 223c: ffffffff .inst 0xffffffff ; undefined + ... diff --git a/ld/testsuite/ld-pe/aarch64a.s b/ld/testsuite/ld-pe/aarch64a.s new file mode 100644 index 00000000000..58b8f5a00c0 --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64a.s @@ -0,0 +1,159 @@ +.text + +.dword 0 +.dword 0 + +# 2010 +.global foo +foo: + +# 4-byte literal +.long 0x12345678 +.word 0x12345678 + +# IMAGE_REL_ARM64_ADDR32 (BFD_RELOC_32) +.long foo +.word foo +.long bar +.word bar +.long foo + 1 +.word foo + 1 +.long bar + 1 +.word bar + 1 +.long foo - 1 +.word foo - 1 +.long bar - 1 +.word bar - 1 + +# 8-byte literal +.dword 0x123456789abcdef0 +.xword 0x123456789abcdef0 + +# IMAGE_REL_ARM64_ADDR64 (BFD_RELOC_64) +.dword foo +.xword foo +.dword bar +.xword bar +.dword foo + 1 +.xword foo + 1 +.dword bar + 1 +.xword bar + 1 +.dword foo - 1 +.xword foo - 1 +.dword bar - 1 +.xword bar - 1 + +# IMAGE_REL_ARM64_ADDR32NB (BFD_RELOC_RVA) +.rva foo +.rva bar +.rva foo + 1 +.rva bar + 1 +.rva foo - 1 +.rva bar - 1 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_JUMP26) +b foo +b foo + 4 +b foo - 4 +b bar +b bar + 4 +b bar - 4 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_CALL26) +bl foo +bl foo + 4 +bl foo - 4 +bl bar +bl bar + 4 +bl bar - 4 +bl .text - 4 + +# IMAGE_REL_ARM64_BRANCH19 (BFD_RELOC_AARCH64_BRANCH19) +cbz x0, foo +cbz x0, foo + 4 +cbz x0, foo - 4 +cbz x0, bar +cbz x0, bar + 4 +cbz x0, bar - 4 +cbz x0, .text - 4 + +# IMAGE_REL_ARM64_BRANCH14 (BFD_RELOC_AARCH64_TSTBR14) +tbz x0, 0, foo +tbz x0, 0, foo + 4 +tbz x0, 0, foo - 4 +tbz x0, 0, bar +tbz x0, 0, bar + 4 +tbz x0, 0, bar - 4 +tbz x0, 0, .text - 4 + +# IMAGE_REL_ARM64_PAGEBASE_REL21 (BFD_RELOC_AARCH64_ADR_HI21_PCREL) +adrp x0, foo +adrp x0, foo + 1 +adrp x0, foo - 1 +adrp x0, bar +adrp x0, bar + 1 +adrp x0, bar - 1 +adrp x0, .text - 4 + +# IMAGE_REL_ARM64_REL21 (BFD_RELOC_AARCH64_ADR_LO21_PCREL) +adr x0, foo +adr x0, foo + 1 +adr x0, foo - 1 +adr x0, bar +adr x0, bar + 1 +adr x0, bar - 1 +adr x0, .text - 1 + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST8_LO12) +strb w0, [x0,:lo12:foo] +strb w0, [x0,:lo12:foo + 4] +strb w0, [x0,:lo12:foo - 4] +strb w0, [x0,:lo12:bar] +strb w0, [x0,:lo12:bar + 4] +strb w0, [x0,:lo12:bar - 4] +strb w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST16_LO12) +strh w0, [x0,:lo12:foo] +strh w0, [x0,:lo12:foo + 4] +strh w0, [x0,:lo12:foo - 4] +strh w0, [x0,:lo12:bar] +strh w0, [x0,:lo12:bar + 4] +strh w0, [x0,:lo12:bar - 4] +strh w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST32_LO12) +str w0, [x0,:lo12:foo] +str w0, [x0,:lo12:foo + 4] +str w0, [x0,:lo12:foo - 4] +str w0, [x0,:lo12:bar] +str w0, [x0,:lo12:bar + 4] +str w0, [x0,:lo12:bar - 4] +str w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST64_LO12) +str x0, [x0,:lo12:foo] +str x0, [x0,:lo12:foo + 8] +str x0, [x0,:lo12:foo - 8] +str x0, [x0,:lo12:bar] +str x0, [x0,:lo12:bar + 8] +str x0, [x0,:lo12:bar - 8] +str x0, [x0,:lo12:.text - 8] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST128_LO12) +str q0, [x0,:lo12:foo] +str q0, [x0,:lo12:foo + 16] +str q0, [x0,:lo12:foo - 16] +str q0, [x0,:lo12:bar] +str q0, [x0,:lo12:bar + 16] +str q0, [x0,:lo12:bar - 16] +str q0, [x0,:lo12:.text - 16] + +# IMAGE_REL_ARM64_PAGEOFFSET_12A (BFD_RELOC_AARCH64_ADD_LO12) +add x0, x0, #:lo12:foo +add x0, x0, #:lo12:foo + 1 +add x0, x0, #:lo12:foo - 1 +add x0, x0, #:lo12:bar +add x0, x0, #:lo12:bar + 1 +add x0, x0, #:lo12:bar - 1 +add x0, x0, #:lo12:.text - 1 diff --git a/ld/testsuite/ld-pe/aarch64b.s b/ld/testsuite/ld-pe/aarch64b.s new file mode 100644 index 00000000000..3f4ec48f724 --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64b.s @@ -0,0 +1,8 @@ +.text + +.long 0 + +# 2220 +.global bar +bar: +.dword 0x123456789abcdef0 diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 613635fd609..c22c6d449f9 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -79,9 +79,15 @@ if {[istarget i*86-*-cygwin*] } if {[istarget "aarch64-*-pe*"]} { - run_dump_test "pe-aarch64" -} + run_dump_test "pe-aarch64" + + set pe_tests { + {"aarch64" "--image-base 0x1000" "" "" {aarch64a.s aarch64b.s} + {{objdump -dr aarch64.d}} "aarch64.x"} + } + run_ld_link_tests $pe_tests +} run_dump_test "image_size" run_dump_test "export_dynamic_warning" From patchwork Fri Jan 6 01:25:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39894 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp580750wrt; Thu, 5 Jan 2023 17:27:53 -0800 (PST) X-Google-Smtp-Source: AMrXdXsCq1pFW8FcC+FbUSKWyq4UDMpUroBiNrIcIdM5iCUYeTBj9PhbnJKrJcc+UEOvVOlvucJu X-Received: by 2002:a50:ed12:0:b0:46f:e8ec:abf0 with SMTP id j18-20020a50ed12000000b0046fe8ecabf0mr59677778eds.3.1672968473379; Thu, 05 Jan 2023 17:27:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968473; cv=none; d=google.com; s=arc-20160816; b=l24DTddG+5+S7M4yNqTTMIbqgO9EcCTgqwex6pNCVh293PMlyE0GYe4AO7L7T25uYl q39+e8VXDbjFS+I2SkXeIG+lha/xREFr7JFlNPMEvmOuhl2C92vCT/kmRF9kU+nyJROS atUDXw1EBGPkOV8Kng13KhHl4VTJ7ua+0cYCIqYU0d0sQLQu7bxGZxG8f984Oj2pV+73 oZ7BvNo+5NUaekjEqPm0s6Olsym4DKFdqRUZ8wx8cdhK8BPSlv0XGyhJ1yfHU+8ZcinE 5EUp5N+W0ruzJkVOi0viPbIS+Zn+mGq06dAKT7zoiWdHmV+7zpW/zIGa3T+MiQwAgoRD xCAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=39K9hc5tXi4+VxPJtBDzSWhqWo/drVfUGfgJRYkiidI=; b=NvK3fbE4fSE5OooCLt7VTgRk3n6TZoSSvu6SbNEqwsRGUWrEbBloprFUnUGsBBtBV6 tkMfttTDkFdYBqIDT2QbNX/2yc0GbIDkIkoFHyViEtsdt8WK94Z2Z7iB+EjrJVgM0s/4 onap1a/V64wD6nOkLbBlPtBayOpfaaAeWjVFwDR4z2OA8OqCsHwIayXh0QI8f6RhOPrU S7E8DzOginOR6unN0lK4nekv559x05C6j/pDo3SnpGG8qCK9rgxEYjtmyVdaM5G9d9ul oRQEyvrgWBaofmWVkGJB/uFvY5CHZAD8BuGXr5KtR94HbnQe+cunn3mos4lbl1tV4+7L wXyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="jvOx/V0X"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id s13-20020a056402520d00b0046de8e02697si36409969edd.239.2023.01.05.17.27.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:27:53 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="jvOx/V0X"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 63C82385B50B for ; Fri, 6 Jan 2023 01:26:38 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id DDB69385840E for ; Fri, 6 Jan 2023 01:25:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DDB69385840E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42a.google.com with SMTP id s9so44039wru.13 for ; Thu, 05 Jan 2023 17:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=39K9hc5tXi4+VxPJtBDzSWhqWo/drVfUGfgJRYkiidI=; b=jvOx/V0XsE35XOr33QxwTzItNqoNf2nrlosPVUbqvkiiZ8z3yHBA8hlEymCecdPh5V 9JndqMqGwgvT+E2J42Xv/Bj79oaxEWYS4TU1jfiuNcgiPTOYoUfFUKAHvh4X+plvxtm8 VAfhrttdSlYvboBav8+y1JozJKL6Cyz1u6eVnw0M1PKACjSxm5105qWAZghCqBkABs3t DpMRzebs7hMfas1p5l0pSwQQ2QQaUxSJGYS/hB47M0f9GBfKnWlYq56DGJiwOON0Wv73 4egVlb3SFWoeP7FAcTgSEiyU6zwvlHCiF3G6kFVvEkwoVzDsLkOQb4yZl8fxTEqAY6ge O67g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=39K9hc5tXi4+VxPJtBDzSWhqWo/drVfUGfgJRYkiidI=; b=Dzhssv4EFTD+gDr/vgLYwMU0R2ytN4Xg02K0+zaIZ6IvetXYfpGN281Tktatzrsadz +GFTYUA9pd7vhKzi/Jwpc0nd959KJf1s5vx2v63/F2x+0zaUQ22hIQkXlytenmwl6SCg bsc0zt97Av8ozRFLYRHMDXNITw/0578PbJYrYXVOCkWNjpfGVWMuv1G9aastBR3MlOA2 Ya5K4aMBdk+q6EWYy5X6Gsc/Tu9/OQvSc/BxoNGP5C29foWdnqGQwtbtBZRbAMvDWe2D a1vWrUlN1XflFaVE3LietjSgyuzDZT2hCbdu50gGyy+XBaflulqABR6fCzkU29ZxzmTO Vw7Q== X-Gm-Message-State: AFqh2koU5WjI2pyFqm0dJ2KoH84m34o0j7Jv/ZkwitciVFkrT7ssfIH9 a2QVWWAwdWSW9e76uWDGi8ZtlIY3o+zYWg== X-Received: by 2002:a05:6000:1a47:b0:242:12cf:fba8 with SMTP id t7-20020a0560001a4700b0024212cffba8mr39644326wry.55.1672968320497; Thu, 05 Jan 2023 17:25:20 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:20 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 5/7] Add .secrel32 for pe-aarch64 Date: Fri, 6 Jan 2023 01:25:07 +0000 Message-Id: <20230106012509.7918-5-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234590033787490?= X-GMAIL-MSGID: =?utf-8?q?1754234590033787490?= --- bfd/coff-aarch64.c | 47 +++++++++++++++++++++++- gas/config/tc-aarch64.c | 75 +++++++++++++++++++++++++++++---------- gas/config/tc-aarch64.h | 4 +++ ld/testsuite/ld-pe/pe.exp | 2 ++ 4 files changed, 108 insertions(+), 20 deletions(-) diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index d6c48eba63b..8e9081a0e74 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -267,6 +267,20 @@ coff_aarch64_addr32nb_reloc (bfd *abfd ATTRIBUTE_UNUSED, return bfd_reloc_ok; } +static bfd_reloc_status_type +coff_aarch64_secrel_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + bfd_putl32 (reloc_entry->addend, data + reloc_entry->address); + + return bfd_reloc_ok; +} + /* In case we're on a 32-bit machine, construct a 64-bit "-1" value. */ #define MINUS_ONE (~ (bfd_vma) 0) @@ -330,6 +344,11 @@ static const reloc_howto_type arm64_reloc_howto_32nb = HOWTO (IMAGE_REL_ARM64_AD coff_aarch64_addr32nb_reloc, "IMAGE_REL_ARM64_ADDR32NB", false, 0xffffffff, 0xffffffff, false); +static const reloc_howto_type arm64_reloc_howto_secrel = HOWTO (IMAGE_REL_ARM64_SECREL, 0, 4, 32, false, 0, + complain_overflow_bitfield, + coff_aarch64_secrel_reloc, "IMAGE_REL_ARM64_SECREL", + false, 0xffffffff, 0xffffffff, false); + static const reloc_howto_type* const arm64_howto_table[] = { &arm64_reloc_howto_abs, &arm64_reloc_howto_64, @@ -342,7 +361,8 @@ static const reloc_howto_type* const arm64_howto_table[] = { &arm64_reloc_howto_branch19, &arm64_reloc_howto_branch14, &arm64_reloc_howto_pgoff12a, - &arm64_reloc_howto_32nb + &arm64_reloc_howto_32nb, + &arm64_reloc_howto_secrel }; #ifndef NUM_ELEM @@ -387,6 +407,8 @@ coff_aarch64_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real return &arm64_reloc_howto_branch19; case BFD_RELOC_RVA: return &arm64_reloc_howto_32nb; + case BFD_RELOC_32_SECREL: + return &arm64_reloc_howto_secrel; default: BFD_FAIL (); return NULL; @@ -441,6 +463,8 @@ coff_aarch64_rtype_lookup (unsigned int code) return &arm64_reloc_howto_pgoff12a; case IMAGE_REL_ARM64_ADDR32NB: return &arm64_reloc_howto_32nb; + case IMAGE_REL_ARM64_SECREL: + return &arm64_reloc_howto_secrel; default: BFD_FAIL (); return NULL; @@ -811,6 +835,27 @@ coff_pe_aarch64_relocate_section (bfd *output_bfd, break; } + case IMAGE_REL_ARM64_SECREL: + { + uint64_t val; + int32_t addend; + + addend = bfd_getl32 (contents + rel->r_vaddr); + + val = sec->output_offset + sym_value + addend; + + if (val > 0xffffffff) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_SECREL", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + bfd_putl32 (val, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + default: info->callbacks->einfo (_("%F%P: Unhandled relocation type %u\n"), rel->r_type); diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 25e79431046..ad070cd0618 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -2097,6 +2097,27 @@ s_tlsdescldr (int ignored ATTRIBUTE_UNUSED) } #endif /* OBJ_ELF */ +#ifdef TE_PE +static void +s_secrel (int dummy ATTRIBUTE_UNUSED) +{ + expressionS exp; + + do + { + expression (&exp); + if (exp.X_op == O_symbol) + exp.X_op = O_secrel; + + emit_expr (&exp, 4); + } + while (*input_line_pointer++ == ','); + + input_line_pointer--; + demand_empty_rest_of_line (); +} +#endif /* TE_PE */ + static void s_aarch64_arch (int); static void s_aarch64_cpu (int); static void s_aarch64_arch_extension (int); @@ -2131,6 +2152,9 @@ const pseudo_typeS md_pseudo_table[] = { {"long", s_aarch64_cons, 4}, {"xword", s_aarch64_cons, 8}, {"dword", s_aarch64_cons, 8}, +#endif +#ifdef TE_PE + {"secrel32", s_secrel, 0}, #endif {"float16", float_cons, 'h'}, {"bfloat16", float_cons, 'b'}, @@ -9268,6 +9292,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg) break; case BFD_RELOC_RVA: + case BFD_RELOC_32_SECREL: break; default: @@ -9353,27 +9378,39 @@ cons_fix_new_aarch64 (fragS * frag, int where, int size, expressionS * exp) bfd_reloc_code_real_type type; int pcrel = 0; - /* Pick a reloc. - FIXME: @@ Should look at CPU word size. */ - switch (size) +#ifdef TE_PE + if (exp->X_op == O_secrel) { - case 1: - type = BFD_RELOC_8; - break; - case 2: - type = BFD_RELOC_16; - break; - case 4: - type = BFD_RELOC_32; - break; - case 8: - type = BFD_RELOC_64; - break; - default: - as_bad (_("cannot do %u-byte relocation"), size); - type = BFD_RELOC_UNUSED; - break; + exp->X_op = O_symbol; + type = BFD_RELOC_32_SECREL; } + else + { +#endif + /* Pick a reloc. + FIXME: @@ Should look at CPU word size. */ + switch (size) + { + case 1: + type = BFD_RELOC_8; + break; + case 2: + type = BFD_RELOC_16; + break; + case 4: + type = BFD_RELOC_32; + break; + case 8: + type = BFD_RELOC_64; + break; + default: + as_bad (_("cannot do %u-byte relocation"), size); + type = BFD_RELOC_UNUSED; + break; + } +#ifdef TE_PE + } +#endif fix_new_exp (frag, where, (int) size, exp, pcrel, type); } diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index d7d782ca29e..fa4b3ac577e 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -314,4 +314,8 @@ extern void aarch64_handle_align (struct frag *); extern int tc_aarch64_regname_to_dw2regnum (char *regname); extern void tc_aarch64_frame_initial_instructions (void); +#ifdef TE_PE +#define O_secrel O_md1 +#endif /* TE_PE */ + #endif /* TC_AARCH64 */ diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index c22c6d449f9..dae8c34066b 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -84,6 +84,8 @@ if {[istarget "aarch64-*-pe*"]} { set pe_tests { {"aarch64" "--image-base 0x1000" "" "" {aarch64a.s aarch64b.s} {{objdump -dr aarch64.d}} "aarch64.x"} + {".secrel32" "--disable-reloc-section" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel_64.d}} "secrel.x"} } run_ld_link_tests $pe_tests From patchwork Fri Jan 6 01:25:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39893 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp580599wrt; Thu, 5 Jan 2023 17:27:20 -0800 (PST) X-Google-Smtp-Source: AMrXdXubHP6+vp7PvlNDPuqqfFMKlAgTYn5fe/eIpuC9kBrJe9540bNi7akeuGBaRdYBXqX85uFv X-Received: by 2002:a05:6402:3784:b0:46d:cead:4eab with SMTP id et4-20020a056402378400b0046dcead4eabmr48535946edb.6.1672968440854; Thu, 05 Jan 2023 17:27:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968440; cv=none; d=google.com; s=arc-20160816; b=KTOSW/1USBG8sNPATLi4U0rqq31fV9/DE/W7uEkMu0ATR6OZlRRlJB9j89vgJ0bqPU RHweBKYst7UkFb2pjjTfdJTKRBQd/vVnGibTFTqvGfEY6iDVjvvB3liVXRzVXJCz4YgN mdi0VpOOd6/1vip0HdbUgqycMF9nugUrrTcYR5LHvQNq6v0nf4u363Rz1+QtW23zqwfm WLewx+wD0LDVn7bo+G7b04td0qWH84/xHK80AXiSQMBuUnXd/r9J5e7lZ1ttQVjERQHm R3g9h6+JDym8tq6fFFbmsIgjja8tBmMzcyajoNPhZu2L/4UKArtHg5JOyb/D9u4bRxPY VNXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=Tkb9+kRPsXJ+l4h0+omSB1oJ3sk3ivCDPWrqnjLRWyQ=; b=j5QyRbGIFi8SLb21INSpd7W+TaWptncwd1j0aSPXCeXM5NbAFQmYSoG4DFy7FQAUmj j63FzDIk400/4jQ33ticdX9za2N95uWrOow03O6kpsWSOa3tFkt6eLvV1BBM4WugUqv+ oXYLQqt6AIbZfS1mxTUuuHWXPgJMrGiequQEPx/J1J8hmH13X7HDdb00yW80YoQ3XtK0 +lb2VgT0ar3CAMg/5pMYXPPjY6caKhJXZjlyJF9yep5Xnu/X7STRkkZmKKJ3MnwKmzwv p4QSO3qqXQ97TS/ZOYTxivq3cROBlE6o/z7LV90XRbJw1OrM2Y+sT/2rWO9kwWhsCxFL aeJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=F0hQUEdy; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id f17-20020a0564021e9100b00483dc6852f8si34868834edf.406.2023.01.05.17.27.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:27:20 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=F0hQUEdy; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 51B11385B539 for ; Fri, 6 Jan 2023 01:26:22 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 2505B3858428 for ; Fri, 6 Jan 2023 01:25:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2505B3858428 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x436.google.com with SMTP id m7so51536wrn.10 for ; Thu, 05 Jan 2023 17:25:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=Tkb9+kRPsXJ+l4h0+omSB1oJ3sk3ivCDPWrqnjLRWyQ=; b=F0hQUEdyB7P32E1wYuoxta0zQ25d3Fh458jpWNKQIfktnA0PvrwIm2gJJi2Zll7Pno Yopi4uzzF0o6dGMgPK9CV7X1RDvDq6AxzgKAxBO0aVzZ2nlh1klZdFvAIO9+SBVHfUk1 IpFir3d3i4vY8a3auv9wbJOqEyzgMHTkUsmLPtJI53XVxcDgNTbBezcaXCm0RQA4UaWV pwZqxisc/0V6qlCjne273b7tR6iItRk7ZvdNOkEbfsuUT704e5LyKgcPu9252H3DjzO4 QeHlhlA9+BJxLDE3J7T4P+mBWet6LFNvoEkRXrEx+5ASobIp0+8Isyg9mmisIQdrGXET bEgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Tkb9+kRPsXJ+l4h0+omSB1oJ3sk3ivCDPWrqnjLRWyQ=; b=DXpQvKYsg1JQwaBmoL/kc0zuseL21Ti+VDUcmdgaZ/Lj3NvkwAcZwRGiP1yPJixmJC dWB/jxXEy7E0qmxOc5XoJzltvxDBpFKTHnE2YPKC0Dnb+I/J+o/yoswa09ozYpJ4lr8+ XmkfDV4VqaGfxyPF+0QnvIXg/2RIiwTqKC7tEc4IkemUupBqWUe5esJu9R18GQRlJYu/ TNtpkOhAYUzgH4G8NeJ1hJmJeMwnW5veC7soiT6XFJKbG34cWm/SpUSQsRUJDTcUebjE 5+Z/GDRMlLyrj1inrCJqYsmFNOO3urMlWpk+XIHdT+ueRPJEmInA9kLdDzYoP0hBzWt0 LzHw== X-Gm-Message-State: AFqh2kpsw9ZIsQjYxwL70WTPInjDEmoX3kVttmaoyoIqkfJMlaktIMpW pE6UkbBziYHjGowUX0OcP1m5zjyPnkRRUA== X-Received: by 2002:a5d:5a85:0:b0:264:ae8b:7dcd with SMTP id bp5-20020a5d5a85000000b00264ae8b7dcdmr34397459wrb.24.1672968321651; Thu, 05 Jan 2023 17:25:21 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:21 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 6/7] Add aarch64-w64-mingw32 target Date: Fri, 6 Jan 2023 01:25:08 +0000 Message-Id: <20230106012509.7918-6-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234555928923774?= X-GMAIL-MSGID: =?utf-8?q?1754234555928923774?= --- bfd/config.bfd | 4 +-- bfd/peicode.h | 2 +- binutils/configure | 10 ++++++ binutils/configure.ac | 10 ++++++ binutils/dlltool.c | 57 +++++++++++++++++++++++++++++--- binutils/rescoff.c | 3 ++ gas/configure.tgt | 2 +- gas/testsuite/gas/pe/pe.exp | 2 +- ld/configure.tgt | 4 +-- ld/emultempl/pep.em | 11 +++--- ld/pe-dll.c | 12 +++---- ld/testsuite/ld-pe/pe-aarch64.d | 13 ++++++-- ld/testsuite/ld-pe/pe.exp | 2 +- ld/testsuite/ld-scripts/weak.exp | 1 + 14 files changed, 109 insertions(+), 24 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd index 800afa8105f..0b0f7d50602 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -247,9 +247,9 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec" want64=true ;; - aarch64-*-pe*) + aarch64-*-pe* | aarch64-*-mingw*) targ_defvec=aarch64_pe_le_vec - targ_selvecs="aarch64_pe_le_vec aarch64_pei_le_vec" + targ_selvecs="aarch64_pe_le_vec aarch64_pei_le_vec aarch64_elf64_le_vec aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec pdb_vec" want64=true targ_underscore=no ;; diff --git a/bfd/peicode.h b/bfd/peicode.h index 6b71f204826..3613b44b48b 100644 --- a/bfd/peicode.h +++ b/bfd/peicode.h @@ -440,7 +440,7 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) #define SIZEOF_IDATA2 (5 * 4) /* For PEx64 idata4 & 5 have thumb size of 8 bytes. */ -#ifdef COFF_WITH_pex64 +#if defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64) #define SIZEOF_IDATA4 (2 * 4) #define SIZEOF_IDATA5 (2 * 4) #else diff --git a/binutils/configure b/binutils/configure index 20fd420dbaa..f27ee48be73 100755 --- a/binutils/configure +++ b/binutils/configure @@ -14578,6 +14578,16 @@ do esac case $targ in + aarch64-*-mingw*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64" + fi + DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64" + BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then diff --git a/binutils/configure.ac b/binutils/configure.ac index a217c81858f..dc93ac1f390 100644 --- a/binutils/configure.ac +++ b/binutils/configure.ac @@ -355,6 +355,16 @@ do esac case $targ in + aarch64-*-mingw*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64" + fi + DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64" + BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then diff --git a/binutils/dlltool.c b/binutils/dlltool.c index 7ca6906e2bd..31c864d7d5c 100644 --- a/binutils/dlltool.c +++ b/binutils/dlltool.c @@ -442,6 +442,11 @@ static const char *mname = "arm"; static const char *mname = "arm-wince"; #endif +#ifdef DLLTOOL_DEFAULT_AARCH64 +/* arm64 rather than aarch64 to match llvm-dlltool */ +static const char *mname = "arm64"; +#endif + #ifdef DLLTOOL_DEFAULT_I386 static const char *mname = "i386"; #endif @@ -560,6 +565,14 @@ static const unsigned char mcore_le_jtab[] = 0x00, 0x00, 0x00, 0x00 /*
*/ }; +static const unsigned char aarch64_jtab[] = +{ + 0x10, 0x00, 0x00, 0x90, /* adrp x16, 0 */ + 0x10, 0x02, 0x00, 0x91, /* add x16, x16, #0x0 */ + 0x10, 0x02, 0x40, 0xf9, /* ldr x16, [x16] */ + 0x00, 0x02, 0x1f, 0xd6 /* br x16 */ +}; + static const char i386_trampoline[] = "\tpushl %%ecx\n" "\tpushl %%edx\n" @@ -717,6 +730,15 @@ mtable[] = i386_x64_dljtab, sizeof (i386_x64_dljtab), 2, 9, 14, true, i386_x64_trampoline } , + { +#define MAARCH64 10 + "arm64", ".byte", ".short", ".long", ".asciz", "//", + "bl ", ".global", ".space", ".balign\t2", ".balign\t4", "", + "pe-aarch64-little", bfd_arch_aarch64, + aarch64_jtab, sizeof (aarch64_jtab), 0, + 0, 0, 0, 0, 0, false, 0 + } + , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; @@ -864,6 +886,7 @@ rvaafter (int mach) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: break; default: /* xgettext:c-format */ @@ -888,6 +911,7 @@ rvabefore (int mach) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: return ".rva\t"; default: /* xgettext:c-format */ @@ -910,6 +934,7 @@ asm_prefix (int mach, const char *name) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: break; case M386: case MX86: @@ -2474,6 +2499,8 @@ make_one_lib_file (export_type *exp, int i, int delay) case TEXT: if (! exp->data) { + unsigned int rpp_len; + si->size = HOW_JTAB_SIZE; si->data = xmalloc (HOW_JTAB_SIZE); memcpy (si->data, HOW_JTAB, HOW_JTAB_SIZE); @@ -2481,7 +2508,12 @@ make_one_lib_file (export_type *exp, int i, int delay) /* Add the reloc into idata$5. */ rel = xmalloc (sizeof (arelent)); - rpp = xmalloc (sizeof (arelent *) * (delay ? 4 : 2)); + rpp_len = delay ? 4 : 2; + + if (machine == MAARCH64) + rpp_len++; + + rpp = xmalloc (sizeof (arelent *) * rpp_len); rpp[0] = rel; rpp[1] = 0; @@ -2507,6 +2539,22 @@ make_one_lib_file (export_type *exp, int i, int delay) BFD_RELOC_32_PCREL); rel->sym_ptr_ptr = iname_pp; } + else if (machine == MAARCH64) + { + arelent *rel_add; + + rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL); + rel->sym_ptr_ptr = secdata[IDATA5].sympp; + + rel_add = xmalloc (sizeof (arelent)); + rel_add->address = 4; + rel_add->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADD_LO12); + rel_add->sym_ptr_ptr = secdata[IDATA5].sympp; + rel_add->addend = 0; + + rpp[rpp_len - 2] = rel_add; + rpp[rpp_len - 1] = 0; + } else { rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32); @@ -2527,7 +2575,7 @@ make_one_lib_file (export_type *exp, int i, int delay) } sec->orelocation = rpp; - sec->reloc_count = delay ? 3 : 1; + sec->reloc_count = rpp_len - 1; } break; @@ -3674,7 +3722,7 @@ usage (FILE *file, int status) fprintf (file, _("Usage %s \n"), program_name); /* xgetext:c-format */ fprintf (file, _(" -m --machine Create as DLL for . [default: %s]\n"), mname); - fprintf (file, _(" possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, thumb\n")); + fprintf (file, _(" possible : arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n")); fprintf (file, _(" -e --output-exp Generate an export file.\n")); fprintf (file, _(" -l --output-lib Generate an interface library.\n")); fprintf (file, _(" -y --output-delaylib Create a delay-import library.\n")); @@ -3967,7 +4015,8 @@ main (int ac, char **av) machine = i; /* Check if we generated PE+. */ - create_for_pep = strcmp (mname, "i386:x86-64") == 0; + create_for_pep = strcmp (mname, "i386:x86-64") == 0 || + strcmp (mname, "arm64") == 0; { /* Check the default underscore */ diff --git a/binutils/rescoff.c b/binutils/rescoff.c index 1fb6bf41105..40a8f452a1f 100644 --- a/binutils/rescoff.c +++ b/binutils/rescoff.c @@ -463,6 +463,9 @@ write_coff_file (const char *filename, const char *target, #elif defined DLLTOOL_ARM if (! bfd_set_arch_mach (abfd, bfd_arch_arm, 0)) bfd_fatal ("bfd_set_arch_mach(arm)"); +#elif defined DLLTOOL_AARCH64 + if (! bfd_set_arch_mach (abfd, bfd_arch_aarch64, 0)) + bfd_fatal ("bfd_set_arch_mach(aarch64)"); #else /* FIXME: This is obviously i386 specific. */ if (! bfd_set_arch_mach (abfd, bfd_arch_i386, 0)) diff --git a/gas/configure.tgt b/gas/configure.tgt index c210845d567..b7a1874781f 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -135,7 +135,7 @@ case ${generic_target} in esac ;; aarch64*-*-netbsd*) fmt=elf em=nbsd;; aarch64*-*-openbsd*) fmt=elf;; - aarch64*-*-pe*) fmt=coff em=pepaarch64 ;; + aarch64*-*-pe* | aarch64*-*-mingw*) fmt=coff em=pepaarch64 ;; alpha-*-*vms*) fmt=evax ;; alpha-*-osf*) fmt=ecoff ;; alpha-*-linux*ecoff*) fmt=ecoff ;; diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp index a1bb4bc6a11..172bc3caf6e 100644 --- a/gas/testsuite/gas/pe/pe.exp +++ b/gas/testsuite/gas/pe/pe.exp @@ -54,7 +54,7 @@ if ([istarget "x86_64-*-mingw*"]) then { # This test is only for AArch64 -if ([istarget "aarch64-*-pe*"]) { +if {[istarget "aarch64-*-pe*"] || [istarget "aarch64-*-mingw*"]} { run_dump_test "pe-aarch64" } diff --git a/ld/configure.tgt b/ld/configure.tgt index aa74d2521bf..4f9a61f95ce 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -118,10 +118,10 @@ aarch64-*-linux*) targ_emul=aarch64linux aarch64-*-haiku*) targ_emul=aarch64haiku targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath" ;; -aarch64-*-pe*) +aarch64-*-pe* | aarch64-*-mingw*) targ_emul=aarch64pe targ_extra_emuls="arm64pe" - targ_extra_ofiles="deffilep.o pep-dll-aarch64.o" + targ_extra_ofiles="deffilep.o pep-dll-aarch64.o pe-dll.o" ;; alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) targ_emul=elf64alpha_fbsd diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index d61cab86d75..d900e384d51 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -117,7 +117,7 @@ ${pdb_support+#include \"pdb.h\"} #define PE_DEF_SECTION_ALIGNMENT ${OVERRIDE_SECTION_ALIGNMENT} #endif -#ifdef TARGET_IS_i386pep +#if defined(TARGET_IS_i386pep) || defined(COFF_WITH_peAArch64) #define DLL_SUPPORT #endif @@ -126,7 +126,7 @@ ${pdb_support+#include \"pdb.h\"} | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \ | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT) -#if defined(TARGET_IS_i386pep) || ! defined(DLL_SUPPORT) +#if defined(TARGET_IS_i386pep) || defined(COFF_WITH_peAArch64) || ! defined(DLL_SUPPORT) #define PE_DEF_SUBSYSTEM 3 #undef NT_EXE_IMAGE_BASE #define NT_EXE_IMAGE_BASE \ @@ -1218,6 +1218,7 @@ make_import_fixup (arelent *rel, asection *s, char *name, const char *symname) else if (suc) _addend = bfd_get_16 (s->owner, addend); break; + case 26: case 32: suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 4); if (suc && rel->howto->pc_relative) @@ -1573,14 +1574,14 @@ gld${EMULATION_NAME}_after_open (void) if (pep_enable_stdcall_fixup) /* -1=warn or 1=enable */ pep_fixup_stdcalls (); -#ifndef TARGET_IS_i386pep +#if !defined(TARGET_IS_i386pep) && !defined(COFF_WITH_peAArch64) if (bfd_link_pic (&link_info)) #else if (!bfd_link_relocatable (&link_info)) #endif pep_dll_build_sections (link_info.output_bfd, &link_info); -#ifndef TARGET_IS_i386pep +#if !defined(TARGET_IS_i386pep) && !defined(COFF_WITH_peAArch64) else pep_exe_build_sections (link_info.output_bfd, &link_info); #endif @@ -1876,6 +1877,8 @@ gld${EMULATION_NAME}_recognized_file (lang_input_statement_type *entry ATTRIBUTE #ifdef DLL_SUPPORT #ifdef TARGET_IS_i386pep pep_dll_id_target ("pei-x86-64"); +#elif defined(COFF_WITH_peAArch64) + pep_dll_id_target ("pei-aarch64-little"); #endif if (pep_bfd_is_dll (entry->the_bfd)) return pep_implied_import_dll (entry->filename); diff --git a/ld/pe-dll.c b/ld/pe-dll.c index de876ca5094..a2584c39d0d 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -2257,13 +2257,12 @@ static const unsigned char jmp_ix86_bytes[] = 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90 }; -/* _function: - b <__imp_function> - nop */ static const unsigned char jmp_aarch64_bytes[] = { - 0x00, 0x00, 0x00, 0x14, - 0x1f, 0x20, 0x03, 0xD5 + 0x10, 0x00, 0x00, 0x90, /* adrp x16, 0 */ + 0x10, 0x02, 0x00, 0x91, /* add x16, x16, #0x0 */ + 0x10, 0x02, 0x40, 0xf9, /* ldr x16, [x16] */ + 0x00, 0x02, 0x1f, 0xd6 /* br x16 */ }; /* _function: @@ -2431,7 +2430,8 @@ make_one (def_file_export *exp, bfd *parent, bool include_jmp_stub) quick_reloc (abfd, 8, BFD_RELOC_32, 2); break; case PE_ARCH_aarch64: - quick_reloc (abfd, 0, BFD_RELOC_AARCH64_JUMP26, 2); + quick_reloc (abfd, 0, BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL, 2); + quick_reloc (abfd, 4, BFD_RELOC_AARCH64_ADD_LO12, 2); break; default: abort (); diff --git a/ld/testsuite/ld-pe/pe-aarch64.d b/ld/testsuite/ld-pe/pe-aarch64.d index fac02b5fd87..ab6370fb514 100644 --- a/ld/testsuite/ld-pe/pe-aarch64.d +++ b/ld/testsuite/ld-pe/pe-aarch64.d @@ -6,11 +6,20 @@ Disassembly of section .text: -0000000140001000 <__rt_psrelocs_end>: +0000000140001000 <___crt_xc_end__>: 140001000: d2800281 mov x1, #0x14 // #20 140001004: 14000001 b 140001008 0000000140001008 : 140001008: d65f03c0 ret 14000100c: 00000000 udf #0 -#... + +0000000140001010 <__CTOR_LIST__>: + 140001010: ffffffff .inst 0xffffffff ; undefined + 140001014: ffffffff .inst 0xffffffff ; undefined + ... + +0000000140001020 <__DTOR_LIST__>: + 140001020: ffffffff .inst 0xffffffff ; undefined + 140001024: ffffffff .inst 0xffffffff ; undefined + ... diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index dae8c34066b..c4d48bb8c08 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -78,7 +78,7 @@ if {[istarget i*86-*-cygwin*] run_ld_link_tests $pe_tests } -if {[istarget "aarch64-*-pe*"]} { +if {[istarget "aarch64-*-pe*"] || [istarget "aarch64-*-mingw*"]} { run_dump_test "pe-aarch64" set pe_tests { diff --git a/ld/testsuite/ld-scripts/weak.exp b/ld/testsuite/ld-scripts/weak.exp index 78d0616a0e1..bf6f8862571 100644 --- a/ld/testsuite/ld-scripts/weak.exp +++ b/ld/testsuite/ld-scripts/weak.exp @@ -31,6 +31,7 @@ if {! [is_elf_format] && ! [is_pecoff_format]} { # Weak symbols are broken for most PE targets. if {! [istarget i?86-*-*] && ! [istarget sh-*-*]} { setup_xfail *-*-pe* + setup_xfail *-*-mingw* } # hppa64 is incredibly broken From patchwork Fri Jan 6 01:25:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 39895 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp581006wrt; Thu, 5 Jan 2023 17:28:54 -0800 (PST) X-Google-Smtp-Source: AMrXdXtSaLGdDnQdnp5tm2ov4MGDh91gIMwvMehV9vfF49U17nUd7enVaESv0IUy3RPwrBTO/bMt X-Received: by 2002:a05:6402:25c6:b0:478:5688:7c9f with SMTP id x6-20020a05640225c600b0047856887c9fmr55884202edb.29.1672968534060; Thu, 05 Jan 2023 17:28:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672968534; cv=none; d=google.com; s=arc-20160816; b=RcS/VfvpRNwdsNF0TdelPgQIzIvuqeOBMk7lc6iEZcAKqImJdS26pYiQRI+sVNkXd+ t6O46w7vM+Wb3PVkOKGR/pajZ4XgdyzgmtQ27sGl5lnn9E6BjxTjyqLzMUnQwJRdvlD8 RX0vd/+c1cSvvVIHV/WGLe6Sn2qvD7Xm0T+vxai9vjUyZFDe94N0hiW0ZhDmieDN+ho6 4vIsrdZU4iDd19AuN7gKmhwHSP3DGtzm95K45a0oMqr7M3ZtX2SN0cpz74nSq00u5Zv3 CgpAfKksSH5iuCwR6qFeWhhIvz0+Mtq1TtT6QMDf06pq6HmBIdPeZLgIklhuTEFkEPDG lJMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=kLw5umgyyIk70ZgUqU2d+xkyY0Yt9uBL97dYoy+xRks=; b=RP2/9x9yzg33QzCjBM3KxEVhCr2U/5QlPEBL4LPHNyneWoH8YZT6rHuoFuXkdNY/n/ as0WjLHXiiuhDFmW7BKmu6Qd0rxxEOQvLhlB+AZKb9hvODq06oMgIkJwuF6864DSobDp GIHThbYu3AazE7qeKdIIJmw+XEE0GYGDEa6JSxFnowOdJno3qgvIZWG8ZfVyowM65stc XzBMMoUZPAFb/yN/HVmynkclNfBb/OYFZxOTJLmoysA6nyIH8YnsyAfO3lkdgd93DzOI XG7WHxBdtekXW0mKbg0PnxFKKdDMI0X1KSHbxYdCQJpdNACozdwwrqKCeXfVQ2n4SdKk EmEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="NIuha/LU"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id d26-20020aa7ce1a000000b00457f31c1a10si31028850edv.584.2023.01.05.17.28.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:28:54 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="NIuha/LU"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 66BA43881D0D for ; Fri, 6 Jan 2023 01:27:23 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 1531A3858C2C for ; Fri, 6 Jan 2023 01:25:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1531A3858C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x330.google.com with SMTP id z8-20020a05600c220800b003d33b0bda11so3208733wml.0 for ; Thu, 05 Jan 2023 17:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=kLw5umgyyIk70ZgUqU2d+xkyY0Yt9uBL97dYoy+xRks=; b=NIuha/LUuafUjks5OMjzuDfegIB7PyVVJKx5YW4PYBTKkDY91IxzcoJ2tKXekhPWlC vfcRdMGR8u+R0PaMp+eeQoEnprgfEqMNtgMWy/sa8QkxG3GV/8z9G0/zfAJr7KekuV9r ISPYbvukwfogg3tqesQ0ZCPIeTFUXp62N6jxgZCQBcGSDUveTPLhF+nvIpVYbfl0+J/v 4L6DatPXGu/0DzMqBGZeFQfuc9mv/tCQy5CiPo/Dd7JXK6wT+DO4+xO8k8ZxCf41GQMY O6pl2SuoHQ/N8tj1HbYw53Sr8xDfWh8p2xbvOb2vcgDJUcHLvjWQQK7A9GmaG+sicuOb 0Bxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kLw5umgyyIk70ZgUqU2d+xkyY0Yt9uBL97dYoy+xRks=; b=7ZC8F51MATOrhANYGPyIkYOhBn2m7GXNG6jFxS2BvAGuF1zLwIowJ5cDH1pwb/5bJf Fg8TUZlQQG1xbk2Beg8rooTBCVfyAnv6YJINYd0V76puYlC1SQYLF5c3lVfqrjUmvHsj NQLk3mR3s8l+siYXxuKty6uYV+Azqy4Hfo3k03NsWaBm6eZMAs2GyqmvYBWD0YBTmH3W B39XfnAOfzwe2r6Vd+WWpWRxSstDYqKt286BUd51GMLZPAl4WFshntlqT+UjVGTacHZR F7zkPX+g4qWtwtIxu5XeqZpuhSQRjKNeFXqI8aIa3OblMVt/CXvbZG+zdl+FRvQu+diH oKWQ== X-Gm-Message-State: AFqh2krLnUUulT5yF6SnmSHsGZxOqyQgKO6t9vPDK6HuqSHULQiWEuQv qaUdMe9E34sMx+2SxU8Jcp5yavAjO2NLAQ== X-Received: by 2002:a05:600c:600a:b0:3d1:ed41:57c0 with SMTP id az10-20020a05600c600a00b003d1ed4157c0mr41233108wmb.30.1672968322739; Thu, 05 Jan 2023 17:25:22 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id l17-20020a056000023100b00241fab5a296sm37531644wrz.40.2023.01.05.17.25.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 17:25:22 -0800 (PST) From: Mark Harmstone To: binutils@sourceware.org, Tamar.Christina@arm.com, nickc@redhat.com, pinskia@gmail.com, Richard.Earnshaw@foss.arm.com, nightstrike@gmail.com, wej22007@outlook.com, zac.walker@linaro.org Cc: Mark Harmstone Subject: [PATCH 7/7] gas: Restore tc_pe_dwarf2_emit_offset for pe-aarch64 Date: Fri, 6 Jan 2023 01:25:09 +0000 Message-Id: <20230106012509.7918-7-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230106012509.7918-1-mark@harmstone.com> References: <20230106012509.7918-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754234653718759664?= X-GMAIL-MSGID: =?utf-8?q?1754234653718759664?= --- gas/config/tc-aarch64.c | 11 +++++++++++ gas/config/tc-aarch64.h | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index ad070cd0618..2b74db256a2 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -2116,6 +2116,17 @@ s_secrel (int dummy ATTRIBUTE_UNUSED) input_line_pointer--; demand_empty_rest_of_line (); } + +void +tc_pe_dwarf2_emit_offset (symbolS *symbol, unsigned int size) +{ + expressionS exp; + + exp.X_op = O_secrel; + exp.X_add_symbol = symbol; + exp.X_add_number = 0; + emit_expr (&exp, size); +} #endif /* TE_PE */ static void s_aarch64_arch (int); diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index fa4b3ac577e..134c1f87b4f 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -315,7 +315,12 @@ extern int tc_aarch64_regname_to_dw2regnum (char *regname); extern void tc_aarch64_frame_initial_instructions (void); #ifdef TE_PE + #define O_secrel O_md1 + +#define TC_DWARF2_EMIT_OFFSET tc_pe_dwarf2_emit_offset +void tc_pe_dwarf2_emit_offset (symbolS *, unsigned int); + #endif /* TE_PE */ #endif /* TC_AARCH64 */