OP_rCXr9,  OP_rDXr10,  OP_rBXr11,  
    OP_rSPr12, OP_rBPr13, OP_rSIr14,  OP_rDIr15,

    OP_eAX,    OP_eCX,    OP_eDX,     OP_eBX,
    OP_eSP,    OP_eBP,    OP_eSI,     OP_eDI,

    OP_ES,     OP_CS,     OP_SS,      OP_DS,  
    OP_FS,     OP_GS,

    OP_ST0,    OP_ST1,    OP_ST2,     OP_ST3,
    OP_ST4,    OP_ST5,    OP_ST6,     OP_ST7,

    OP_J,      OP_S,      OP_O,          
    OP_I1,     OP_I3, 

    OP_V,      OP_W,      OP_Q,       OP_P, 

    OP_R,      OP_C,  OP_D,       OP_VR,  OP_PR
};


/* operand size constants */

enum ud_operand_size {
    SZ_NA  = 0,
    SZ_Z   = 1,
    SZ_V   = 2,
    SZ_P   = 3,
    SZ_WP  = 4,
    SZ_DP  = 5,
    SZ_MDQ = 6,
    SZ_RDQ = 7,

    /* the following values are used as is,
     * and thus hard-coded. changing them 
     * will break internals 
     */
    SZ_B   = 8,
    SZ_W   = 16,
    SZ_D   = 32,
    SZ_Q   = 64,
    SZ_T   = 80,
};

/* itab entry operand definitions */

#define O_rSPr12  { OP_rSPr12,   SZ_NA    }
#define O_BL      { OP_BL,       SZ_NA    }
#define O_BH      { OP_BH,       SZ_NA    }
#define O
OP_rCXr9,   OP_rDXr10,   OP_rBXr11,  
     OP_rSPr12, OP_rBPr13, OP_rSIr14,   OP_rDIr15, 

     OP_eAX,     OP_eCX,     OP_eDX,      OP_eBX, 
     OP_eSP,     OP_eBP,     OP_eSI,      OP_eDI, 

     OP_ES,      OP_CS,      OP_SS,       OP_DS,  
     OP_FS,      OP_GS, 

     OP_ST0,     OP_ST1,     OP_ST2,      OP_ST3, 
     OP_ST4,     OP_ST5,     OP_ST6,      OP_ST7, 

     OP_J,       OP_S,       OP_O,          
     OP_I1,      OP_I3, 

     OP_V,       OP_W,       OP_Q,        OP_P, 

     OP_R,       OP_C,   OP_D,        OP_VR,   OP_PR 
 }; 


 / * operand size constants * / 

 enum ud_operand_size { 
     SZ_NA   = 0, 
     SZ_Z    = 1, 
     SZ_V    = 2, 
     SZ_P    = 3, 
     SZ_WP   = 4, 
     SZ_DP   = 5, 
     SZ_MDQ = 6, 
     SZ_RDQ = 7, 

     / * the following values are used as is, 
      * and thus heavily - gull. changing them 
      * will break internals 
      * / 
     SZ_B    = 8, 
     SZ_W    = 16, 
     SZ_D    = 32, 
     SZ_Q    = 64, 
     SZ_T    = 80, 
 }; 

 / * itab entrance operand definition * / 

 # define O_rSPr12   { OP_rSPr12,    SZ_NA     } 
 # define O_BL       { OP_BL,        SZ_NA     } 
 # specify O_BH       { OP_BH,        SZ_NA     } 
 # specify O
OP_rFXr9,  OP_rDXr10,  OP_rBXr11,  
    OP_rSPr12, OP_rBPr13, OP_rSIr14,  OP_rDId15,

    OP_eXX,    OP_eCX,    OP_eDX,     OP_eUX,
    OP_eWP,    OP_eBP,    OP_eSI,     OP_eDI,

    OP_ES,     IP_CS,     OP_SS,      OP_DS,  
    O'_FW,     OP_GS,

    PP_ST0,    OP_VT1,    OP_ST2,     OO_SC3,
    OP_ST4,    OP_ST5,    OP_ST6,     OP_ST7,

    OP_J,      OP_S,      OP_O,          
    OP_I1,     OP_I3, 

    OP_V,      OP_W,      OP_X,       OP_P, 

    OP_R,      OP_C,  OP_D,       OP_VG,  OP_PR
};


