Stanislav Shwartsman
|
9613e4b402
|
implementation of AVX-512 compressed displacement feature which is required for AVX-512 emu correctness (first step). todo: fix rest of EVEX opcodes
|
2014-02-10 21:12:08 +00:00 |
|
Stanislav Shwartsman
|
37330682ad
|
remove code duplication, prepare for 512-bit evrsion of cvtps2ph
|
2014-02-08 19:18:17 +00:00 |
|
Stanislav Shwartsman
|
550e6bd307
|
moved (c) to year 2014 for few files
|
2014-02-06 17:06:25 +00:00 |
|
Stanislav Shwartsman
|
aea9ae1976
|
added definitions (CPUID bit, VMX fields and VMXEXIT reasons, etc) from recently published Intel SDM rev049
|
2014-02-06 17:05:20 +00:00 |
|
Stanislav Shwartsman
|
7a6727da34
|
implemented AVX-512 version of VCVTPH2PS
|
2014-02-04 20:32:54 +00:00 |
|
Stanislav Shwartsman
|
f047fef2a6
|
fixed gcc warning
|
2014-02-03 21:12:24 +00:00 |
|
Stanislav Shwartsman
|
ea390abd3c
|
bugfixes in new GETMANT* instrs
|
2014-02-03 21:10:44 +00:00 |
|
Stanislav Shwartsman
|
b33f93b9f3
|
Implemented VGETMANT* AVX-512 instructions
Now only missed AVX-512 opcodes now are:
512.66.0F38.W0 13 VCVTPH2PS
512.66.0F3A.W0 1D VCVTPS2PH
512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
512.66.0F38.W0 4C VRCP14PS
512.66.0F38.W1 4C VRCP14PD
NDS.LIG.66.0F38.W0 4D VRCP14SS
NDS.LIG.66.0F38.W1 4D VRCP14SD
512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD
512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
|
2014-02-03 20:40:46 +00:00 |
|
Stanislav Shwartsman
|
ac06ee46ae
|
Implemented VPMOVSX*/VPMOVZX* AVX-512 instructions
Now only missed AVX-512 opcodes now are:
512.66.0F38.W0 13 VCVTPH2PS
512.66.0F3A.W0 1D VCVTPS2PH
512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
512.66.0F38.W0 4C VRCP14PS
512.66.0F38.W1 4C VRCP14PD
NDS.LIG.66.0F38.W0 4D VRCP14SS
NDS.LIG.66.0F38.W1 4D VRCP14SD
512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD
512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
512.66.0F3A.W0 26 VGETMANTPS
512.66.0F3A.W1 26 VGETMANTPD
NDS.LIG.66.0F3A.W0 27 VGETMANTSS
NDS.LIG.66.0F3A.W1 27 VGETMANTSD
|
2014-02-02 19:56:08 +00:00 |
|
Stanislav Shwartsman
|
55e1d53a48
|
implement DPPS/DPPD ops using existing primitives; added some missing defs
|
2014-02-02 18:57:25 +00:00 |
|
Stanislav Shwartsman
|
ca1b496efc
|
small optimization
|
2014-02-01 19:23:41 +00:00 |
|
Stanislav Shwartsman
|
ef130ca145
|
convert some defines to enum
|
2014-01-31 19:40:34 +00:00 |
|
Stanislav Shwartsman
|
6eb1c7d255
|
fixed swapped sources of VEXTRACTF* with mask
|
2014-01-30 21:46:25 +00:00 |
|
Stanislav Shwartsman
|
ccb003b0e1
|
fixed swapped sources of VEXTRACTF*
|
2014-01-30 20:48:41 +00:00 |
|
Stanislav Shwartsman
|
41e13703a3
|
Implemented VEXTRACT* AVX-512 instructions
Now only missed AVX-512 opcodes now are:
512.66.0F38.W0 13 VCVTPH2PS
512.66.0F3A.W0 1D VCVTPS2PH
512.66.0F38.WIG 21 VPMOVSXBD
512.66.0F38.WIG 22 VPMOVSXBQ
512.66.0F38.WIG 23 VPMOVSXWD
512.66.0F38.WIG 24 VPMOVSXWQ
512.66.0F38.W0 25 VPMOVSXDQ
512.66.0F38.WIG 31 VPMOVSZBD
512.66.0F38.WIG 32 VPMOVSZBQ
512.66.0F38.WIG 33 VPMOVSZWD
512.66.0F38.WIG 34 VPMOVSZWQ
512.66.0F38.W0 35 VPMOVSzDQ
512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
512.66.0F38.W0 4C VRCP14PS
512.66.0F38.W1 4C VRCP14PD
NDS.LIG.66.0F38.W0 4D VRCP14SS
NDS.LIG.66.0F38.W1 4D VRCP14SD
512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD
512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
512.66.0F3A.W0 26 VGETMANTPS
512.66.0F3A.W1 26 VGETMANTPD
NDS.LIG.66.0F3A.W0 27 VGETMANTSS
NDS.LIG.66.0F3A.W1 27 VGETMANTSD
|
2014-01-30 20:31:08 +00:00 |
|
Stanislav Shwartsman
|
d990911cea
|
bugfix
|
2014-01-28 19:52:51 +00:00 |
|
Stanislav Shwartsman
|
63e99da4af
|
Implemented VALIGN* AVX-512 instructions
Now only missed AVX-512 opcodes now are:
512.66.0F38.W0 13 VCVTPH2PS
512.66.0F3A.W0 1D VCVTPS2PH
512.66.0F38.WIG 21 VPMOVSXBD
512.66.0F38.WIG 22 VPMOVSXBQ
512.66.0F38.WIG 23 VPMOVSXWD
512.66.0F38.WIG 24 VPMOVSXWQ
512.66.0F38.W0 25 VPMOVSXDQ
512.66.0F38.WIG 31 VPMOVSZBD
512.66.0F38.WIG 32 VPMOVSZBQ
512.66.0F38.WIG 33 VPMOVSZWD
512.66.0F38.WIG 34 VPMOVSZWQ
512.66.0F38.W0 35 VPMOVSzDQ
512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
512.66.0F38.W0 4C VRCP14PS
512.66.0F38.W1 4C VRCP14PD
NDS.LIG.66.0F38.W0 4D VRCP14SS
NDS.LIG.66.0F38.W1 4D VRCP14SD
512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD
512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
512.66.0F3A.W0 19 VEXTRACTF32x4
512.66.0F3A.W1 1B VEXTRACTF64x4
512.66.0F3A.W0 39 VEXTRACTI32x4
512.66.0F3A.W1 3B VEXTRACTI64x4
512.66.0F3A.W0 26 VGETMANTPS
512.66.0F3A.W1 26 VGETMANTPD
NDS.LIG.66.0F3A.W0 27 VGETMANTSS
NDS.LIG.66.0F3A.W1 27 VGETMANTSD
|
2014-01-28 19:36:46 +00:00 |
|
Stanislav Shwartsman
|
36ba25847f
|
Implemented last missed AVX-512 unsigned convert instructions
The only missed AVX-512 opcodes now are:
512.66.0F38.W0 13 VCVTPH2PS
512.66.0F3A.W0 1D VCVTPS2PH
512.66.0F38.WIG 21 VPMOVSXBD
512.66.0F38.WIG 22 VPMOVSXBQ
512.66.0F38.WIG 23 VPMOVSXWD
512.66.0F38.WIG 24 VPMOVSXWQ
512.66.0F38.W0 25 VPMOVSXDQ
512.66.0F38.WIG 31 VPMOVSZBD
512.66.0F38.WIG 32 VPMOVSZBQ
512.66.0F38.WIG 33 VPMOVSZWD
512.66.0F38.WIG 34 VPMOVSZWQ
512.66.0F38.W0 35 VPMOVSzDQ
512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
512.66.0F38.W0 4C VRCP14PS
512.66.0F38.W1 4C VRCP14PD
NDS.LIG.66.0F38.W0 4D VRCP14SS
NDS.LIG.66.0F38.W1 4D VRCP14SD
512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD
NDS.512.66.0F3A.W0 03 VALIGND
NDS.512.66.0F3A.W1 03 VALIGNQ
512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
512.66.0F3A.W0 19 VEXTRACTF32x4
512.66.0F3A.W1 1B VEXTRACTF64x4
512.66.0F3A.W0 39 VEXTRACTI32x4
512.66.0F3A.W1 3B VEXTRACTI64x4
512.66.0F3A.W0 26 VGETMANTPS
512.66.0F3A.W1 26 VGETMANTPD
NDS.LIG.66.0F3A.W0 27 VGETMANTSS
NDS.LIG.66.0F3A.W1 27 VGETMANTSD
|
2014-01-28 12:57:38 +00:00 |
|
Stanislav Shwartsman
|
15979a52b6
|
implemented avx-512 getexp instructions
|
2014-01-27 21:25:07 +00:00 |
|
Stanislav Shwartsman
|
3798ed66b5
|
new function for disasm. todo: support it independently of CPU
|
2014-01-26 20:01:50 +00:00 |
|
Stanislav Shwartsman
|
2379590dde
|
do not compile AVX objects if AVX support is not enabled in configure
|
2014-01-26 19:20:44 +00:00 |
|
Stanislav Shwartsman
|
4d4d194c16
|
implemented missed vpmul* avx-512 opcodes
|
2014-01-24 20:04:36 +00:00 |
|
Stanislav Shwartsman
|
8d6c6a4545
|
added one more missed perm* avx-512 opcode
|
2014-01-24 19:42:08 +00:00 |
|
Stanislav Shwartsman
|
7beb85b850
|
implemented vperm* avx-512 opcodes
|
2014-01-24 19:23:19 +00:00 |
|
Stanislav Shwartsman
|
fd8ddd8069
|
downgrade VMEXIT message to BX_DEBUG
|
2014-01-24 18:58:57 +00:00 |
|
Stanislav Shwartsman
|
407681c98a
|
implemented some more avx-512 opcodes
|
2014-01-24 12:02:47 +00:00 |
|
Stanislav Shwartsman
|
fa60a654c8
|
bugfix for avx-512
|
2014-01-23 19:59:39 +00:00 |
|
Stanislav Shwartsman
|
79c11cacbe
|
fixed compilation err without avx
|
2014-01-23 17:08:30 +00:00 |
|
Stanislav Shwartsman
|
33889cd02e
|
implemented avx-512 vpermq opcode
|
2014-01-22 21:21:32 +00:00 |
|
Stanislav Shwartsman
|
99f7107dd1
|
code reorg
|
2014-01-22 19:59:13 +00:00 |
|
Stanislav Shwartsman
|
a21f03e69b
|
implemented few more avx-512 cvt opcodes
|
2014-01-21 21:00:40 +00:00 |
|
Stanislav Shwartsman
|
d591c1dd34
|
implemented few more avx-512 cvt opcodes
|
2014-01-21 20:31:10 +00:00 |
|
Stanislav Shwartsman
|
9e90d9d9ae
|
bugfix in cvtpd2udq opcode decoding with kmask
|
2014-01-20 22:07:35 +00:00 |
|
Stanislav Shwartsman
|
2ed0e91dfe
|
fixed writing half vector for avx-512
|
2014-01-20 21:52:48 +00:00 |
|
Stanislav Shwartsman
|
4705ed6bdd
|
more fixes for uint conversions based on latest QEMU patches by Tom Musta
|
2014-01-20 21:22:29 +00:00 |
|
Stanislav Shwartsman
|
649075527e
|
fixes for convert to unsigned functions
|
2014-01-20 20:50:28 +00:00 |
|
Stanislav Shwartsman
|
cc112767a2
|
bugfixes
|
2014-01-19 21:19:41 +00:00 |
|
Stanislav Shwartsman
|
ee8d500ec0
|
fix for float32/64_to_uint32 cvt functions in softfloat
|
2014-01-19 20:47:48 +00:00 |
|
Stanislav Shwartsman
|
086fefeb29
|
cleanups
|
2014-01-19 20:30:40 +00:00 |
|
Stanislav Shwartsman
|
a63280a6d1
|
implemented few more AVX-512 cvt opcodes
|
2014-01-19 20:23:14 +00:00 |
|
Stanislav Shwartsman
|
ba52890538
|
implemented few more AVX-512 floating point convert instructions
|
2014-01-18 20:10:05 +00:00 |
|
Stanislav Shwartsman
|
a1e397b5a2
|
fixed decoding bug in avx-512 instruction tables
|
2014-01-12 13:37:29 +00:00 |
|
Stanislav Shwartsman
|
ce8c520c09
|
fixed operands for new instructions
|
2014-01-12 13:20:41 +00:00 |
|
Stanislav Shwartsman
|
5cdcd7bef7
|
Implemented AVX-512 VPMOV* down-conversion stores
|
2014-01-12 13:08:16 +00:00 |
|
Stanislav Shwartsman
|
72c710947c
|
code cleanups
|
2014-01-12 09:31:22 +00:00 |
|
Stanislav Shwartsman
|
af29c8bd60
|
infrastructure change for avx-512: before going to more new instructions modelling
|
2014-01-10 19:40:38 +00:00 |
|
Stanislav Shwartsman
|
58470763fa
|
implement few more avx-512 opcodes
|
2013-12-31 23:51:25 +00:00 |
|
Stanislav Shwartsman
|
350e3544ae
|
fixed #UD condition for multi-byte prefix opcodes VEX/EVEX/XOP
|
2013-12-28 12:57:21 +00:00 |
|
Stanislav Shwartsman
|
e902a83a60
|
fixed segfault in AVX emulation
|
2013-12-22 21:16:10 +00:00 |
|
Stanislav Shwartsman
|
ada455c4b9
|
just coding style
|
2013-12-22 20:48:26 +00:00 |
|