diff options
-rw-r--r-- | gas/config/tc-riscv.c | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/riscv/vector-insns-fail-vsew.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/riscv/vector-insns-fail-vsew.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/riscv/vector-insns-fail-vsew.s | 1 |
4 files changed, 9 insertions, 1 deletions
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 0682eb3..77c0d2e 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -1206,7 +1206,8 @@ arg_lookup (char **s, const char *const *array, size_t size, unsigned *regnop) return false; for (i = 0; i < size; i++) - if (array[i] != NULL && strncmp (array[i], *s, len) == 0) + if (array[i] != NULL && strncmp (array[i], *s, len) == 0 + && array[i][len] == '\0') { *regnop = i; *s += len; diff --git a/gas/testsuite/gas/riscv/vector-insns-fail-vsew.d b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.d new file mode 100644 index 0000000..e0354d1 --- /dev/null +++ b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.d @@ -0,0 +1,3 @@ +#as: -march=rv32iv +#source: vector-insns-fail-vsew.s +#error_output: vector-insns-fail-vsew.l diff --git a/gas/testsuite/gas/riscv/vector-insns-fail-vsew.l b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.l new file mode 100644 index 0000000..87a2c22 --- /dev/null +++ b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*: Error: instruction vsetvli requires absolute expression +.*: Error: illegal operands `vsetvli a0,a1,e6,mf8,tu,ma' diff --git a/gas/testsuite/gas/riscv/vector-insns-fail-vsew.s b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.s new file mode 100644 index 0000000..b8f3242 --- /dev/null +++ b/gas/testsuite/gas/riscv/vector-insns-fail-vsew.s @@ -0,0 +1 @@ + vsetvli a0, a1, e6, mf8, tu, ma # unrecognized vsew |