[AArch64][SVE 29/32] Add new SVE core & FP register operands
[deliverable/binutils-gdb.git] / opcodes / aarch64-opc.h
index c5bcbb82df48c42f25c559a0eed9896041bcab66..a7654d004b1355e77d0cb51d7221b94b7c11af4d 100644 (file)
@@ -91,6 +91,44 @@ enum aarch64_field_kind
   FLD_b5,
   FLD_b40,
   FLD_scale,
+  FLD_SVE_N,
+  FLD_SVE_Pd,
+  FLD_SVE_Pg3,
+  FLD_SVE_Pg4_5,
+  FLD_SVE_Pg4_10,
+  FLD_SVE_Pg4_16,
+  FLD_SVE_Pm,
+  FLD_SVE_Pn,
+  FLD_SVE_Pt,
+  FLD_SVE_Rm,
+  FLD_SVE_Rn,
+  FLD_SVE_Vd,
+  FLD_SVE_Vm,
+  FLD_SVE_Vn,
+  FLD_SVE_Za_5,
+  FLD_SVE_Za_16,
+  FLD_SVE_Zd,
+  FLD_SVE_Zm_5,
+  FLD_SVE_Zm_16,
+  FLD_SVE_Zn,
+  FLD_SVE_Zt,
+  FLD_SVE_i1,
+  FLD_SVE_imm3,
+  FLD_SVE_imm4,
+  FLD_SVE_imm5,
+  FLD_SVE_imm5b,
+  FLD_SVE_imm6,
+  FLD_SVE_imm7,
+  FLD_SVE_imm8,
+  FLD_SVE_imm9,
+  FLD_SVE_immr,
+  FLD_SVE_imms,
+  FLD_SVE_msz,
+  FLD_SVE_pattern,
+  FLD_SVE_prfop,
+  FLD_SVE_tszh,
+  FLD_SVE_xs_14,
+  FLD_SVE_xs_22,
 };
 
 /* Field description.  */
@@ -137,6 +175,9 @@ extern const aarch64_operand aarch64_operands[];
                                                   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_LSB           5
+#define OPD_F_NO_ZR            0x00000080      /* ZR index not allowed.  */
 
 static inline bfd_boolean
 operand_has_inserter (const aarch64_operand *operand)
@@ -168,6 +209,13 @@ operand_maybe_stack_pointer (const aarch64_operand *operand)
   return (operand->flags & OPD_F_MAYBE_SP) ? TRUE : FALSE;
 }
 
+/* Return the value of the operand-specific data field (OPD_F_OD_MASK).  */
+static inline unsigned int
+get_operand_specific_data (const aarch64_operand *operand)
+{
+  return (operand->flags & OPD_F_OD_MASK) >> OPD_F_OD_LSB;
+}
+
 /* Return the total width of the operand *OPERAND.  */
 static inline unsigned
 get_operand_fields_width (const aarch64_operand *operand)
@@ -390,7 +438,4 @@ get_logsz (unsigned int size)
   return ls[size - 1];
 }
 
-/* Instruction Verifiers.  */
-extern bfd_boolean verify_ldpsw (const struct aarch64_opcode *, const aarch64_insn);
-
 #endif /* OPCODES_AARCH64_OPC_H */
This page took 0.026096 seconds and 4 git commands to generate.