binutils-gdb/gas/config
Li Xu 207cc92d92 RISC-V: Add string length check for operands in AS
The current AS accepts invalid operands due to miss of operands length check.
For example, "e6" is an invalid operand in (vsetvli a0, a1, e6, mf8, tu, ma),
but it's still accepted by assembler.  In detail, the condition check "strncmp
(array[i], *s, len) == 0" in arg_lookup function passes with "strncmp ("e64",
"e6", 2)" in the case above.  So the generated encoding is same as that of
(vsetvli a0, a1, e64, mf8, tu, ma).

This patch fixes issue above by prompting an error in such case and also adds
a new testcase.

gas/ChangeLog:

        * config/tc-riscv.c (arg_lookup): Add string length check for operands.
        * testsuite/gas/riscv/vector-insns-fail-vsew.d: New testcase for an illegal vsew.
        * testsuite/gas/riscv/vector-insns-fail-vsew.l: Likewise.
        * testsuite/gas/riscv/vector-insns-fail-vsew.s: Likewise.
2022-12-14 17:23:12 +08:00
..
atof-ieee.c
atof-vax.c
bfin-aux.h
bfin-defs.h
bfin-lex-wrapper.c
bfin-lex.l
bfin-parse.y
e-crisaout.c
e-criself.c
e-i386aout.c
e-i386coff.c
e-i386elf.c
e-mipself.c
itbl-mips.h
loongarch-lex-wrapper.c
loongarch-lex.h
loongarch-lex.l
loongarch-parse.y
m68k-parse.h
m68k-parse.y
obj-aout.c
obj-aout.h
obj-coff-seh.c
obj-coff-seh.h
obj-coff.c aarch64-pe can't fill 16 bytes in section .text 2022-11-16 07:51:24 +10:30
obj-coff.h aarch64-pe support for LD, GAS and BFD 2022-10-19 10:57:12 +02:00
obj-ecoff.c
obj-ecoff.h
obj-elf.c
obj-elf.h
obj-evax.c
obj-evax.h
obj-fdpicelf.c
obj-fdpicelf.h
obj-macho.c
obj-macho.h
obj-multi.c
obj-multi.h
obj-som.c
obj-som.h
rl78-defs.h
rl78-parse.y
rx-defs.h
rx-parse.y
tc-aarch64.c gas: generate .sframe from CFI directives 2022-11-15 15:24:06 -08:00
tc-aarch64.h GAS fix alignment for aarch64-pe 2022-11-18 08:22:47 +01:00
tc-alpha.c
tc-alpha.h
tc-arc.c
tc-arc.h
tc-arm.c [gas] arm: Add support for new unwinder directive ".pacspval". 2022-11-14 15:13:21 +00:00
tc-arm.h
tc-avr.c
tc-avr.h
tc-bfin.c
tc-bfin.h
tc-bpf.c
tc-bpf.h
tc-cr16.c
tc-cr16.h
tc-cris.c
tc-cris.h
tc-crx.c
tc-crx.h
tc-csky.c
tc-csky.h
tc-d10v.c
tc-d10v.h
tc-d30v.c
tc-d30v.h
tc-dlx.c
tc-dlx.h
tc-epiphany.c
tc-epiphany.h
tc-fr30.c
tc-fr30.h
tc-frv.c
tc-frv.h
tc-ft32.c
tc-ft32.h
tc-generic.c
tc-generic.h
tc-h8300.c
tc-h8300.h
tc-hppa.c
tc-hppa.h
tc-i386-intel.c ix86: don't recognize/derive Q suffix in the common case 2022-12-12 13:52:15 +01:00
tc-i386.c x86: adjust type checking constructs 2022-12-14 10:07:44 +01:00
tc-i386.h gas: generate .sframe from CFI directives 2022-11-15 15:24:06 -08:00
tc-ia64.c
tc-ia64.h
tc-ip2k.c
tc-ip2k.h
tc-iq2000.c
tc-iq2000.h
tc-lm32.c
tc-lm32.h
tc-loongarch.c
tc-loongarch.h
tc-m32c.c
tc-m32c.h
tc-m32r.c
tc-m32r.h
tc-m68hc11.c
tc-m68hc11.h
tc-m68k.c
tc-m68k.h
tc-m68851.h
tc-mcore.c
tc-mcore.h
tc-mep.c
tc-mep.h
tc-metag.c
tc-metag.h
tc-microblaze.c
tc-microblaze.h
tc-mips.c
tc-mips.h
tc-mmix.c
tc-mmix.h
tc-mn10200.c
tc-mn10200.h
tc-mn10300.c
tc-mn10300.h
tc-moxie.c
tc-moxie.h
tc-msp430.c
tc-msp430.h
tc-mt.c
tc-mt.h
tc-nds32.c
tc-nds32.h
tc-nios2.c
tc-nios2.h
tc-ns32k.c
tc-ns32k.h
tc-or1k.c
tc-or1k.h
tc-pdp11.c
tc-pdp11.h
tc-pj.c
tc-pj.h
tc-ppc.c PowerPC: Add support for RFC02658 - MMA+ Outer-Product Instructions 2022-10-27 19:23:00 -05:00
tc-ppc.h
tc-pru.c
tc-pru.h
tc-riscv.c RISC-V: Add string length check for operands in AS 2022-12-14 17:23:12 +08:00
tc-riscv.h RISC-V: Output mapping symbols with ISA string. 2022-10-28 11:11:23 +08:00
tc-rl78.c
tc-rl78.h
tc-rx.c
tc-rx.h
tc-s12z.c
tc-s12z.h
tc-s390.c
tc-s390.h
tc-score7.c
tc-score.c
tc-score.h
tc-sh.c
tc-sh.h
tc-sparc.c
tc-sparc.h
tc-spu.c
tc-spu.h
tc-tic4x.c
tc-tic4x.h
tc-tic6x.c
tc-tic6x.h
tc-tic30.c
tc-tic30.h
tc-tic54x.c
tc-tic54x.h
tc-tilegx.c
tc-tilegx.h
tc-tilepro.c
tc-tilepro.h
tc-v850.c
tc-v850.h
tc-vax.c
tc-vax.h
tc-visium.c
tc-visium.h
tc-wasm32.c
tc-wasm32.h
tc-xgate.c
tc-xgate.h
tc-xstormy16.c
tc-xstormy16.h
tc-xtensa.c xtensa: allow dynamic configuration 2022-11-28 18:16:12 -08:00
tc-xtensa.h xtensa: allow dynamic configuration 2022-11-28 18:16:12 -08:00
tc-z8k.c
tc-z8k.h
tc-z80.c
tc-z80.h
te-386bsd.h
te-aix5.h
te-aix.h
te-armeabi.h
te-armfbsdeabi.h
te-armfbsdvfp.h
te-armlinuxeabi.h
te-cloudabi.h
te-csky_abiv1_linux.h
te-csky_abiv1.h
te-csky_abiv2_linux.h
te-csky_abiv2.h
te-dragonfly.h
te-freebsd.h
te-generic.h
te-gnu.h
te-go32.h
te-haiku.h
te-hppa64.h
te-hppa.h
te-hppalinux64.h
te-hpux.h
te-ia64aix.h
te-interix.h
te-irix.h
te-linux.h
te-lynx.h
te-macos.h
te-nacl.h
te-nbsd532.h
te-nbsd.h
te-pc532mach.h
te-pe.h
te-pep.h
te-pepaarch64.h aarch64-pe support for LD, GAS and BFD 2022-10-19 10:57:12 +02:00
te-solaris.h
te-svr4.h
te-tmips.h
te-uclinux.h
te-vms.c
te-vms.h
te-vxworks.h
te-wince-pe.h
vax-inst.h
xtensa-istack.h
xtensa-relax.c xtensa: allow dynamic configuration 2022-11-28 18:16:12 -08:00
xtensa-relax.h