-
-static int print_insn (bfd_vma, disassemble_info *);
-static void dofloat (int);
-static void OP_ST (int, int);
-static void OP_STi (int, int);
-static int putop (const char *, int);
-static void oappend (const char *);
-static void append_seg (void);
-static void OP_indirE (int, int);
-static void print_operand_value (char *, int, bfd_vma);
-static void OP_E_memory (int, int);
-static void print_displacement (char *, bfd_vma);
-static void OP_E (int, int);
-static void OP_G (int, int);
-static bfd_vma get64 (void);
-static bfd_signed_vma get32 (void);
-static bfd_signed_vma get32s (void);
-static int get16 (void);
-static void set_op (bfd_vma, int);
-static void OP_Skip_MODRM (int, int);
-static void OP_REG (int, int);
-static void OP_IMREG (int, int);
-static void OP_I (int, int);
-static void OP_I64 (int, int);
-static void OP_sI (int, int);
-static void OP_J (int, int);
-static void OP_SEG (int, int);
-static void OP_DIR (int, int);
-static void OP_OFF (int, int);
-static void OP_OFF64 (int, int);
-static void ptr_reg (int, int);
-static void OP_ESreg (int, int);
-static void OP_DSreg (int, int);
-static void OP_C (int, int);
-static void OP_D (int, int);
-static void OP_T (int, int);
-static void OP_MMX (int, int);
-static void OP_XMM (int, int);
-static void OP_EM (int, int);
-static void OP_EX (int, int);
-static void OP_EMC (int,int);
-static void OP_MXC (int,int);
-static void OP_MS (int, int);
-static void OP_XS (int, int);
-static void OP_M (int, int);
-static void OP_VEX (int, int);
-static void OP_VexR (int, int);
-static void OP_VexW (int, int);
-static void OP_Rounding (int, int);
-static void OP_REG_VexI4 (int, int);
-static void OP_VexI4 (int, int);
-static void PCLMUL_Fixup (int, int);
-static void VPCMP_Fixup (int, int);
-static void VPCOM_Fixup (int, int);
-static void OP_0f07 (int, int);
-static void OP_Monitor (int, int);
-static void OP_Mwait (int, int);
-static void NOP_Fixup1 (int, int);
-static void NOP_Fixup2 (int, int);
-static void OP_3DNowSuffix (int, int);
-static void CMP_Fixup (int, int);
-static void BadOp (void);
-static void REP_Fixup (int, int);
-static void SEP_Fixup (int, int);
-static void BND_Fixup (int, int);
-static void NOTRACK_Fixup (int, int);
-static void HLE_Fixup1 (int, int);
-static void HLE_Fixup2 (int, int);
-static void HLE_Fixup3 (int, int);
-static void CMPXCHG8B_Fixup (int, int);
-static void XMM_Fixup (int, int);
-static void FXSAVE_Fixup (int, int);
-
-static void MOVSXD_Fixup (int, int);
-static void DistinctDest_Fixup (int, int);
+typedef struct instr_info instr_info;
+
+static int print_insn (bfd_vma, instr_info *);
+static void dofloat (instr_info *, int);
+static void OP_ST (instr_info *, int, int);
+static void OP_STi (instr_info *, int, int);
+static int putop (instr_info *, const char *, int);
+static void oappend (instr_info *, const char *);
+static void append_seg (instr_info *);
+static void OP_indirE (instr_info *, int, int);
+static void print_operand_value (instr_info *, char *, int, bfd_vma);
+static void OP_E_memory (instr_info *, int, int);
+static void print_displacement (instr_info *, char *, bfd_vma);
+static void OP_E (instr_info *, int, int);
+static void OP_G (instr_info *, int, int);
+static bfd_vma get64 (instr_info *);
+static bfd_signed_vma get32 (instr_info *);
+static bfd_signed_vma get32s (instr_info *);
+static int get16 (instr_info *);
+static void set_op (instr_info *, bfd_vma, int);
+static void OP_Skip_MODRM (instr_info *, int, int);
+static void OP_REG (instr_info *, int, int);
+static void OP_IMREG (instr_info *, int, int);
+static void OP_I (instr_info *, int, int);
+static void OP_I64 (instr_info *, int, int);
+static void OP_sI (instr_info *, int, int);
+static void OP_J (instr_info *, int, int);
+static void OP_SEG (instr_info *, int, int);
+static void OP_DIR (instr_info *, int, int);
+static void OP_OFF (instr_info *, int, int);
+static void OP_OFF64 (instr_info *, int, int);
+static void ptr_reg (instr_info *, int, int);
+static void OP_ESreg (instr_info *, int, int);
+static void OP_DSreg (instr_info *, int, int);
+static void OP_C (instr_info *, int, int);
+static void OP_D (instr_info *, int, int);
+static void OP_T (instr_info *, int, int);
+static void OP_MMX (instr_info *, int, int);
+static void OP_XMM (instr_info *, int, int);
+static void OP_EM (instr_info *, int, int);
+static void OP_EX (instr_info *, int, int);
+static void OP_EMC (instr_info *, int,int);
+static void OP_MXC (instr_info *, int,int);
+static void OP_MS (instr_info *, int, int);
+static void OP_XS (instr_info *, int, int);
+static void OP_M (instr_info *, int, int);
+static void OP_VEX (instr_info *, int, int);
+static void OP_VexR (instr_info *, int, int);
+static void OP_VexW (instr_info *, int, int);
+static void OP_Rounding (instr_info *, int, int);
+static void OP_REG_VexI4 (instr_info *, int, int);
+static void OP_VexI4 (instr_info *, int, int);
+static void PCLMUL_Fixup (instr_info *, int, int);
+static void VPCMP_Fixup (instr_info *, int, int);
+static void VPCOM_Fixup (instr_info *, int, int);
+static void OP_0f07 (instr_info *, int, int);
+static void OP_Monitor (instr_info *, int, int);
+static void OP_Mwait (instr_info *, int, int);
+static void NOP_Fixup1 (instr_info *, int, int);
+static void NOP_Fixup2 (instr_info *, int, int);
+static void OP_3DNowSuffix (instr_info *, int, int);
+static void CMP_Fixup (instr_info *, int, int);
+static void BadOp (instr_info *);
+static void REP_Fixup (instr_info *, int, int);
+static void SEP_Fixup (instr_info *, int, int);
+static void BND_Fixup (instr_info *, int, int);
+static void NOTRACK_Fixup (instr_info *, int, int);
+static void HLE_Fixup1 (instr_info *, int, int);
+static void HLE_Fixup2 (instr_info *, int, int);
+static void HLE_Fixup3 (instr_info *, int, int);
+static void CMPXCHG8B_Fixup (instr_info *, int, int);
+static void XMM_Fixup (instr_info *, int, int);
+static void FXSAVE_Fixup (instr_info *, int, int);
+
+static void MOVSXD_Fixup (instr_info *, int, int);
+static void DistinctDest_Fixup (instr_info *, int, int);