From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe2e.google.com (mail-vs1-xe2e.google.com [IPv6:2607:f8b0:4864:20::e2e]) by sourceware.org (Postfix) with ESMTPS id 4AEF73857BBB for ; Wed, 25 May 2022 03:23:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4AEF73857BBB Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-vs1-xe2e.google.com with SMTP id 67so4987866vsh.2 for ; Tue, 24 May 2022 20:23:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7wyukHN/0p1f6ry/ezuu16cOq7cVm8oOigKDIAy0kf8=; b=Gmf+Giv30Ay7YfCfAKWAPDgG5YLJ9pIs1EwlxCF6J4/PYgt9lILYcc9J2hQkBScCA3 ofuUy/1vT1ZcZqA6KmVblPDnw0YrWJsYco95cdf39Ll9m4U4v8bI4AZ8s4DfmBuuYeoo lb6G/8E//HHOndE2iazOW8024sXL1FgRJa7wPwRMjOiaxQM7qU5d/xhgqI0s3TJIKDxW qLJ3JyV127jUtZQ0Oq8OHN2Am/nrwOGg3/4gor85Tj2mA+qXceyFyC7cS8I9zEH5m6nO pt5+WtJQA26GpzzAuAf5YZE43h0NwAIDYvu767s0p/JH5rg9bVmgCUFxE0vhH9pxkJBp NtlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7wyukHN/0p1f6ry/ezuu16cOq7cVm8oOigKDIAy0kf8=; b=p6IDCQ8+xj4UomPxD68u7CJgc1B/KI8t01GLAbb1VHJOx+ncroSt+G5TytEnnMPqvn JXziGT6NAZxXcIgWldl0TnRvbko8JwNA6fBgziiED+razL91Sv11AEM62H6LLqKoCBDb FOcpHDUIVsBNSSURCpFmsPNLN1VEmKndVcJ64rdpkvkeFLX3qYcS1ociVHyYcXLVjCb0 la6uDgURjOD1vFsNMS7YX6nX5ezHJFOMNwK/j4v6X/DnHeKeSaNpeu1l4qeSSwnhzFT1 ScbhvCqG9cwFeMxPxiPHjWVS+3CwHHq6+iuY6NQDMauWqvReI5i1RDplUJMf/AeyWgT5 enDA== X-Gm-Message-State: AOAM532rcz6BJnuWO1YedTFb3jLadfxNd6G7mHnO6qMMY542rq1NhM8u OJSivXGxIavHO8t2cythAQNty94biwpf/TEYgOHCJQ== X-Google-Smtp-Source: ABdhPJyr7LxYmEc4JhYyCLuZJ21azErr58kNd4T1GMuanc2OSDML4C09Qm77igytbpCHdq1pNzcaBEPzrWxF50IMABk= X-Received: by 2002:a05:6102:548a:b0:32d:8c72:ee18 with SMTP id bk10-20020a056102548a00b0032d8c72ee18mr12271990vsb.70.1653449029555; Tue, 24 May 2022 20:23:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nelson Chu Date: Wed, 25 May 2022 11:23:40 +0800 Message-ID: Subject: Re: [PATCH v2 1/1] RISC-V: Fix RV32Q conflict To: Tsukasa OI Cc: Palmer Dabbelt , Jan Beulich , Binutils Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: , X-List-Received-Date: Wed, 25 May 2022 03:23:52 -0000 On Sun, Feb 27, 2022 at 4:51 PM Tsukasa OI wrote: > > This commit makes RV32 + 'Q' extension (version 2.2 or later) not > conflicting since this combination is no longer prohibited by the > specification. > > bfd/ChangeLog: > > * elfxx-riscv.c (riscv_parse_check_conflicts): Remove conflict > detection that prohibits RV32Q on 'Q' version 2.2 or later. > > gas/ChangeLog: > > * testsuite/gas/riscv/march-fail-rv32iq.d: Removed. > * testsuite/gas/riscv/march-fail-rv32iq.l: Likewise. > * testsuite/gas/riscv/march-fail-rv32iq2p0.d: New test > showing RV32IQ fails on 'Q' extension version 2.0. > * testsuite/gas/riscv/march-fail-rv32iq2p0.l: Likewise. > * testsuite/gas/riscv/march-fail-rv32iq2.d: Likewise. > * testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d: New test > showing RV32IQ fails on ISA specification version 2.2. > * testsuite/gas/riscv/march-ok-rv32iq2p2.d: New test > showing RV32IQ succesds on 'Q' extension version 2.2. > * testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d: New test > showing RV32IQ succesds on ISA specification 20190608. Most of these testcases seems redundant, just test two of them should be enough - rv32iq2p0 and rv32iq2p2. Test ISA spec version here is unnecessary, since they don't really related to this patch. Anyway, we could scale them down in the future patches, so committed for now. Thanks Nelson > --- > bfd/elfxx-riscv.c | 5 +++-- > gas/testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d | 3 +++ > gas/testsuite/gas/riscv/march-fail-rv32iq.d | 3 --- > gas/testsuite/gas/riscv/march-fail-rv32iq2.d | 3 +++ > gas/testsuite/gas/riscv/march-fail-rv32iq2p0.d | 3 +++ > .../riscv/{march-fail-rv32iq.l => march-fail-rv32iq2p0.l} | 0 > gas/testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d | 5 +++++ > gas/testsuite/gas/riscv/march-ok-rv32iq2p2.d | 5 +++++ > 8 files changed, 22 insertions(+), 5 deletions(-) > create mode 100644 gas/testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d > delete mode 100644 gas/testsuite/gas/riscv/march-fail-rv32iq.d > create mode 100644 gas/testsuite/gas/riscv/march-fail-rv32iq2.d > create mode 100644 gas/testsuite/gas/riscv/march-fail-rv32iq2p0.d > rename gas/testsuite/gas/riscv/{march-fail-rv32iq.l => march-fail-rv32iq2p0.l} (100%) > create mode 100644 gas/testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d > create mode 100644 gas/testsuite/gas/riscv/march-ok-rv32iq2p2.d > > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c > index 2915b74dd0f..17567b2af54 100644 > --- a/bfd/elfxx-riscv.c > +++ b/bfd/elfxx-riscv.c > @@ -1880,10 +1880,11 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps) > no_conflict = false; > } > if (riscv_lookup_subset (rps->subset_list, "q", &subset) > + && (subset->major_version < 2 || (subset->major_version == 2 > + && subset->minor_version < 2)) > && xlen < 64) > { > - rps->error_handler > - (_("rv%d does not support the `q' extension"), xlen); > + rps->error_handler (_("rv%d does not support the `q' extension"), xlen); > no_conflict = false; > } > if (riscv_lookup_subset (rps->subset_list, "e", &subset) > diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d b/gas/testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d > new file mode 100644 > index 00000000000..16451b0f43f > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d > @@ -0,0 +1,3 @@ > +#as: -misa-spec=2.2 -march=rv32iq > +#source: empty.s > +#error_output: march-fail-rv32iq2p0.l > diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq.d b/gas/testsuite/gas/riscv/march-fail-rv32iq.d > deleted file mode 100644 > index c289c695cad..00000000000 > --- a/gas/testsuite/gas/riscv/march-fail-rv32iq.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv32iq > -#source: empty.s > -#error_output: march-fail-rv32iq.l > diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq2.d b/gas/testsuite/gas/riscv/march-fail-rv32iq2.d > new file mode 100644 > index 00000000000..34fce730ce5 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-fail-rv32iq2.d > @@ -0,0 +1,3 @@ > +#as: -march=rv32iq2 > +#source: empty.s > +#error_output: march-fail-rv32iq2p0.l > diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq2p0.d b/gas/testsuite/gas/riscv/march-fail-rv32iq2p0.d > new file mode 100644 > index 00000000000..916f845a970 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-fail-rv32iq2p0.d > @@ -0,0 +1,3 @@ > +#as: -march=rv32iq2p0 > +#source: empty.s > +#error_output: march-fail-rv32iq2p0.l > diff --git a/gas/testsuite/gas/riscv/march-fail-rv32iq.l b/gas/testsuite/gas/riscv/march-fail-rv32iq2p0.l > similarity index 100% > rename from gas/testsuite/gas/riscv/march-fail-rv32iq.l > rename to gas/testsuite/gas/riscv/march-fail-rv32iq2p0.l > diff --git a/gas/testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d b/gas/testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d > new file mode 100644 > index 00000000000..8322957948d > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d > @@ -0,0 +1,5 @@ > +#as: -misa-spec=20190608 -march=rv32iq > +#objdump: -dr > +#source: empty.s > + > +.*: file format elf32-(little|big)riscv > diff --git a/gas/testsuite/gas/riscv/march-ok-rv32iq2p2.d b/gas/testsuite/gas/riscv/march-ok-rv32iq2p2.d > new file mode 100644 > index 00000000000..1a922bfaa4d > --- /dev/null > +++ b/gas/testsuite/gas/riscv/march-ok-rv32iq2p2.d > @@ -0,0 +1,5 @@ > +#as: -march=rv32iq2p2 > +#objdump: -dr > +#source: empty.s > + > +.*: file format elf32-(little|big)riscv > -- > 2.32.0 >