diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:13 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:13 +0100 |
commit | e87ff6724fe32ecff11fc36a19a09ab8fbc66c13 (patch) | |
tree | 823fcf67a24355b4f02e6455769a224a5a05a1d7 /gas/config/tc-aarch64.c | |
parent | cbd11b8818335007cf960e0cecc4dec445f80327 (diff) | |
download | gdb-e87ff6724fe32ecff11fc36a19a09ab8fbc66c13.zip gdb-e87ff6724fe32ecff11fc36a19a09ab8fbc66c13.tar.gz gdb-e87ff6724fe32ecff11fc36a19a09ab8fbc66c13.tar.bz2 |
aarch64: Add the SME2 ADD and SUB instructions
Add support for the SME2 ADD. SUB, FADD and FSUB instructions.
SUB and FSUB have the same form as ADD and FADD, except that
ADD also has a 2-operand accumulating form.
The 64-bit ADD/SUB instructions require FEAT_SME_I16I64 and the
64-bit FADD/FSUB instructions require FEAT_SME_F64F64.
These are the first instructions to have tied register list
operands, as opposed to tied single registers.
The parse_operands change prevents unsuffixed Z registers (width==-1)
from being treated as though they had an Advanced SIMD-style suffix
(.4s etc.). It means that:
Error: expected element type rather than vector type at operand 2 -- `add za\.s\[w8,0\],{z0-z1}'
becomes:
Error: missing type suffix at operand 2 -- `add za\.s\[w8,0\],{z0-z1}'
Diffstat (limited to 'gas/config/tc-aarch64.c')
-rw-r--r-- | gas/config/tc-aarch64.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 652fd4e..5e02315 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -6659,6 +6659,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_Zm_16: case AARCH64_OPND_SVE_Zn: case AARCH64_OPND_SVE_Zt: + case AARCH64_OPND_SME_Zm: reg_type = REG_TYPE_Z; goto vector_reg; @@ -6811,7 +6812,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) goto failure; } - if (vectype.width != 0 && *str != ',') + if ((int) vectype.width > 0 && *str != ',') { set_fatal_syntax_error (_("expected element type rather than vector type")); |