aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-03-30 11:09:04 +0100
committerRichard Sandiford <richard.sandiford@arm.com>2023-03-30 11:09:04 +0100
commitc888354c611953575d7d6734779f7dfd7bc77e5f (patch)
tree84af437ebb41522d3407a00a862a17dafddcb7b1
parent575c497a4acde05bc67da24ae2d3af5288e8f763 (diff)
downloadbinutils-c888354c611953575d7d6734779f7dfd7bc77e5f.zip
binutils-c888354c611953575d7d6734779f7dfd7bc77e5f.tar.gz
binutils-c888354c611953575d7d6734779f7dfd7bc77e5f.tar.bz2
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.
-rw-r--r--include/opcode/aarch64.h2
-rw-r--r--opcodes/aarch64-opc.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 4a554df..aeb3d9a 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -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. */
};
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index bbbac41..c92b4e8 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -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: