diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-aarch64.c | 27 |
2 files changed, 32 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4593a78..a146799 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2016-09-21 Richard Sandiford <richard.sandiford@arm.com> + * config/tc-aarch64.c (parse_operands): Handle the new SVE integer + immediate operands. + +2016-09-21 Richard Sandiford <richard.sandiford@arm.com> + * config/tc-aarch64.c (SHIFTED_NONE, SHIFTED_MUL_VL): New parse_shift_modes. (parse_shift): Handle SHIFTED_MUL_VL. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 930b07a..6b9ae29 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -5501,6 +5501,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) break; case AARCH64_OPND_CCMP_IMM: + case AARCH64_OPND_SIMM5: case AARCH64_OPND_FBITS: case AARCH64_OPND_UIMM4: case AARCH64_OPND_UIMM3_OP1: @@ -5508,10 +5509,36 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_IMM_VLSL: case AARCH64_OPND_IMM: case AARCH64_OPND_WIDTH: + case AARCH64_OPND_SVE_INV_LIMM: + case AARCH64_OPND_SVE_LIMM: + case AARCH64_OPND_SVE_LIMM_MOV: + case AARCH64_OPND_SVE_SHLIMM_PRED: + case AARCH64_OPND_SVE_SHLIMM_UNPRED: + case AARCH64_OPND_SVE_SHRIMM_PRED: + case AARCH64_OPND_SVE_SHRIMM_UNPRED: + case AARCH64_OPND_SVE_SIMM5: + case AARCH64_OPND_SVE_SIMM5B: + case AARCH64_OPND_SVE_SIMM6: + case AARCH64_OPND_SVE_SIMM8: + case AARCH64_OPND_SVE_UIMM3: + case AARCH64_OPND_SVE_UIMM7: + case AARCH64_OPND_SVE_UIMM8: + case AARCH64_OPND_SVE_UIMM8_53: po_imm_nc_or_fail (); info->imm.value = val; break; + case AARCH64_OPND_SVE_AIMM: + case AARCH64_OPND_SVE_ASIMM: + po_imm_nc_or_fail (); + info->imm.value = val; + skip_whitespace (str); + if (skip_past_comma (&str)) + po_misc_or_fail (parse_shift (&str, info, SHIFTED_LSL)); + else + inst.base.operands[i].shifter.kind = AARCH64_MOD_LSL; + break; + case AARCH64_OPND_SVE_PATTERN: po_enum_or_fail (aarch64_sve_pattern_array); info->imm.value = val; |