From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7896) id A157A38582BF; Fri, 9 Sep 2022 10:14:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A157A38582BF Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tsukasa OI To: bfd-cvs@sourceware.org Subject: [binutils-gdb] RISC-V: Fix vector CSR requirements X-Act-Checkin: binutils-gdb X-Git-Author: Tsukasa OI X-Git-Refname: refs/heads/master X-Git-Oldrev: 58448ad29c213deb605908096833b191e09745eb X-Git-Newrev: 1daabcc746e7d2f04ab190b49aec9abb020f29aa Message-Id: <20220909101427.A157A38582BF@sourceware.org> Date: Fri, 9 Sep 2022 10:14:27 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Sep 2022 10:14:27 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D1daabcc746e7= d2f04ab190b49aec9abb020f29aa commit 1daabcc746e7d2f04ab190b49aec9abb020f29aa Author: Tsukasa OI Date: Mon Sep 5 07:54:51 2022 +0000 RISC-V: Fix vector CSR requirements =20 Vector CSRs are also required on smaller vector subsets. =20 Not only that the most of vector CSRs are general purpose (and must be accessible for every vector subsets), current minimum vector subset 'Zv= e32x' requires fixed point arithmetic, making remaining non-general purpose (fixed point arithmetic only) CSRs mandatory for such subsets. =20 So, those CSRs must be accessible from 'Zve32x', not just from 'V'. This commit fixes this issue which caused CSR accessibility warnings. =20 gas/ChangeLog: =20 * config/tc-riscv.c (riscv_csr_address): Change vector CSR requirement from 'V' to 'Zve32x'. * testsuite/gas/riscv/csr-version-1p9p1.l: Change vector CSR requirement from 'V' to 'Zve32x'. * testsuite/gas/riscv/csr-version-1p10.l: Likewise. * testsuite/gas/riscv/csr-version-1p11.l: Likewise. * testsuite/gas/riscv/csr-version-1p12.l: Likewise. Diff: --- gas/config/tc-riscv.c | 2 +- gas/testsuite/gas/riscv/csr-version-1p10.l | 28 ++++++++++++++-----------= --- gas/testsuite/gas/riscv/csr-version-1p11.l | 28 ++++++++++++++-----------= --- gas/testsuite/gas/riscv/csr-version-1p12.l | 28 ++++++++++++++-----------= --- gas/testsuite/gas/riscv/csr-version-1p9p1.l | 28 ++++++++++++++-----------= --- 5 files changed, 57 insertions(+), 57 deletions(-) diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 34ce68e8252..df2e201fb74 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -935,7 +935,7 @@ riscv_csr_address (const char *csr_name, extension =3D "zkr"; break; case CSR_CLASS_V: - extension =3D "v"; + extension =3D "zve32x"; break; case CSR_CLASS_SMSTATEEN: case CSR_CLASS_SMSTATEEN_AND_H: diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas= /riscv/csr-version-1p10.l index b778453b556..999e9af1520 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p10.l +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l @@ -652,20 +652,20 @@ .*Warning: invalid CSR `fcsr', needs `f' extension .*Warning: invalid CSR `seed', needs `zkr' extension .*Warning: invalid CSR `seed', needs `zkr' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vl,a1' -.*Warning: invalid CSR `vtype', needs `v' extension -.*Warning: invalid CSR `vtype', needs `v' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vtype,a1' -.*Warning: invalid CSR `vlenb', needs `v' extension -.*Warning: invalid CSR `vlenb', needs `v' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vlenb,a1' diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas= /riscv/csr-version-1p11.l index 78bae817470..a099e4ecc93 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p11.l +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l @@ -650,20 +650,20 @@ .*Warning: invalid CSR `fcsr', needs `f' extension .*Warning: invalid CSR `seed', needs `zkr' extension .*Warning: invalid CSR `seed', needs `zkr' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vl,a1' -.*Warning: invalid CSR `vtype', needs `v' extension -.*Warning: invalid CSR `vtype', needs `v' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vtype,a1' -.*Warning: invalid CSR `vlenb', needs `v' extension -.*Warning: invalid CSR `vlenb', needs `v' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vlenb,a1' diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas= /riscv/csr-version-1p12.l index cb026bb55e0..cf8f2e25634 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p12.l +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l @@ -532,20 +532,20 @@ .*Warning: invalid CSR `fcsr', needs `f' extension .*Warning: invalid CSR `seed', needs `zkr' extension .*Warning: invalid CSR `seed', needs `zkr' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vl,a1' -.*Warning: invalid CSR `vtype', needs `v' extension -.*Warning: invalid CSR `vtype', needs `v' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vtype,a1' -.*Warning: invalid CSR `vlenb', needs `v' extension -.*Warning: invalid CSR `vlenb', needs `v' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vlenb,a1' diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/ga= s/riscv/csr-version-1p9p1.l index 4fac40fb589..5f298c1dda9 100644 --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l @@ -678,20 +678,20 @@ .*Warning: invalid CSR `fcsr', needs `f' extension .*Warning: invalid CSR `seed', needs `zkr' extension .*Warning: invalid CSR `seed', needs `zkr' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vstart', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxsat', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vxrm', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vcsr', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension -.*Warning: invalid CSR `vl', needs `v' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vstart', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxsat', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vxrm', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vcsr', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension +.*Warning: invalid CSR `vl', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vl,a1' -.*Warning: invalid CSR `vtype', needs `v' extension -.*Warning: invalid CSR `vtype', needs `v' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension +.*Warning: invalid CSR `vtype', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vtype,a1' -.*Warning: invalid CSR `vlenb', needs `v' extension -.*Warning: invalid CSR `vlenb', needs `v' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension +.*Warning: invalid CSR `vlenb', needs `zve32x' extension .*Warning: read-only CSR is written `csrw vlenb,a1'