summaryrefslogtreecommitdiff
path: root/opcodes/aarch64-opc.h
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/aarch64-opc.h')
-rw-r--r--opcodes/aarch64-opc.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h
index 79227883d80..3d1765ba95b 100644
--- a/opcodes/aarch64-opc.h
+++ b/opcodes/aarch64-opc.h
@@ -70,6 +70,7 @@ enum aarch64_field_kind
FLD_imm6_2,
FLD_imm4,
FLD_imm4_2,
+ FLD_imm4_3,
FLD_imm5,
FLD_imm7,
FLD_imm8,
@@ -199,6 +200,10 @@ verify_constraints (const struct aarch64_inst *, const aarch64_insn, bfd_vma,
#define OPD_F_OD_MASK 0x000000e0 /* Operand-dependent data. */
#define OPD_F_OD_LSB 5
#define OPD_F_NO_ZR 0x00000100 /* ZR index not allowed. */
+#define OPD_F_SHIFT_BY_4 0x00000200 /* Need to left shift the field
+ value by 4 to get the value
+ of an immediate operand. */
+
/* Register flags. */
@@ -253,6 +258,12 @@ operand_need_shift_by_two (const aarch64_operand *operand)
}
static inline bfd_boolean
+operand_need_shift_by_four (const aarch64_operand *operand)
+{
+ return (operand->flags & OPD_F_SHIFT_BY_4) ? TRUE : FALSE;
+}
+
+static inline bfd_boolean
operand_maybe_stack_pointer (const aarch64_operand *operand)
{
return (operand->flags & OPD_F_MAYBE_SP) ? TRUE : FALSE;