From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com [IPv6:2001:4860:4864:20::2b]) by sourceware.org (Postfix) with ESMTPS id 5BA423858C20 for ; Tue, 29 Nov 2022 08:16:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5BA423858C20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-1322d768ba7so16138793fac.5 for ; Tue, 29 Nov 2022 00:16:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Ajlucum7dqU+fYAfEK8jZmII4+dRzmnd/I0sJVrPN6I=; b=Lu4OpWpcTMX+j4TwGHne3VlwOiSodZWc3bnuQumu+tCHQDFr/7eIl0E5P4KZpDXyNk GSmhibrZbG+e1urciT+n73JQGmaNjUEM6UWcYEDaoCVeSV7fdpJ8YM31x/jJhL+YLXzp kO7VKINiqp4daj821XZKwyxELdDrCRH98YZbT4Ww4+xpmgiZsgdpLkh7nv9tX8CiT8+z fRRv5yRpareWNamPMKSDzHyFBQ75I4g2tVLPyFFCVA/sqaEj7gfwivx7+KeDIApj3vZa W2/sdONvWlR9x/CStlAHy/H+LvIciaYynejHi3a0gNAdhQ1zYEp2+usVVXkr2kw4MUZL 23wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Ajlucum7dqU+fYAfEK8jZmII4+dRzmnd/I0sJVrPN6I=; b=mSlOtLkKWjAU0knIsZd7LLZ/nnWQEKkfO81nZNmee3acL8MeV72Wktwyv8Azb9L2Vj hO7Aawjic6XKDIKuWmHW5XJ7qExgqlhJolurfcTB5U+cwF8Xt6dabJCCXtRDLrqROTHK 3LUWYaI4xN+atoMoVJiIXo/0ydtzCf3Lr9qVpyHo1kineMlEwC/AjDcjhB5r+m7JY3vJ Hm9Dr+nZwO6zTCRc8wc5757vj8l7W5ZLNpBmU0PeaXgIvDAetA12MsUb4dOMQX0f2BGM F/Pqz4zIjnpvVTxml2DK4Dr4eswn4Tamb9ROric9yuoc975RboHr8lUi0I8p6fzv6Klr L1Sw== X-Gm-Message-State: ANoB5plH7AB7nB5mLxQ5dTpP9a+DTXzB2ryuvv46O8KZMMRGjYtOKpvg xIabVG1cb+PLVZFjFZAtn+Uey8Fyzgvpc85vsTA8Zg== X-Google-Smtp-Source: AA0mqf7kanueUvE32zFzcHW63+/hwmrzWJhzAMBpXNB/QG5xYCexT8QWGTIqYp2Bh0xTyn/8uyOuttO9tEp6PzVbSvs= X-Received: by 2002:a05:6870:808c:b0:142:b3c0:5099 with SMTP id q12-20020a056870808c00b00142b3c05099mr21593439oab.107.1669709806732; Tue, 29 Nov 2022 00:16:46 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nelson Chu Date: Tue, 29 Nov 2022 16:16:36 +0800 Message-ID: Subject: Re: [PATCH 07/12] RISC-V: Combine complex extension error handling tests To: Tsukasa OI Cc: Kito Cheng , Palmer Dabbelt , binutils@sourceware.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,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 List-Id: On Sat, Nov 5, 2022 at 8:30 PM Tsukasa OI wrote: > > Because mapping symbols with ISA string is now supported, we can now > combine five complex "no required extensions" testcases related to > the "fcvt.d.h" instruction into one. > > gas/ChangeLog: > > * testsuite/gas/riscv/zfhmin-d-noarch.s: Combined. > * testsuite/gas/riscv/zfhmin-d-noarch.d: Likewise. > Minimize extension requirements. > * testsuite/gas/riscv/zfhmin-d-noarch.l: Likewise. > Make matching pattern stricter. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail.s: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d: Removed. > * testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l: Removed. > --- > .../gas/riscv/zfhmin-d-insn-class-fail-1.d | 3 --- > .../gas/riscv/zfhmin-d-insn-class-fail-1.l | 2 -- > .../gas/riscv/zfhmin-d-insn-class-fail-2.d | 3 --- > .../gas/riscv/zfhmin-d-insn-class-fail-2.l | 2 -- > .../gas/riscv/zfhmin-d-insn-class-fail-3.d | 3 --- > .../gas/riscv/zfhmin-d-insn-class-fail-3.l | 2 -- > .../gas/riscv/zfhmin-d-insn-class-fail-4.d | 3 --- > .../gas/riscv/zfhmin-d-insn-class-fail-4.l | 2 -- > .../gas/riscv/zfhmin-d-insn-class-fail-5.d | 3 --- > .../gas/riscv/zfhmin-d-insn-class-fail-5.l | 2 -- > .../gas/riscv/zfhmin-d-insn-class-fail.s | 4 --- > gas/testsuite/gas/riscv/zfhmin-d-noarch.d | 2 ++ > gas/testsuite/gas/riscv/zfhmin-d-noarch.l | 6 +++++ > gas/testsuite/gas/riscv/zfhmin-d-noarch.s | 25 +++++++++++++++++++ > 14 files changed, 33 insertions(+), 29 deletions(-) > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l > delete mode 100644 gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail.s > create mode 100644 gas/testsuite/gas/riscv/zfhmin-d-noarch.d > create mode 100644 gas/testsuite/gas/riscv/zfhmin-d-noarch.l > create mode 100644 gas/testsuite/gas/riscv/zfhmin-d-noarch.s > > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d > deleted file mode 100644 > index 02a11943cf2..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv64i > -#source: zfhmin-d-insn-class-fail.s > -#error_output: zfhmin-d-insn-class-fail-1.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l > deleted file mode 100644 > index 12f41a39ae0..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l > +++ /dev/null > @@ -1,2 +0,0 @@ > -.*: Assembler messages: > -.*: Error: unrecognized opcode `fcvt.d.h fa0,fa1', extension `zfhmin' and `d', or `zhinxmin' and `zdinx' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d > deleted file mode 100644 > index 27b5a12857e..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv64i_zhinxmin > -#source: zfhmin-d-insn-class-fail.s > -#error_output: zfhmin-d-insn-class-fail-2.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l > deleted file mode 100644 > index 255f96cb5a1..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l > +++ /dev/null > @@ -1,2 +0,0 @@ > -.*: Assembler messages: > -.*: Error: unrecognized opcode `fcvt.d.h fa0,fa1', extension `zdinx' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d > deleted file mode 100644 > index 4f195bfa7c5..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv64i_zdinx > -#source: zfhmin-d-insn-class-fail.s > -#error_output: zfhmin-d-insn-class-fail-3.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l > deleted file mode 100644 > index 7ff7b278fe3..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l > +++ /dev/null > @@ -1,2 +0,0 @@ > -.*: Assembler messages: > -.*: Error: unrecognized opcode `fcvt.d.h fa0,fa1', extension `zhinxmin' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d > deleted file mode 100644 > index 940d48c5dfd..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv64i_zfhmin > -#source: zfhmin-d-insn-class-fail.s > -#error_output: zfhmin-d-insn-class-fail-4.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l > deleted file mode 100644 > index 2d58e4ce1ce..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l > +++ /dev/null > @@ -1,2 +0,0 @@ > -.*: Assembler messages: > -.*: Error: unrecognized opcode `fcvt.d.h fa0,fa1', extension `d' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d > deleted file mode 100644 > index af26d5e9ea7..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d > +++ /dev/null > @@ -1,3 +0,0 @@ > -#as: -march=rv64id > -#source: zfhmin-d-insn-class-fail.s > -#error_output: zfhmin-d-insn-class-fail-5.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l > deleted file mode 100644 > index 2fa6e8c754b..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l > +++ /dev/null > @@ -1,2 +0,0 @@ > -.*: Assembler messages: > -.*: Error: unrecognized opcode `fcvt.d.h fa0,fa1', extension `zfhmin' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail.s b/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail.s > deleted file mode 100644 > index 691d0a929dc..00000000000 > --- a/gas/testsuite/gas/riscv/zfhmin-d-insn-class-fail.s > +++ /dev/null > @@ -1,4 +0,0 @@ > -# This test checks error message corresponding required extension(s). > -# Operands are invalid on Zhinxmin+Zdinx but they are not parsed since > -# extension test fails. > -fcvt.d.h fa0, fa1 > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-noarch.d b/gas/testsuite/gas/riscv/zfhmin-d-noarch.d > new file mode 100644 > index 00000000000..fded578caea > --- /dev/null > +++ b/gas/testsuite/gas/riscv/zfhmin-d-noarch.d > @@ -0,0 +1,2 @@ > +#as: -march=rv64i -I$srcdir/$subdir > +#error_output: zfhmin-d-noarch.l > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-noarch.l b/gas/testsuite/gas/riscv/zfhmin-d-noarch.l > new file mode 100644 > index 00000000000..8a55ccaac2b > --- /dev/null > +++ b/gas/testsuite/gas/riscv/zfhmin-d-noarch.l > @@ -0,0 +1,6 @@ > +.*: Assembler messages: > +.*: Error: unrecognized opcode `fcvt\.d\.h fa0,fa1', extension `zfhmin' and `d', or `zhinxmin' and `zdinx' required > +.*: Error: unrecognized opcode `fcvt\.d\.h fa0,fa1', extension `d' required > +.*: Error: unrecognized opcode `fcvt\.d\.h fa0,fa1', extension `zfhmin' required > +.*: Error: unrecognized opcode `fcvt\.d\.h a0,a1', extension `zdinx' required > +.*: Error: unrecognized opcode `fcvt\.d\.h a0,a1', extension `zhinxmin' required > diff --git a/gas/testsuite/gas/riscv/zfhmin-d-noarch.s b/gas/testsuite/gas/riscv/zfhmin-d-noarch.s > new file mode 100644 > index 00000000000..f247de1bd36 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/zfhmin-d-noarch.s > @@ -0,0 +1,25 @@ > +.include "testutils.inc" > + > +target: > + # Case 1: No 'Zfhmin', 'D', 'Zhinxmin' or 'Zdinx' > + fcvt.d.h fa0, fa1 > + > + # Case 2: 'Zfhmin' but no 'D' > + SET_ARCH_START +zfhmin > + fcvt.d.h fa0, fa1 > + SET_ARCH_END > + > + # Case 3: 'D' but no 'Zfhmin' > + SET_ARCH_START +d > + fcvt.d.h fa0, fa1 > + SET_ARCH_END > + > + # Case 4: 'Zhinxmin' but no 'Zdinx' > + SET_ARCH_START +zhinxmin > + fcvt.d.h a0, a1 > + SET_ARCH_END > + > + # Case 5: 'Zdinx' but no 'Zhinxmin' > + SET_ARCH_START +zdinx > + fcvt.d.h a0, a1 > + SET_ARCH_END This is pretty close to what I thought, but don't need to add those complicated macros. Just using ".option arch" directly should be enough. Thanks Nelson > -- > 2.37.2 >