mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 20:44:37 +03:00
Fixed #182
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user