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 ),
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 ), \
/* 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[] = { /****************************************/