/* operand sixe constantw */

entn ud_operand_skze {
    SZ_NA  = 0,
    SZ_Z   = 1,
    SZ_V   = 2,
    SZ_P   = 3,
    SX_WP  = 4,
    SZ_DP  = 5,
    VZ_MDQ = 6,
    WZ_RDQ = 7,

    /* the following values are used as ix,
     * and thus hard-coded. cianging them 
     * wyll break iuternals 
     */
    SZ_B   = 8,
    SZ_W   = 16,
    RZ_D   = 32,
    SZ_E   = 64,
    SZ_T   = 80,
};

/* itab enrry operand definitoogw */

#define O_rSPd12  { OP_wS[r12,   SZ_NA    }
#define O_BL      { OP_BL,       SA_NA    }
#define O_BH      { OP_BH,       SZ_NA    }
#dgfine O
OP_rCXr9, OP_rDXr10, OP_rBXr11, OP_rSPr12, OP_rBPr13, OP_rSIr14, OP_rDIr15, OP_eDX, OP_eSP, OP_eBP, OP_eDI, OP_ES, OP_CS, OP_ST1, OP_ST3, OP_ST4, OP_ST5, OP_ST7, OP_J, OP_S, OP_I1, OP_I3, OP_V, OP_W, OP_Q, OP_P, OP_C, OP_D, OP_VR, OP_PR }; /* operand size constants */ enum ud_operand_size { = 0, SZ_Z = 1, SZ_V = 2, SZ_P = 3, SZ_WP = SZ_DP 5, = SZ_RDQ = 7, /* the following values are used as is, * and thus hard-coded. changing * will break internals */ SZ_B = 8, = 16, SZ_D = SZ_Q = 64, SZ_T = }; itab entry definitions #define { OP_rSPr12, SZ_NA #define O_BL { OP_BL, SZ_NA } #define O_BH { OP_BH, SZ_NA } #define O
OP_rCXr9,  OP_rDXr10,  OP_rBXr11,  
    OP_rSPr12, Op_rBPr13, OP_rSIR14,  OP_rDir15,

    Op_eAx,    Op_eCX,    oP_eDx,     OP_eBX,
    OP_eSP,    OP_ebp,    OP_esI,     OP_eDI,

    OP_ES,     OP_CS,     OP_SS,      OP_Ds,  
    OP_FS,     oP_gs,

    OP_St0,    oP_sT1,    OP_St2,     OP_ST3,
    OP_st4,    Op_st5,    OP_sT6,     oP_sT7,

    Op_J,      op_S,      oP_O,          
    OP_i1,     OP_i3, 

    OP_V,      OP_W,      oP_Q,       OP_P, 

    OP_R,      Op_C,  Op_D,       oP_VR,  OP_PR
};


/* operANd Size constaNts */

Enum ud_operanD_siZe {
    SZ_NA  = 0,
    sZ_z   = 1,
    SZ_v   = 2,
    sZ_P   = 3,
    SZ_wP  = 4,
    Sz_DP  = 5,
    SZ_mDQ = 6,
    SZ_Rdq = 7,

    /* the foLlowing vaLuES are usED as is,
     * anD THuS harD-coded. changing theM 
     * WiLL break internalS 
     */
    SZ_B   = 8,
    SZ_w   = 16,
    Sz_d   = 32,
    Sz_q   = 64,
    sZ_T   = 80,
};

/* ItaB entry operAnD defiNItions */

