/* aarch64-opc.h -- Header file for aarch64-opc.c and aarch64-opc-2.c.
- Copyright (C) 2012-2016 Free Software Foundation, Inc.
+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
FLD_type,
FLD_ldst_size,
FLD_imm6,
+ FLD_imm6_2,
FLD_imm4,
+ FLD_imm4_2,
FLD_imm5,
FLD_imm7,
FLD_imm8,
FLD_SVE_Zn,
FLD_SVE_Zt,
FLD_SVE_i1,
+ FLD_SVE_i3h,
FLD_SVE_imm3,
FLD_SVE_imm4,
FLD_SVE_imm5,
FLD_SVE_msz,
FLD_SVE_pattern,
FLD_SVE_prfop,
+ FLD_SVE_rot1,
+ FLD_SVE_rot2,
FLD_SVE_sz,
FLD_SVE_tsz,
FLD_SVE_tszh,
FLD_rotate1,
FLD_rotate2,
FLD_rotate3,
+ FLD_SM3_imm2
};
/* Field description. */
value by 2 to get the value
of an immediate operand. */
#define OPD_F_MAYBE_SP 0x00000010 /* May potentially be SP. */
-#define OPD_F_OD_MASK 0x00000060 /* Operand-dependent data. */
+#define OPD_F_OD_MASK 0x000000e0 /* Operand-dependent data. */
#define OPD_F_OD_LSB 5
-#define OPD_F_NO_ZR 0x00000080 /* ZR index not allowed. */
+#define OPD_F_NO_ZR 0x00000100 /* ZR index not allowed. */
static inline bfd_boolean
operand_has_inserter (const aarch64_operand *operand)
return (operand->flags & OPD_F_OD_MASK) >> OPD_F_OD_LSB;
}
+/* Return the width of field number N of operand *OPERAND. */
+static inline unsigned
+get_operand_field_width (const aarch64_operand *operand, unsigned n)
+{
+ assert (operand->fields[n] != FLD_NIL);
+ return fields[operand->fields[n]].width;
+}
+
/* Return the total width of the operand *OPERAND. */
static inline unsigned
get_operand_fields_width (const aarch64_operand *operand)