binutils-gdb/include
Jin Ma 6a95962e25 RISC-V: T-HEAD: Fix wrong instruction encoding for th.vsetvli
Since the particularity of "th.vsetvli" was not taken into account in the
initial support patches for XTheadVector, the program operation failed
due to instruction coding errors. According to T-Head SPEC ([1]), the
"vsetvl" in the XTheadVector extension consists of SEW, LMUL and EDIV,
which is quite different from the "V" extension. Therefore, we cannot
simply reuse the processing of vsetvl in V extension.

We have set up tens of thousands of test cases to ensure that no
further encoding issues are there, and and execute all compiled test
files on real HW and make sure they don't trigger SIGILL.

Ref:
[1] https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.3.0/xthead-2023-11-10-2.3.0.pdf

Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
Co-developed-by: Christoph Müllner <christoph.muellner@vrull.eu>

gas/ChangeLog:

	* config/tc-riscv.c (validate_riscv_insn): Add handling for
	th.vsetvli.
	(my_getThVsetvliExpression): New function.
	(riscv_ip): Likewise.
	* testsuite/gas/riscv/x-thead-vector.d: Likewise.
	* testsuite/gas/riscv/x-thead-vector.s: Likewise.

include/ChangeLog:

	* opcode/riscv.h (OP_MASK_XTHEADVLMUL): New macro.
	(OP_SH_XTHEADVLMUL): Likewise.
	(OP_MASK_XTHEADVSEW): Likewise.
	(OP_SH_XTHEADVSEW): Likewise.
	(OP_MASK_XTHEADVEDIV): Likewise.
	(OP_SH_XTHEADVEDIV): Likewise.
	(OP_MASK_XTHEADVTYPE_RES): Likewise.
	(OP_SH_XTHEADVTYPE_RES): Likewise.

opcodes/ChangeLog:

	* riscv-dis.c (print_insn_args): Likewise.
	* riscv-opc.c: Likewise.
2024-01-05 09:59:48 +08:00
..
aout Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
cgen Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
coff Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
elf Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gdb Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
mach-o Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
opcode RISC-V: T-HEAD: Fix wrong instruction encoding for th.vsetvli 2024-01-05 09:59:48 +08:00
sim Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
som Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
vms Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
alloca-conf.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ansidecl.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
bfdlink.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
binary-io.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
bout.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ChangeLog Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ChangeLog-0415
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020
ChangeLog-9103
collectorAPI.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
COPYING
COPYING3
ctf-api.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ctf.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
demangle.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
diagnostics.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
dis-asm.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
dwarf2.def Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
dwarf2.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
dyn-string.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
environ.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
fibheap.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
filenames.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
floatformat.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
fnmatch.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
fopen-bin.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
fopen-same.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
fopen-vms.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gcc-c-fe.def Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gcc-c-interface.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gcc-cp-fe.def Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gcc-cp-interface.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gcc-interface.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
getopt.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
hashtab.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
hp-symtab.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
leb128.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
libcollector.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
libfcollector.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
libiberty.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
longlong.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
lto-symtab.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
MAINTAINERS Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
md5.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
oasys.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
objalloc.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
obstack.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
os9k.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
partition.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
plugin-api.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
safe-ctype.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
sframe-api.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
sframe.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
sha1.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
simple-object.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
sort.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
splay-tree.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
symcat.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
timeval-utils.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
vtv-change-permission.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
xregex2.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
xregex.h
xtensa-config.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
xtensa-dynconfig.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
xtensa-isa-internal.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
xtensa-isa.h Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30