aarch64: Make indexed_za use 64-bit immediates

A later patch moves the range checking for ZA vector select
offsets from gas to libopcodes.  That in turn requires the
immediate field to be big enough to support all parsed values.

This shouldn't be a particularly size-sensitive structure,
so there should be no memory problems with doing this.
This commit is contained in:
Richard Sandiford 2023-03-30 11:09:04 +01:00
parent 575c497a4a
commit c888354c61
2 changed files with 4 additions and 4 deletions

View File

@ -1115,7 +1115,7 @@ struct aarch64_indexed_za
struct
{
int regno; /* <Wv> */
int imm; /* <imm> */
int64_t imm; /* <imm> */
} index;
unsigned v : 1; /* <HV> horizontal or vertical vector indicator. */
};

View File

@ -3560,7 +3560,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
opnd->indexed_za.v == 1 ? 'v' : 'h',
aarch64_get_qualifier_name (opnd->qualifier)),
style_reg (styler, "w%d", opnd->indexed_za.index.regno),
style_imm (styler, "%d", opnd->indexed_za.index.imm),
style_imm (styler, "%" PRIi64, opnd->indexed_za.index.imm),
opnd->type == AARCH64_OPND_SME_ZA_HV_idx_ldstr ? "}" : "");
break;
@ -3572,7 +3572,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
snprintf (buf, size, "%s[%s, %s]",
style_reg (styler, "za"),
style_reg (styler, "w%d", opnd->indexed_za.index.regno),
style_imm (styler, "%d", opnd->indexed_za.index.imm));
style_imm (styler, "%" PRIi64, opnd->indexed_za.index.imm));
break;
case AARCH64_OPND_SME_SM_ZA:
@ -3585,7 +3585,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
style_reg (styler, "p%d.%s", opnd->indexed_za.regno,
aarch64_get_qualifier_name (opnd->qualifier)),
style_reg (styler, "w%d", opnd->indexed_za.index.regno),
style_imm (styler, "%d", opnd->indexed_za.index.imm));
style_imm (styler, "%" PRIi64, opnd->indexed_za.index.imm));
break;
case AARCH64_OPND_CRn: