/* op1 op2 res eq verify reg gen fu */ _OE( _Bin( R, R, R, NONE ), V_NO, RG_FLOAT, G_BINARY_FP, FU_ALU ), _OE( _Bin( C, ANY, ANY, NONE ), V_NO, RG_FLOAT, R_FORCEOP1CMEM, FU_NO ), _OE( _Bin( ANY, C, ANY, NONE ), V_NO, RG_FLOAT, R_FORCEOP2CMEM, FU_NO ), _OE( _Bin( M, ANY, ANY, NONE ), V_NO, RG_FLOAT, R_MOVOP1TEMP, FU_NO ), _OE( _Bin( ANY, M, ANY, NONE ), V_NO, RG_FLOAT, R_MOVOP2TEMP, FU_NO ), _OE( _Bin( ANY, ANY, M, NONE ), V_NO, RG_FLOAT, R_MOVRESTEMP, FU_NO ), _OE( _Bin( ANY, ANY, ANY, NONE ), V_NO, RG_FLOAT_NEED,G_UNKNOWN, FU_NO ), _OE( _Bin( ANY, ANY, ANY, NONE ), V_NO, RG_, G_UNKNOWN, FU_NO ), }; opcode_entry DoNop[] = { /*************************/ /* op1 op2 res eq verify reg gen fu */ _OE( _BinPP( ANY, ANY, ANY, NONE ), V_NO, RG_, G_NO, FU_NO ), }; opcode_entry Set4[] = { /************************/ /* op1 op2 res eq verify reg gen fu */ _OE( _Bin( ANY, ANY, ANY, NONE ), V_NO, RG_, R_DOSET, FU_ALU ), }; opcode_entry Test4[] = { /*************************/ /* op1 op2 res eq verify reg gen fu */ _OE( _Bin( ANY, ANY, ANY, NONE ), V_NO, RG_, R_DOTEST, FU_ALU ), }; opcode_entry Cmp4[] = {
opcode_entry Push87D[] = { /*****************************/ /* op res eq verify gen reg fu*/ #if _TARGET & _TARG_IAPX86 {_Un( R|M|C,ANY, NONE ), V_NO, R_SPLIT8, RG_8, FU_NO}, #else {_Un( R|M|C,ANY, NONE ), V_NO, R_SPLITUNARY, RG_8, FU_NO}, #endif {_Un( ANY, ANY, NONE ), V_NO, G_UNKNOWN, RG_8087, FU_NO}, }; opcode_entry Bin87[] = { /***************************/ /* op1 op2 res eq verify gen reg fu*/ {_BinPP( C, R|M|U,ANY, NONE ), V_OP1ONE, G_UNKNOWN, RG_8087,FU_NO}, {_BinPP( C, R|M|U,ANY, NONE ), V_OP1ZERO, G_UNKNOWN, RG_8087,FU_NO}, {_BinPP( C, ANY, ANY, NONE ), V_NO, R_FORCEOP1CMEM, RG_8087,FU_NO}, {_BinPP( ANY, C, ANY, NONE ), V_OP2ONE, G_UNKNOWN, RG_8087,FU_NO}, {_BinPP( ANY, C, ANY, NONE ), V_OP2ZERO, G_UNKNOWN, RG_8087,FU_NO}, {_BinPP( ANY, C, ANY, NONE ), V_NO, R_FORCEOP2CMEM, RG_8087,FU_NO}, {_BinPP( ANY, ANY, ANY, NONE ), V_NO, G_UNKNOWN, RG_8087,FU_NO}, }; opcode_entry Bin87Func[] = { /*****************************/ /* op1 op2 res eq verify gen reg fu*/ {_Bin( C, R|M|U,ANY, NONE ), V_OP1ONE, G_UNKNOWN, RG_8087_ZAP_ACC,FU_NO}, {_Bin( C, R|M|U,ANY, NONE ), V_OP1ZERO, G_UNKNOWN, RG_8087_ZAP_ACC,FU_NO}, {_Bin( C, ANY, ANY, NONE ), V_NO, R_FORCEOP1CMEM, RG_8087_ZAP_ACC,FU_NO}, {_Bin( ANY, C, ANY, NONE ), V_OP2ONE, G_UNKNOWN, RG_8087_ZAP_ACC,FU_NO},
/*******************************/ /* op1 op2 res eq verify gen reg fu */ _Bin( R, R, R, NONE ), V_NO, G_BINARY_FP, RG_FLOAT,FU_ALU, _Bin( C, ANY, ANY, NONE ), V_NO, R_FORCEOP1CMEM,RG_FLOAT, FU_NO, _Bin( ANY, C, ANY, NONE ), V_NO, R_FORCEOP2CMEM,RG_FLOAT, FU_NO, _Bin( M, ANY, ANY, NONE ), V_NO, R_MOVOP1TEMP, RG_FLOAT, FU_NO, _Bin( ANY, M, ANY, NONE ), V_NO, R_MOVOP2TEMP, RG_FLOAT, FU_NO, _Bin( ANY, ANY, M, NONE ), V_NO, R_MOVRESTEMP, RG_FLOAT, FU_NO, _Bin( ANY, ANY, ANY, NONE ), V_NO, G_UNKNOWN, RG_FLOAT_NEED, FU_NO, }; opcode_entry DoNop[] = { /*************************/ /* op1 op2 res eq verify gen reg fu */ _BinPP( ANY, ANY, ANY, NONE ), V_NO, G_NO, RG_, FU_NO, }; opcode_entry Set4[] = { /************************/ /* op1 op2 res eq verify gen reg fu */ _Bin( ANY, ANY, ANY, NONE ), V_NO, R_DOSET, RG_, FU_ALU, }; opcode_entry Test4[] = { /*************************/ /* op1 op2 res eq verify gen reg fu */ _Bin( ANY, ANY, ANY, NONE ), V_NO, R_DOTEST, RG_, FU_ALU, }; opcode_entry Cmp4[] = {