[binutils-gdb] RISC-V: Add OP_VE for .insn

Nelson Chu nelsonc1225@sourceware.org
Fri Feb 14 03:36:56 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d7657a4ceef9c34e8057850472c84102862d5aad

commit d7657a4ceef9c34e8057850472c84102862d5aad
Author: Kito Cheng <kito.cheng@sifive.com>
Date:   Thu Feb 13 21:19:20 2025 +0800

    RISC-V: Add OP_VE for .insn
    
    OP_VE is the opcode space for crypto vector instructions.
    
    Ref:
    https://github.com/riscv/riscv-isa-manual/blob/main/src/vector-crypto.adoc#crypto-vector-cryptographic-instructions

Diff:
---
 gas/config/tc-riscv.c                | 2 +-
 gas/doc/c-riscv.texi                 | 3 +++
 gas/testsuite/gas/riscv/insn-dwarf.d | 3 ++-
 gas/testsuite/gas/riscv/insn-na.d    | 3 ++-
 gas/testsuite/gas/riscv/insn.d       | 3 ++-
 gas/testsuite/gas/riscv/insn.s       | 2 ++
 6 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index ac1a10aa5e4..493c393f5b2 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -898,7 +898,7 @@ static const struct opcode_name_t opcode_name_list[] =
   /*reserved    0x5b.  */
   {"JAL",       0x6f},
   {"SYSTEM",    0x73},
-  /*reserved    0x77.  */
+  {"OP_VE",     0x77},
   {"CUSTOM_3",  0x7b},
   /* >80b       0x7f.  */
 
diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
index 314e28c7503..670d437ec87 100644
--- a/gas/doc/c-riscv.texi
+++ b/gas/doc/c-riscv.texi
@@ -548,6 +548,9 @@ Opcode space for misc instructions.
 @item SYSTEM
 Opcode space for system instructions.
 
+@item OP_VE
+Opcode space for crypto vector instructions.
+
 @item CUSTOM_0
 @item CUSTOM_1
 @item CUSTOM_2
diff --git a/gas/testsuite/gas/riscv/insn-dwarf.d b/gas/testsuite/gas/riscv/insn-dwarf.d
index b8bd42dff18..d6c6e6e095e 100644
--- a/gas/testsuite/gas/riscv/insn-dwarf.d
+++ b/gas/testsuite/gas/riscv/insn-dwarf.d
@@ -82,5 +82,6 @@ insn.s +78 +0x16a.*
 insn.s +79 +0x180.*
 insn.s +80 +0x196.*
 insn.s +81 +0x1ac.*
-insn.s +- +0x1c2
+insn.s +83 +0x1c2.*
+insn.s +- +0x1c6
 #pass
diff --git a/gas/testsuite/gas/riscv/insn-na.d b/gas/testsuite/gas/riscv/insn-na.d
index 55bf301656b..47d12974af9 100644
--- a/gas/testsuite/gas/riscv/insn-na.d
+++ b/gas/testsuite/gas/riscv/insn-na.d
@@ -1,4 +1,4 @@
-#as: -march=rv32ifcv
+#as: -march=rv32ifcv_zvknha
 #source: insn.s
 #objdump: -dw -Mno-aliases
 
@@ -81,3 +81,4 @@ Disassembly of section .text:
 [^:]+:[ 	]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ 	]+\.insn[ 	]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f
 [^:]+:[ 	]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ 	]+\.insn[ 	]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
 [^:]+:[ 	]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ 	]+\.insn[ 	]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
+[^:]+:[ 	]+ba862277[ 	]+vsha2ch\.vv[ 	]+v4,v8,v12
diff --git a/gas/testsuite/gas/riscv/insn.d b/gas/testsuite/gas/riscv/insn.d
index 9411a6b1e19..7ffb4e254ce 100644
--- a/gas/testsuite/gas/riscv/insn.d
+++ b/gas/testsuite/gas/riscv/insn.d
@@ -1,4 +1,4 @@
-#as: -march=rv32ifcv
+#as: -march=rv32ifcv_zvknha
 #objdump: -dr
 
 .*:[ 	]+file format .*
@@ -114,3 +114,4 @@ Disassembly of section .text:
 [^:]+:[ 	]+607f 33cc 55aa cdef[ 	]+\.insn[ 	]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
 [^:]+:[ 	]+89ab 4567 0123 3210 ?
 [^:]+:[ 	]+7654 ba98 fedc ?
+[^:]+:[ 	]+ba862277[ 	]+vsha2ch\.vv[ 	]+v4,v8,v12
diff --git a/gas/testsuite/gas/riscv/insn.s b/gas/testsuite/gas/riscv/insn.s
index 48db59b14e8..4f72d5be8f5 100644
--- a/gas/testsuite/gas/riscv/insn.s
+++ b/gas/testsuite/gas/riscv/insn.s
@@ -79,3 +79,5 @@ target:
 	.insn 22, 0x00dcba98765432100123456789abcdef55aa33cc607f
 	.insn 0xfedcba98765432100123456789abcdef55aa33cc607f
 	.insn 22, 0xfedcba98765432100123456789abcdef55aa33cc607f
+
+	.insn r  OP_VE, 0b010, 0b1011101, x4, x12, x8


More information about the Binutils-cvs mailing list