This commit is contained in:
kobalicek
2017-11-07 02:04:29 +01:00
parent 802c6a037f
commit 4f66bee8b2
3 changed files with 17 additions and 12 deletions

View File

@@ -2837,6 +2837,10 @@ CaseExtRm:
isign3 &= 0x3F;
goto CaseVexRm;
case X86Inst::kEncodingVexRm_Wx:
ADD_REX_W(X86Reg::isGpq(o0) | X86Reg::isGpq(o1));
goto CaseVexRm;
case X86Inst::kEncodingVexRm_Lx:
opCode |= x86OpCodeLBySize(o0.getSize() | o1.getSize());
ASMJIT_FALLTHROUGH;

View File

@@ -970,14 +970,14 @@ const X86Inst X86InstDB::instData[] = {
INST(Vcvtps2uqq , VexRm_Lx , V(660F00,79,_,x,_,0,3,HV ), 0 , 0 , 0 , 3475, 289, 123, 0 ),
INST(Vcvtqq2pd , VexRm_Lx , V(F30F00,E6,_,x,_,1,4,FV ), 0 , 0 , 0 , 3486, 284, 123, 0 ),
INST(Vcvtqq2ps , VexRm_Lx , V(000F00,5B,_,x,_,1,4,FV ), 0 , 0 , 0 , 3496, 285, 123, 0 ),
INST(Vcvtsd2si , VexRm , V(F20F00,2D,_,I,x,x,3,T1F), 0 , 0 , 0 , 3506, 291, 117, 11),
INST(Vcvtsd2si , VexRm_Wx , V(F20F00,2D,_,I,x,x,3,T1F), 0 , 0 , 0 , 3506, 291, 117, 11),
INST(Vcvtsd2ss , VexRvm , V(F20F00,5A,_,I,I,1,3,T1S), 0 , 0 , 0 , 3516, 248, 117, 12),
INST(Vcvtsd2usi , VexRm , V(F20F00,79,_,I,_,x,3,T1F), 0 , 0 , 0 , 3526, 292, 65 , 0 ),
INST(Vcvtsi2sd , VexRvm , V(F20F00,2A,_,I,x,x,2,T1W), 0 , 0 , 0 , 3537, 293, 117, 13),
INST(Vcvtsi2ss , VexRvm , V(F30F00,2A,_,I,x,x,2,T1W), 0 , 0 , 0 , 3547, 293, 117, 13),
INST(Vcvtsd2usi , VexRm_Wx , V(F20F00,79,_,I,_,x,3,T1F), 0 , 0 , 0 , 3526, 292, 65 , 0 ),
INST(Vcvtsi2sd , VexRvm_Wx , V(F20F00,2A,_,I,x,x,2,T1W), 0 , 0 , 0 , 3537, 293, 117, 13),
INST(Vcvtsi2ss , VexRvm_Wx , V(F30F00,2A,_,I,x,x,2,T1W), 0 , 0 , 0 , 3547, 293, 117, 13),
INST(Vcvtss2sd , VexRvm , V(F30F00,5A,_,I,I,0,2,T1S), 0 , 0 , 0 , 3557, 294, 117, 13),
INST(Vcvtss2si , VexRm , V(F20F00,2D,_,I,x,x,2,T1F), 0 , 0 , 0 , 3567, 295, 117, 14),
INST(Vcvtss2usi , VexRm , V(F30F00,79,_,I,_,x,2,T1F), 0 , 0 , 0 , 3577, 296, 65 , 0 ),
INST(Vcvtss2si , VexRm_Wx , V(F30F00,2D,_,I,x,x,2,T1F), 0 , 0 , 0 , 3567, 295, 117, 14),
INST(Vcvtss2usi , VexRm_Wx , V(F30F00,79,_,I,_,x,2,T1F), 0 , 0 , 0 , 3577, 296, 65 , 0 ),
INST(Vcvttpd2dq , VexRm_Lx , V(660F00,E6,_,x,I,1,4,FV ), 0 , 0 , 0 , 3588, 297, 116, 15),
INST(Vcvttpd2qq , VexRm_Lx , V(660F00,7A,_,x,_,1,4,FV ), 0 , 0 , 0 , 3599, 298, 120, 0 ),
INST(Vcvttpd2udq , VexRm_Lx , V(000F00,78,_,x,_,1,4,FV ), 0 , 0 , 0 , 3610, 299, 120, 0 ),
@@ -986,16 +986,16 @@ const X86Inst X86InstDB::instData[] = {
INST(Vcvttps2qq , VexRm_Lx , V(660F00,7A,_,x,_,0,3,HV ), 0 , 0 , 0 , 3645, 301, 123, 0 ),
INST(Vcvttps2udq , VexRm_Lx , V(000F00,78,_,x,_,0,4,FV ), 0 , 0 , 0 , 3656, 302, 120, 0 ),
INST(Vcvttps2uqq , VexRm_Lx , V(660F00,78,_,x,_,0,3,HV ), 0 , 0 , 0 , 3668, 301, 123, 0 ),
INST(Vcvttsd2si , VexRm , V(F20F00,2C,_,I,x,x,3,T1F), 0 , 0 , 0 , 3680, 303, 117, 17),
INST(Vcvttsd2usi , VexRm , V(F20F00,78,_,I,_,x,3,T1F), 0 , 0 , 0 , 3691, 304, 65 , 0 ),
INST(Vcvttss2si , VexRm , V(F30F00,2C,_,I,x,x,2,T1F), 0 , 0 , 0 , 3703, 305, 117, 18),
INST(Vcvttss2usi , VexRm , V(F30F00,78,_,I,_,x,2,T1F), 0 , 0 , 0 , 3714, 306, 65 , 0 ),
INST(Vcvttsd2si , VexRm_Wx , V(F20F00,2C,_,I,x,x,3,T1F), 0 , 0 , 0 , 3680, 303, 117, 17),
INST(Vcvttsd2usi , VexRm_Wx , V(F20F00,78,_,I,_,x,3,T1F), 0 , 0 , 0 , 3691, 304, 65 , 0 ),
INST(Vcvttss2si , VexRm_Wx , V(F30F00,2C,_,I,x,x,2,T1F), 0 , 0 , 0 , 3703, 305, 117, 18),
INST(Vcvttss2usi , VexRm_Wx , V(F30F00,78,_,I,_,x,2,T1F), 0 , 0 , 0 , 3714, 306, 65 , 0 ),
INST(Vcvtudq2pd , VexRm_Lx , V(F30F00,7A,_,x,_,0,3,HV ), 0 , 0 , 0 , 3726, 307, 120, 0 ),
INST(Vcvtudq2ps , VexRm_Lx , V(F20F00,7A,_,x,_,0,4,FV ), 0 , 0 , 0 , 3737, 290, 120, 0 ),
INST(Vcvtuqq2pd , VexRm_Lx , V(F30F00,7A,_,x,_,1,4,FV ), 0 , 0 , 0 , 3748, 284, 123, 0 ),
INST(Vcvtuqq2ps , VexRm_Lx , V(F20F00,7A,_,x,_,1,4,FV ), 0 , 0 , 0 , 3759, 285, 123, 0 ),
INST(Vcvtusi2sd , VexRvm , V(F20F00,7B,_,I,_,x,2,T1W), 0 , 0 , 0 , 3770, 308, 65 , 0 ),
INST(Vcvtusi2ss , VexRvm , V(F30F00,7B,_,I,_,x,2,T1W), 0 , 0 , 0 , 3781, 308, 65 , 0 ),
INST(Vcvtusi2sd , VexRvm_Wx , V(F20F00,7B,_,I,_,x,2,T1W), 0 , 0 , 0 , 3770, 308, 65 , 0 ),
INST(Vcvtusi2ss , VexRvm_Wx , V(F30F00,7B,_,I,_,x,2,T1W), 0 , 0 , 0 , 3781, 308, 65 , 0 ),
INST(Vdbpsadbw , VexRvmi_Lx , V(660F3A,42,_,x,_,0,4,FVM), 0 , 0 , 0 , 3792, 309, 122, 0 ),
INST(Vdivpd , VexRvm_Lx , V(660F00,5E,_,x,I,1,4,FV ), 0 , 0 , 0 , 3802, 246, 116, 19),
INST(Vdivps , VexRvm_Lx , V(000F00,5E,_,x,I,0,4,FV ), 0 , 0 , 0 , 3809, 247, 116, 19),

View File

@@ -1566,6 +1566,7 @@ struct X86Inst {
kEncodingVexMri_Lx, //!< VEX|EVEX [MRI] (propagates VEX|EVEX.L if YMM used).
kEncodingVexRm, //!< VEX|EVEX [RM].
kEncodingVexRm_ZDI, //!< VEX|EVEX [RM<ZDI>].
kEncodingVexRm_Wx, //!< VEX|EVEX [RM] (propagates VEX|EVEX.W if GPQ used).
kEncodingVexRm_Lx, //!< VEX|EVEX [RM] (propagates VEX|EVEX.L if YMM used).
kEncodingVexRm_VM, //!< VEX|EVEX [RM] (propagates VEX|EVEX.L, VSIB support).
kEncodingVexRm_T1_4X, //!< EVEX [RM] (used by NN instructions that use RM-T1_4X encoding).