[PATCH 0/1] RISC-V: Add `OP_V' to .insn named opcodes
Tsukasa OI
research_trasio@irq.a4lg.com
Thu Jul 28 11:46:52 GMT 2022
Ping.
I noticed that LLVM (14 or later) already implements this named opcode.
sample.s:
.attribute arch, "rv64gcv"
# Both vadd.vv v1,v2,v3
.insn r 0x57, 0, 1, x1, x3, x2
.insn r OP_V, 0, 1, x1, x3, x2
$ llvm-mc -filetype=obj -triple=riscv64 -o sample.o sample.s
$ riscv64-unknown-elf-objdump -d sample.o
(...)
0000000000000000 <.text>:
0: 022180d7 vadd.vv v1,v2,v3
4: 022180d7 vadd.vv v1,v2,v3
Even after this patch, following assembly file generates an error
(unlike LLVM). I'm going to raise an issue later.
sample2.s:
.attribute arch, "rv64gcv"
# vadd.vv v1,v2,v3 (okay on LLVM but error on Binutils)
.insn r OP_V, 0, 1, v1, v3, v2
Thanks,
Tsukasa
On 2022/07/09 12:51, Tsukasa OI wrote:
> Hello,
>
> This small patch adds OP_V to named opcode list for .insn directive.
>
> Tracker on GitHub:
> <https://github.com/a4lg/binutils-gdb/wiki/riscv_gas_insn_opv>
>
> Sidenote:
> I started listing my Binutils submissions on my GitHub Wiki:
> <https://github.com/a4lg/binutils-gdb/wiki/Patch-Queue>
> hoping that current status and conflicting patches are clear.
>
>
> OP-V (0x57) is an opcode for vector instructions (defined on now
> ratified V extension). It adds OP_V to named constants of .insn directive
> (note that replacing - with _ is standard on GNU Binutils' .insn).
>
> Although vector instruction encoding is not implemented in .insn directive,
> it will help future implementation of custom vector .insn.
>
> If Zp* extensions are ratified, we could add OP_P (0x77) likewise.
>
>
> Thanks,
> Tsukasa
>
>
>
>
> Tsukasa OI (1):
> RISC-V: Add `OP_V' to .insn named opcodes
>
> gas/config/tc-riscv.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>
> base-commit: d2acd4b0c5bab349aaa152d60268bc144634a844
More information about the Binutils
mailing list