From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 1FEB43836E7A for ; Mon, 23 May 2022 10:06:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1FEB43836E7A Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 6D448300089; Mon, 23 May 2022 10:06:48 +0000 (UTC) From: Tsukasa OI To: Tsukasa OI , Palmer Dabbelt , Nelson Chu , Kito Cheng Cc: binutils@sourceware.org Subject: [RFC PATCH 3/3] RISC-V: Add disassembler tests for shift amount Date: Mon, 23 May 2022 19:06:25 +0900 Message-Id: In-Reply-To: References: Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, 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: Mon, 23 May 2022 10:06:51 -0000 This commit adds tests for shift instruction to make sure that the disassembler detects invalid shift amount. gas/ChangeLog: * testsuite/gas/riscv/shamt-dis.s: New disassembler test. * testsuite/gas/riscv/shamt-dis-32.d: Likewise. * testsuite/gas/riscv/shamt-dis-64.d: Likewise. --- gas/testsuite/gas/riscv/shamt-dis-32.d | 34 +++++++++++++++++++ gas/testsuite/gas/riscv/shamt-dis-64.d | 34 +++++++++++++++++++ gas/testsuite/gas/riscv/shamt-dis.s | 45 ++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 gas/testsuite/gas/riscv/shamt-dis-32.d create mode 100644 gas/testsuite/gas/riscv/shamt-dis-64.d create mode 100644 gas/testsuite/gas/riscv/shamt-dis.s diff --git a/gas/testsuite/gas/riscv/shamt-dis-32.d b/gas/testsuite/gas/riscv/shamt-dis-32.d new file mode 100644 index 00000000000..b160353f297 --- /dev/null +++ b/gas/testsuite/gas/riscv/shamt-dis-32.d @@ -0,0 +1,34 @@ +#as: -march=rv32ic_zba_zbb_zbs +#source: shamt-dis.s +#objdump: -d -M no-aliases + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+000 : +[ ]+[0-9a-f]+:[ ]+01f59513[ ]+slli[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+02059513[ ]+\.4byte[ ]+0x2059513 +[ ]+[0-9a-f]+:[ ]+01f5d513[ ]+srli[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+0205d513[ ]+\.4byte[ ]+0x205d513 +[ ]+[0-9a-f]+:[ ]+41f5d513[ ]+srai[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4205d513[ ]+\.4byte[ ]+0x4205d513 +[ ]+[0-9a-f]+:[ ]+057e[ ]+c\.slli[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+1502[ ]+\.2byte[ ]+0x1502 +[ ]+[0-9a-f]+:[ ]+817d[ ]+c\.srli[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+9101[ ]+\.2byte[ ]+0x9101 +[ ]+[0-9a-f]+:[ ]+857d[ ]+c\.srai[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+9501[ ]+\.2byte[ ]+0x9501 +[ ]+[0-9a-f]+:[ ]+61f5d513[ ]+rori[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+6205d513[ ]+\.4byte[ ]+0x6205d513 +[ ]+[0-9a-f]+:[ ]+09f5951b[ ]+\.4byte[ ]+0x9f5951b +[ ]+[0-9a-f]+:[ ]+0a05951b[ ]+\.4byte[ ]+0xa05951b +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclri[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4a059513[ ]+\.4byte[ ]+0x4a059513 +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bseti[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+2a059513[ ]+\.4byte[ ]+0x2a059513 +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binvi[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+6a059513[ ]+\.4byte[ ]+0x6a059513 +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bexti[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4a05d513[ ]+\.4byte[ ]+0x4a05d513 diff --git a/gas/testsuite/gas/riscv/shamt-dis-64.d b/gas/testsuite/gas/riscv/shamt-dis-64.d new file mode 100644 index 00000000000..d10e90d9d30 --- /dev/null +++ b/gas/testsuite/gas/riscv/shamt-dis-64.d @@ -0,0 +1,34 @@ +#as: -march=rv64ic_zba_zbb_zbs +#source: shamt-dis.s +#objdump: -d -M no-aliases + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+000 : +[ ]+[0-9a-f]+:[ ]+01f59513[ ]+slli[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+02059513[ ]+slli[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+01f5d513[ ]+srli[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+0205d513[ ]+srli[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+41f5d513[ ]+srai[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4205d513[ ]+srai[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+057e[ ]+c\.slli[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+1502[ ]+c\.slli[ ]+a0,0x20 +[ ]+[0-9a-f]+:[ ]+817d[ ]+c\.srli[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+9101[ ]+c\.srli[ ]+a0,0x20 +[ ]+[0-9a-f]+:[ ]+857d[ ]+c\.srai[ ]+a0,0x1f +[ ]+[0-9a-f]+:[ ]+9501[ ]+c\.srai[ ]+a0,0x20 +[ ]+[0-9a-f]+:[ ]+61f5d513[ ]+rori[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+6205d513[ ]+rori[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+09f5951b[ ]+slli\.uw[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+0a05951b[ ]+slli\.uw[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclri[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4a059513[ ]+bclri[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bseti[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+2a059513[ ]+bseti[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binvi[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+6a059513[ ]+binvi[ ]+a0,a1,0x20 +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bexti[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4a05d513[ ]+bexti[ ]+a0,a1,0x20 diff --git a/gas/testsuite/gas/riscv/shamt-dis.s b/gas/testsuite/gas/riscv/shamt-dis.s new file mode 100644 index 00000000000..edade302562 --- /dev/null +++ b/gas/testsuite/gas/riscv/shamt-dis.s @@ -0,0 +1,45 @@ +target: + # slli a0,a1,SHAMT [31/32] + .insn 0x01f59513 + .insn 0x02059513 + # srli a0,a1,SHAMT [31/32] + .insn 0x01f5d513 + .insn 0x0205d513 + # srai a0,a1,SHAMT [31/32] + .insn 0x41f5d513 + .insn 0x4205d513 + + # RVC + # c.slli a0,SHAMT [31/32] + .insn 0x057e + .insn 0x1502 + # c.srli a0,SHAMT [31/32] + .insn 0x817d + .insn 0x9101 + # c.srai a0,SHAMT [31/32] + .insn 0x857d + .insn 0x9501 + + # Zbb extension (or Zbkb) + # rori a0,a1,SHAMT [31/32] + .insn 0x61f5d513 + .insn 0x6205d513 + + # Zba extension + # slli.uw a0,a1,SHAMT [31/32] (invalid on RV32) + .insn 0x09f5951b + .insn 0x0a05951b + + # Zbs extension + # bclri a0,a1,SHAMT [31/32] + .insn 0x49f59513 + .insn 0x4a059513 + # bseti a0,a1,SHAMT [31/32] + .insn 0x29f59513 + .insn 0x2a059513 + # binvi a0,a1,SHAMT [31/32] + .insn 0x69f59513 + .insn 0x6a059513 + # bexti a0,a1,SHAMT [31/32] + .insn 0x49f5d513 + .insn 0x4a05d513 -- 2.34.1