Exemplo n.º 1
0
opcode_entry    NegF[] = {
/************************/
/*           from  to    eq            verify          reg           gen             fu  */
_OE( _Un(    R,    R,    NONE ),       V_NO,           RG_FLOAT,     G_UNARY,        FU_NO ),
_OE( _Un(    C|M,  ANY,  NONE ),       V_NO,           RG_FLOAT,     R_MOVOP1TEMP,   FU_NO ),
_OE( _Un(    ANY,  M,    NONE ),       V_NO,           RG_FLOAT,     R_MOVRESTEMP,   FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_FLOAT_NEED,G_UNKNOWN,      FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_,          G_UNKNOWN,      FU_NO ),
};

opcode_entry    MoveXX[] = {
/**************************/
/*           from  to    eq            verify          reg           gen             fu  */
//_OE( _Un(    ANY,  ANY,  NONE ),       V_REG_SIZE,     RG_,          R_CHANGETYPE, FU_NO ),
_OE( _Un(    M|U,  M|U,  EQ_R1 ),      NVI(V_NO),      RG_,          G_NO,           FU_NO ),
_OE( _UnPP(  M,    M,    NONE ),       V_SAME_LOCN,    RG_,          G_NO,           FU_NO ),
_OE( _Un(    U,    ANY,  NONE ),       V_NO,           RG_,          R_FORCEOP1MEM,  FU_NO ),
_OE( _Un(    ANY,  U,    NONE ),       V_NO,           RG_,          R_FORCERESMEM,  FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_OP1_RES_AL8,  RG_QWORD_NEED,R_MOVEXX_8,     FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_OP1_RES_AL4,  RG_QWORD_NEED,R_MOVEXX_4,     FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_QWORD_NEED,R_MOVEXX,       FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_,          G_UNKNOWN,      FU_NO ),
};

opcode_entry    Move1[] = {
/*************************/
/*           from  to    eq            verify          reg           gen             fu  */
_OE( _Un(    ANY,  ANY,  EQ_R1 ),      NVI(V_NO),      RG_,          G_NO,           FU_NO ),
_OE( _UnPP(  M,    M,    NONE ),       V_SAME_LOCN,    RG_,          G_NO,           FU_NO ),
_OE( _Un(    R,    R,    NONE ),       V_NO,           RG_BYTE,      G_MOVE,         FU_NO ),
Exemplo n.º 2
0
opcode_entry    NegF[] = {
/************************/
/*           from  to    eq            verify          reg           gen             fu  */
_OE( _Un(    R,    R,    NONE ),       V_NO,           RG_FLOAT,     G_UNARY,        FU_NO ),
_OE( _Un(    C|M,  ANY,  NONE ),       V_NO,           RG_FLOAT,     R_MOVOP1TEMP,   FU_NO ),
_OE( _Un(    ANY,  M,    NONE ),       V_NO,           RG_FLOAT,     R_MOVRESTEMP,   FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_FLOAT_NEED,G_UNKNOWN,      FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_,          G_UNKNOWN,      FU_NO ),
};

opcode_entry    MoveXX[] = {
/**************************/
/*           from  to    eq            verify          reg           gen             fu  */
_OE( _Un(    ANY,  ANY,  NONE  ),      V_REG_SIZE,     RG_,          R_CHANGETYPE,   FU_NO ),
_OE( _Un(    M|U,  M|U,  EQ_R1 ),      NVI(V_NO),      RG_,          G_NO,           FU_NO ),
_OE( _UnPP(  M,    M,    NONE  ),      NVI(V_SAME_LOCN),RG_,         G_NO,           FU_NO ),
_OE( _Un(    U,    ANY,  NONE ),       V_NO,           RG_,          R_FORCEOP1MEM,  FU_NO ),
_OE( _Un(    ANY,  U,    NONE ),       V_NO,           RG_,          R_FORCERESMEM,  FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_OP1_RES_AL4,  RG_DWORD_NEED,R_MOVEXX_4,     FU_NO ),
_OE( _Un(    ANY,  ANY,  NONE ),       V_NO,           RG_,          R_MOVEXX,       FU_NO ),
};

#define MOVE_TABLE( t_name, reg, load, store ) \
opcode_entry    t_name[] = {                                                                   \
/**************************/                                                                   \
/*           from  to    eq            verify          reg           gen             fu  */    \
_OE( _Un(    ANY,  ANY,  EQ_R1 ),      NVI(V_NO),      RG_,          G_NO,           FU_NO ),  \
_OE( _UnPP(  M,    M,    NONE  ),      NVI(V_SAME_LOCN),RG_,         G_NO,           FU_NO ),  \
_OE( _Un(    R,    R,    NONE ),       V_NO,           RG_##reg,     G_MOVE,         FU_NO ),  \
_OE( _Un(    R,    M,    NONE ),       V_NO,           RG_##reg,     store,          FU_MEM ), \
Exemplo n.º 3
0
/*        from  to    eq       verify        reg           gen             fu  */
_OE( _Un( R,    R,    NONE ),  V_NO,         RG_CBW,       G_SIGNEX,       FU_ALUX ),
_OE( _Un( R|M,  R,    NONE ),  V_NO,         RG_BYTE_WORD, G_MOVSX,        FU_ALU1 ),
_OE( _Un( U|C,  R,    NONE ),  V_NO,         RG_BYTE_WORD, G_UNKNOWN,      FU_NO ),
_OE( _Un( ANY,  M,    NONE ),  V_NO,         RG_BYTE_WORD, R_MOVRESREG,    FU_NO ),
_OE( _Un( ANY,  ANY,  NONE ),  V_NO,         RG_BYTE_WORD_NEED_WORD,G_UNKNOWN,FU_NO ),
_OE( _Un( ANY,  ANY,  NONE ),  V_NO,         RG_,          G_UNKNOWN,      FU_NO ),
};

static const opcode_entry    ctable_S1TO4[] = {
/****************************************/
/*        from  to    eq       verify        reg           gen             fu  */
//_OE( _Un( R,    R,    NONE ),  V_NO,         RG_CBDE,      G_SIGNEX,       FU_ALUX ),
//_OE( _Un( R,    R,    NONE ),  V_NO,         RG_CBD,       G_SIGNEX,       FU_ALUX ),
//_OE( _Un( ANY,  R,    NONE ),  V_NO,         RG_CBD,       R_MOVOP1REG,    FU_NO ),
_OE( _Un( M,    R,    NONE ),NVI(V_CYP_SEX), RG_DBL,       R_CYP_SEX,      FU_NO ),
_OE( _Un( R|M,  R,    NONE ),  V_NO,         RG_BYTE_DBL,  G_MOVSX,        FU_ALU1 ),
_OE( _Un( U|C,  R,    NONE ),  V_NO,         RG_BYTE_DBL,  G_UNKNOWN,      FU_NO ),
_OE( _Un( ANY,  M,    NONE ),  V_NO,         RG_BYTE_DBL,  R_MOVRESREG,    FU_NO ),
_OE( _Un( ANY,  ANY,  NONE ),  V_NO,         RG_BYTE_DBL_NEED_DBL,G_UNKNOWN,FU_NO ),
_OE( _Un( ANY,  ANY,  NONE ),  V_NO,         RG_,          G_UNKNOWN,      FU_NO ),
};

static const opcode_entry    ctable_S1TO8[] = {
/****************************************/
/*        from  to    eq       verify        reg           gen             fu  */
_OE( _Un( ANY,  ANY,  NONE ),  V_NO,         RG_,          R_CONVERT_UP,   FU_NO ),
};

static const opcode_entry    ctable_S2TO8[] = {
/****************************************/