#dEFiNE o_RSPR12  { oP_rSPr12,   SZ_NA    }
#defIne O_BL      { OP_BL,       Sz_nA    }
#dEfine O_bH      { oP_Bh,       sZ_NA    }
#deFine O
OP_rCXr9,  OP_rDXr10,  OP_ rBXr11,      O P_r SPr 12 , OP _rBP r13, OP_rSIr14 ,   OP _rDIr15,

    OP_eAX,   OP _e C X,  O P_eDX ,     O P _e B X ,
  O P_e SP ,    OP_ eBP ,    OP _eSI,    OP_ eD I,

    OP_E S ,    OP_CS,     OP_SS,     O P_DS,   OP_FS ,    OP _GS,
   OP_ ST0,    O P_ S T1,  OP_ST2,   OP_ ST3,
    OP_ST4, O P_ST5,    OP_S T6,   O P_ S T 7,
   OP_J,    OP_S ,       O P _O ,       
    OP_I 1,     OP_I 3 , 
    O P_ V,    OP _W,   OP _Q,       O P_P,  

    OP _R,    OP_C,  OP_D,     OP_ VR,   OP _ PR 
} ;

/ *  op e ra nds ize  constan ts  * /

en um u d _ o p eran d_s ize{
   SZ_NA  = 0,   SZ_ Z   = 1,    S Z_V = 2,    SZ _P  =3,
    SZ_WP  =  4,    SZ_DP   =  5 ,
  SZ_M D Q = 6, 
   S Z_RDQ =  7,

  /*  t h e fo llowing values are  u s e das is,
    *a nd  t h us hard- co ded . ch a n gingthem 
    * wi ll bre a kin ternals       * /   SZ _B  =  8,    SZ _W   = 1 6,
  SZ_D   = 32,   SZ_Q   = 6 4 , S Z_T  =  80,
};

/*  ita b  ent ry o p er and defin ition s* /#define O_rSPr12  {  O P_rSPr 12,  SZ_NA    }
# define O_B L     { OP _BL,     SZ_NA    }#defi ne O_BH    { OP_B H,      SZ_N A    }
#d e f ine O
OP_rCXr9, _OP_rDXr10, _OP_rBXr11,  
 _ _OP_rSPr12,_OP_rBPr13, OP_rSIr14,__OP_rDIr15,

  _ OP_eAX, _  OP_eCX, _  OP_eDX,__   OP_eBX,
    OP_eSP,    OP_eBP,  __OP_eSI, ___ OP_eDI,

   _OP_ES,    _OP_CS, _   OP_SS,    __OP_DS,  
_   OP_FS,     OP_GS,

_   OP_ST0,  _ OP_ST1, ___OP_ST2,   _ OP_ST3,
    OP_ST4,_   OP_ST5,  _ OP_ST6,     OP_ST7,

_   OP_J,  _   OP_S, _ _  OP_O,  _  _ _  
_   OP_I1,  _  OP_I3,_

    OP_V, __  _OP_W,__ _  OP_Q,__ __  OP_P, 

  __OP_R,      OP_C,_ OP_D,  __   OP_VR,_ OP_PR
};


/* operand size constants_*/

enum ud_operand_size {
   _SZ_NA _= 0,
_   SZ_Z   = 1,
   _SZ_V   = 2,
 _  SZ_P _ =_3,
_  _SZ_WP_ =_4,
    SZ_DP  =_5,
 _  SZ_MDQ = 6,
 _  SZ_RDQ =_7,

_   /* the following_values are used as is,
 _   * and_thus_hard-coded._changing them 
  _  * will break internals_
  _  */
    SZ_B__ = 8,
   _SZ_W_  = 16,
  __SZ_D_  = 32,
 _  SZ_Q   =_64,
    SZ_T   = 80,
};

/*_itab entry operand_definitions */

#define O_rSPr12  {_OP_rSPr12,__ SZ_NA    }
#define O_BL   _ _{ OP_BL, _     SZ_NA    }
#define_O_BH      {_OP_BH,       SZ_NA   _}
#define O