From 2f295e547643cacfa773490f758518a59c91ddfd Mon Sep 17 00:00:00 2001 From: Alexis Engelke Date: Sun, 10 Jan 2021 12:15:49 +0100 Subject: [PATCH] instrs: Exact register size for scalar VEX ops --- instrs.txt | 90 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/instrs.txt b/instrs.txt index feb8a3b..95d1596 100644 --- a/instrs.txt +++ b/instrs.txt @@ -890,8 +890,8 @@ VEX.NP.0f28 RM XMM XMM - - VMOVAPS VEX.66.0f28 RM XMM XMM - - VMOVAPD VEX.NP.0f29 MR XMM XMM - - VMOVAPS VEX.66.0f29 MR XMM XMM - - VMOVAPD -VEX.F3.LIG.0f2a RVM XMM XMM GP - VCVTSI2SS -VEX.F2.LIG.0f2a RVM XMM XMM GP - VCVTSI2SD +VEX.F3.LIG.0f2a RVM XMM128 XMM128 GP - VCVTSI2SS +VEX.F2.LIG.0f2a RVM XMM128 XMM128 GP - VCVTSI2SD VEX.NP.0f2b/m MR MEMV XMM - - VMOVNTPS VEX.66.0f2b/m MR MEMV XMM - - VMOVNTPD VEX.F3.LIG.0f2c RM GP XMM32 - - VCVTTSS2SI @@ -906,12 +906,12 @@ VEX.NP.0f50/r RM GP XMM - - VMOVMSKPS DEF64 VEX.66.0f50/r RM GP XMM - - VMOVMSKPD DEF64 VEX.NP.0f51 RVM XMM XMM XMM - VSQRTPS VEX.66.0f51 RVM XMM XMM XMM - VSQRTPD -VEX.F3.LIG.0f51 RVM XMM XMM XMM32 - VSQRTSS -VEX.F2.LIG.0f51 RVM XMM XMM XMM64 - VSQRTSD +VEX.F3.LIG.0f51 RVM XMM128 XMM128 XMM32 - VSQRTSS +VEX.F2.LIG.0f51 RVM XMM128 XMM128 XMM64 - VSQRTSD VEX.NP.0f52 RVM XMM XMM XMM - VRSQRTPS -VEX.F3.LIG.0f52 RVM XMM XMM XMM32 - VRSQRTSS +VEX.F3.LIG.0f52 RVM XMM128 XMM128 XMM32 - VRSQRTSS VEX.NP.0f53 RVM XMM XMM XMM - VRCPPS -VEX.F3.LIG.0f53 RVM XMM XMM XMM32 - VRCPSS +VEX.F3.LIG.0f53 RVM XMM128 XMM128 XMM32 - VRCPSS VEX.NP.0f54 RVM XMM XMM XMM - VANDPS VEX.66.0f54 RVM XMM XMM XMM - VANDPD VEX.NP.0f55 RVM XMM XMM XMM - VANDNPS @@ -922,36 +922,36 @@ VEX.NP.0f57 RVM XMM XMM XMM - VXORPS VEX.66.0f57 RVM XMM XMM XMM - VXORPD VEX.NP.0f58 RVM XMM XMM XMM - VADDPS VEX.66.0f58 RVM XMM XMM XMM - VADDPD -VEX.F3.LIG.0f58 RVM XMM XMM XMM32 - VADDSS -VEX.F2.LIG.0f58 RVM XMM XMM XMM64 - VADDSD +VEX.F3.LIG.0f58 RVM XMM128 XMM128 XMM32 - VADDSS +VEX.F2.LIG.0f58 RVM XMM128 XMM128 XMM64 - VADDSD VEX.NP.0f59 RVM XMM XMM XMM - VMULPS VEX.66.0f59 RVM XMM XMM XMM - VMULPD -VEX.F3.LIG.0f59 RVM XMM XMM XMM32 - VMULSS -VEX.F2.LIG.0f59 RVM XMM XMM XMM64 - VMULSD +VEX.F3.LIG.0f59 RVM XMM128 XMM128 XMM32 - VMULSS +VEX.F2.LIG.0f59 RVM XMM128 XMM128 XMM64 - VMULSD VEX.NP.L0.0f5a RM XMM XMM64 - - VCVTPS2PD VEX.NP.L1.0f5a RM XMM XMM128 - - VCVTPS2PD VEX.66.0f5a RM XMM128 XMM - - VCVTPD2PS -VEX.F3.LIG.0f5a RVM XMM XMM XMM32 - VCVTSS2SD -VEX.F2.LIG.0f5a RVM XMM XMM XMM64 - VCVTSD2SS +VEX.F3.LIG.0f5a RVM XMM128 XMM128 XMM32 - VCVTSS2SD +VEX.F2.LIG.0f5a RVM XMM128 XMM128 XMM64 - VCVTSD2SS VEX.NP.0f5b RM XMM XMM - - VCVTDQ2PS VEX.66.0f5b RM XMM XMM - - VCVTPS2DQ VEX.F3.0f5b RM XMM XMM - - VCVTTPS2DQ VEX.NP.0f5c RVM XMM XMM XMM - VSUBPS VEX.66.0f5c RVM XMM XMM XMM - VSUBPD -VEX.F3.LIG.0f5c RVM XMM XMM XMM32 - VSUBSS -VEX.F2.LIG.0f5c RVM XMM XMM XMM64 - VSUBSD +VEX.F3.LIG.0f5c RVM XMM128 XMM128 XMM32 - VSUBSS +VEX.F2.LIG.0f5c RVM XMM128 XMM128 XMM64 - VSUBSD VEX.NP.0f5d RVM XMM XMM XMM - VMINPS VEX.66.0f5d RVM XMM XMM XMM - VMINPD -VEX.F3.LIG.0f5d RVM XMM XMM XMM32 - VMINSS -VEX.F2.LIG.0f5d RVM XMM XMM XMM64 - VMINSD +VEX.F3.LIG.0f5d RVM XMM128 XMM128 XMM32 - VMINSS +VEX.F2.LIG.0f5d RVM XMM128 XMM128 XMM64 - VMINSD VEX.NP.0f5e RVM XMM XMM XMM - VDIVPS VEX.66.0f5e RVM XMM XMM XMM - VDIVPD -VEX.F3.LIG.0f5e RVM XMM XMM XMM32 - VDIVSS -VEX.F2.LIG.0f5e RVM XMM XMM XMM64 - VDIVSD +VEX.F3.LIG.0f5e RVM XMM128 XMM128 XMM32 - VDIVSS +VEX.F2.LIG.0f5e RVM XMM128 XMM128 XMM64 - VDIVSD VEX.NP.0f5f RVM XMM XMM XMM - VMAXPS VEX.66.0f5f RVM XMM XMM XMM - VMAXPD -VEX.F3.LIG.0f5f RVM XMM XMM XMM32 - VMAXSS -VEX.F2.LIG.0f5f RVM XMM XMM XMM64 - VMAXSD +VEX.F3.LIG.0f5f RVM XMM128 XMM128 XMM32 - VMAXSS +VEX.F2.LIG.0f5f RVM XMM128 XMM128 XMM64 - VMAXSD VEX.66.0f60 RVM XMM XMM XMM - VPUNPCKLBW VEX.66.0f61 RVM XMM XMM XMM - VPUNPCKLWD VEX.66.0f62 RVM XMM XMM XMM - VPUNPCKLDQ @@ -1003,6 +1003,7 @@ VEX.NP.L0.0fae/2m M GP32 - - - VLDMXCSR VEX.NP.L0.0fae/3m M GP32 - - - VSTMXCSR VEX.NP.0fc2 RVMI XMM XMM XMM IMM8 VCMPPS VEX.66.0fc2 RVMI XMM XMM XMM IMM8 VCMPPD +# TODO: XMM is actually XMM128 VEX.F3.LIG.0fc2 RVMI XMM XMM XMM32 IMM8 VCMPSS VEX.F2.LIG.0fc2 RVMI XMM XMM XMM64 IMM8 VCMPSD VEX.66.WIG.L0.0fc4 RVMI XMM XMM GP16 IMM8 VPINSRW ENC_NOSZ @@ -1150,60 +1151,60 @@ VEX.66.W0.0f3897 RVM XMM XMM XMM - VFMSUBADD132PS VEX.66.W1.0f3897 RVM XMM XMM XMM - VFMSUBADD132PD VEX.66.W0.0f3898 RVM XMM XMM XMM - VFMADD132PS VEX.66.W1.0f3898 RVM XMM XMM XMM - VFMADD132PD -VEX.66.W0.LIG.0f3899 RVM XMM XMM XMM32 - VFMADD132SS -VEX.66.W1.LIG.0f3899 RVM XMM XMM XMM64 - VFMADD132SD +VEX.66.W0.LIG.0f3899 RVM XMM128 XMM128 XMM32 - VFMADD132SS +VEX.66.W1.LIG.0f3899 RVM XMM128 XMM128 XMM64 - VFMADD132SD VEX.66.W0.0f389a RVM XMM XMM XMM - VFMSUB132PS VEX.66.W1.0f389a RVM XMM XMM XMM - VFMSUB132PD -VEX.66.W0.LIG.0f389b RVM XMM XMM XMM32 - VFMSUB132SS -VEX.66.W1.LIG.0f389b RVM XMM XMM XMM64 - VFMSUB132SD +VEX.66.W0.LIG.0f389b RVM XMM128 XMM128 XMM32 - VFMSUB132SS +VEX.66.W1.LIG.0f389b RVM XMM128 XMM128 XMM64 - VFMSUB132SD VEX.66.W0.0f389c RVM XMM XMM XMM - VFNMADD132PS VEX.66.W1.0f389c RVM XMM XMM XMM - VFNMADD132PD -VEX.66.W0.LIG.0f389d RVM XMM XMM XMM32 - VFNMADD132SS -VEX.66.W1.LIG.0f389d RVM XMM XMM XMM64 - VFNMADD132SD +VEX.66.W0.LIG.0f389d RVM XMM128 XMM128 XMM32 - VFNMADD132SS +VEX.66.W1.LIG.0f389d RVM XMM128 XMM128 XMM64 - VFNMADD132SD VEX.66.W0.0f389e RVM XMM XMM XMM - VFNMSUB132PS VEX.66.W1.0f389e RVM XMM XMM XMM - VFNMSUB132PD -VEX.66.W0.LIG.0f389f RVM XMM XMM XMM32 - VFNMSUB132SS -VEX.66.W1.LIG.0f389f RVM XMM XMM XMM64 - VFNMSUB132SD +VEX.66.W0.LIG.0f389f RVM XMM128 XMM128 XMM32 - VFNMSUB132SS +VEX.66.W1.LIG.0f389f RVM XMM128 XMM128 XMM64 - VFNMSUB132SD VEX.66.W0.0f38a6 RVM XMM XMM XMM - VFMADDSUB213PS VEX.66.W1.0f38a6 RVM XMM XMM XMM - VFMADDSUB213PD VEX.66.W0.0f38a7 RVM XMM XMM XMM - VFMSUBADD213PS VEX.66.W1.0f38a7 RVM XMM XMM XMM - VFMSUBADD213PD VEX.66.W0.0f38a8 RVM XMM XMM XMM - VFMADD213PS VEX.66.W1.0f38a8 RVM XMM XMM XMM - VFMADD213PD -VEX.66.W0.LIG.0f38a9 RVM XMM XMM XMM32 - VFMADD213SS -VEX.66.W1.LIG.0f38a9 RVM XMM XMM XMM64 - VFMADD213SD +VEX.66.W0.LIG.0f38a9 RVM XMM128 XMM128 XMM32 - VFMADD213SS +VEX.66.W1.LIG.0f38a9 RVM XMM128 XMM128 XMM64 - VFMADD213SD VEX.66.W0.0f38aa RVM XMM XMM XMM - VFMSUB213PS VEX.66.W1.0f38aa RVM XMM XMM XMM - VFMSUB213PD -VEX.66.W0.LIG.0f38ab RVM XMM XMM XMM32 - VFMSUB213SS -VEX.66.W1.LIG.0f38ab RVM XMM XMM XMM64 - VFMSUB213SD +VEX.66.W0.LIG.0f38ab RVM XMM128 XMM128 XMM32 - VFMSUB213SS +VEX.66.W1.LIG.0f38ab RVM XMM128 XMM128 XMM64 - VFMSUB213SD VEX.66.W0.0f38ac RVM XMM XMM XMM - VFNMADD213PS VEX.66.W1.0f38ac RVM XMM XMM XMM - VFNMADD213PD -VEX.66.W0.LIG.0f38ad RVM XMM XMM XMM32 - VFNMADD213SS -VEX.66.W1.LIG.0f38ad RVM XMM XMM XMM64 - VFNMADD213SD +VEX.66.W0.LIG.0f38ad RVM XMM128 XMM128 XMM32 - VFNMADD213SS +VEX.66.W1.LIG.0f38ad RVM XMM128 XMM128 XMM64 - VFNMADD213SD VEX.66.W0.0f38ae RVM XMM XMM XMM - VFNMSUB213PS VEX.66.W1.0f38ae RVM XMM XMM XMM - VFNMSUB213PD -VEX.66.W0.LIG.0f38af RVM XMM XMM XMM32 - VFNMSUB213SS -VEX.66.W1.LIG.0f38af RVM XMM XMM XMM64 - VFNMSUB213SD +VEX.66.W0.LIG.0f38af RVM XMM128 XMM128 XMM32 - VFNMSUB213SS +VEX.66.W1.LIG.0f38af RVM XMM128 XMM128 XMM64 - VFNMSUB213SD VEX.66.W0.0f38b6 RVM XMM XMM XMM - VFMADDSUB231PS VEX.66.W1.0f38b6 RVM XMM XMM XMM - VFMADDSUB231PD VEX.66.W0.0f38b7 RVM XMM XMM XMM - VFMSUBADD231PS VEX.66.W1.0f38b7 RVM XMM XMM XMM - VFMSUBADD231PD VEX.66.W0.0f38b8 RVM XMM XMM XMM - VFMADD231PS VEX.66.W1.0f38b8 RVM XMM XMM XMM - VFMADD231PD -VEX.66.W0.LIG.0f38b9 RVM XMM XMM XMM32 - VFMADD231SS -VEX.66.W1.LIG.0f38b9 RVM XMM XMM XMM64 - VFMADD231SD +VEX.66.W0.LIG.0f38b9 RVM XMM128 XMM128 XMM32 - VFMADD231SS +VEX.66.W1.LIG.0f38b9 RVM XMM128 XMM128 XMM64 - VFMADD231SD VEX.66.W0.0f38ba RVM XMM XMM XMM - VFMSUB231PS VEX.66.W1.0f38ba RVM XMM XMM XMM - VFMSUB231PD -VEX.66.W0.LIG.0f38bb RVM XMM XMM XMM32 - VFMSUB231SS -VEX.66.W1.LIG.0f38bb RVM XMM XMM XMM64 - VFMSUB231SD +VEX.66.W0.LIG.0f38bb RVM XMM128 XMM128 XMM32 - VFMSUB231SS +VEX.66.W1.LIG.0f38bb RVM XMM128 XMM128 XMM64 - VFMSUB231SD VEX.66.W0.0f38bc RVM XMM XMM XMM - VFNMADD231PS VEX.66.W1.0f38bc RVM XMM XMM XMM - VFNMADD231PD -VEX.66.W0.LIG.0f38bd RVM XMM XMM XMM32 - VFNMADD231SS -VEX.66.W1.LIG.0f38bd RVM XMM XMM XMM64 - VFNMADD231SD +VEX.66.W0.LIG.0f38bd RVM XMM128 XMM128 XMM32 - VFNMADD231SS +VEX.66.W1.LIG.0f38bd RVM XMM128 XMM128 XMM64 - VFNMADD231SD VEX.66.W0.0f38be RVM XMM XMM XMM - VFNMSUB231PS VEX.66.W1.0f38be RVM XMM XMM XMM - VFNMSUB231PD -VEX.66.W0.LIG.0f38bf RVM XMM XMM XMM32 - VFNMSUB231SS -VEX.66.W1.LIG.0f38bf RVM XMM XMM XMM64 - VFNMSUB231SD +VEX.66.W0.LIG.0f38bf RVM XMM128 XMM128 XMM32 - VFNMSUB231SS +VEX.66.W1.LIG.0f38bf RVM XMM128 XMM128 XMM64 - VFNMSUB231SD VEX.66.W1.L1.0f3a00 VMI XMM XMM IMM8 - VPERMQ VEX.66.W1.L1.0f3a01 VMI XMM XMM IMM8 - VPERMPD VEX.66.W0.0f3a02 RVMI XMM XMM XMM IMM8 VPBLENDD @@ -1212,6 +1213,7 @@ VEX.66.W0.0f3a05 RMI XMM XMM IMM8 - VPERMILPD VEX.66.W0.L1.0f3a06 RVMI XMM XMM XMM IMM8 VPERM2F128 VEX.66.0f3a08 RVMI XMM XMM XMM IMM8 VROUNDPS VEX.66.0f3a09 RVMI XMM XMM XMM IMM8 VROUNDPD +# TODO: XMM is actually XMM128 VEX.66.LIG.0f3a0a RVMI XMM XMM XMM32 IMM8 VROUNDSS VEX.66.LIG.0f3a0b RVMI XMM XMM XMM64 IMM8 VROUNDSD VEX.66.0f3a0c RVMI XMM XMM XMM IMM8 VBLENDPS