Stanislav Shwartsman
0f39ce58be
fixed compilation warnings and errors with MSVCPP
2014-07-09 16:08:16 +00:00
Stanislav Shwartsman
6ee7f48985
bugfix for VMX_VM_EXEC_CTRL1_EXTERNAL_INTERRUPT_VMEXIT control handling
2014-07-08 19:15:54 +00:00
Stanislav Shwartsman
816f5cc2d7
fixed massive code duplication
2014-07-03 06:40:42 +00:00
Stanislav Shwartsman
1e46de78ad
add proper alignment of XMM/YMM/ZMM registers within CPU class
2014-06-25 19:12:14 +00:00
Stanislav Shwartsman
8e750e27c8
following many users requests - allow sandy bridge configuration even when AVX is not compiled in, just disable AVX in it
2014-06-06 18:29:28 +00:00
Stanislav Shwartsman
0b2364501d
fixed compilation err when 3dnow is ON
2014-06-01 10:46:17 +00:00
Stanislav Shwartsman
d19727d75b
updated AMD feature names in cpuid.h (taken from latest AMD software dev manuals)
2014-05-05 20:11:14 +00:00
Stanislav Shwartsman
2fe0aaa472
added configure option for trace linking optimization and mention it in CHANGES
2014-05-01 18:30:23 +00:00
Stanislav Shwartsman
8fbf673295
fixed compilation errors with FPU off
2014-04-29 18:49:38 +00:00
Stanislav Shwartsman
be6d2668c7
fixed comments in the code
2014-04-24 18:02:40 +00:00
Stanislav Shwartsman
be368f54d1
remove redundant type conversions
2014-03-23 20:01:58 +00:00
Stanislav Shwartsman
c079702a4d
Finish softfloat implementation of float32/64_scalef. This checkin completes AVX-512 implementation.
2014-03-21 20:18:03 +00:00
Stanislav Shwartsman
1e7b6ff2cd
check if XMM reg is clear using dedicated function
2014-03-17 20:50:59 +00:00
Stanislav Shwartsman
ab6230a9a8
Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
2014-03-17 20:29:44 +00:00
Stanislav Shwartsman
d8fa7aa28a
implemented INIT optimization for XSAVEOPT instruction
2014-03-16 21:56:30 +00:00
Stanislav Shwartsman
72b715e5f0
fixed XSAVE to match spec, implemented first look into XINUSE. TODO: use XINUSE to optimize XSAVEOPT as well
2014-03-16 21:03:13 +00:00
Stanislav Shwartsman
97d2965d58
continue xsave code rework
2014-03-16 20:37:47 +00:00
Stanislav Shwartsman
9d8d895b52
cpuid fixes
2014-03-15 20:19:30 +00:00
Stanislav Shwartsman
378e7e16eb
fixed major code duplication in CPUDB classes
2014-03-15 19:24:42 +00:00
Stanislav Shwartsman
d18cabc7a9
add new CPUDB files
2014-03-15 18:31:33 +00:00
Stanislav Shwartsman
c87605722b
CPUDB: added AMD Trinity to the database
2014-03-15 18:30:13 +00:00
Stanislav Shwartsman
d10fa93d89
fixed to VSCALEF instruction + one more step in the implementation in the softfloat
2014-03-14 20:26:50 +00:00
Stanislav Shwartsman
08f5383831
fix for x87
2014-03-09 22:06:13 +00:00
Stanislav Shwartsman
02e19de346
Added shape of implementation for last missing VSCALEF* AVX-512 instructons.
...
The softfloat implementation is still missing (only corner cases are supported).
Extend softfloat floatNN_class methods to distinguish between SNaN and QNaN.
2014-03-09 21:42:11 +00:00
Stanislav Shwartsman
211208dc30
zero masking is not allowed for all forms of vsib, including gather
2014-03-08 20:27:10 +00:00
Stanislav Shwartsman
48ab171b79
enumerate possible fetchdecode failures leading to #UD decoding. TODO: add this info to BX_IA_ERROR as immediate
2014-03-08 20:09:00 +00:00
Stanislav Shwartsman
069498eef6
zero masking is not allowed for mem destination instructions
2014-03-08 19:49:35 +00:00
Stanislav Shwartsman
bfe6ecabb8
xsave sse state using same interface as all other advanced states
2014-03-04 21:06:29 +00:00
Stanislav Shwartsman
39bb48cd69
added missing includes
2014-03-02 19:18:05 +00:00
Stanislav Shwartsman
c544e82c43
fixed code duplication in BEXTR implementations
2014-03-02 19:16:13 +00:00
Stanislav Shwartsman
bc5af269b7
Fix some more code duplication with sclaar_arith.h
...
Do not clear IA32_FEATURE_CTRL MSR on soft reset (will clear the VMX lock bit)
On real HW XSAVE/XRSTOR which is not 4-byte aligned cause #AC(0) intead of #GP(0) when alignment check is enabled
2014-03-02 16:40:13 +00:00
Stanislav Shwartsman
402b2c01c9
Implemented AVX-512 conflict detection instructions (VPCONFLICT, VPLZCNT, VPBROADCASTMB2Q, VPBROADCASTMW2D)
...
Only missed AVX-512 opcodes are:
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
2014-02-27 21:12:02 +00:00
Stanislav Shwartsman
695d245116
Implemented VRNDSCALE AVX-512 instructions.
...
Now only missed AVX-512 opcodes now are:
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
2014-02-27 18:27:57 +00:00
Stanislav Shwartsman
f282fc4e75
use names instead of magic numbers
2014-02-26 20:49:23 +00:00
Stanislav Shwartsman
2f906d844c
fix vmexit reason descriptions
2014-02-25 19:56:10 +00:00
Stanislav Shwartsman
01af7f5346
Implemented VRSQRT14 AVX-512 instructions & optimized legacy SSE RSQRTSS/PS instructions handling
...
//
// The table lookup was reverse-engineered from VRSQRT14SS instruction implementation available
// in the Intel Software Development Emulator rev6.20 (released February 13, 2014)
// http://software.intel.com/en-us/articles/intel-software-development-emulator/
//
// TODO: find better way to emulate these instructions, I am sure the HW doesn't have 64K entry lookup tables
Now only missed AVX-512 opcodes now are:
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.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-25 18:57:49 +00:00
Stanislav Shwartsman
47b56a2174
regen dependencies in Makefile
2014-02-24 21:36:11 +00:00
Stanislav Shwartsman
38bcc164a7
Implemented VRCP14 AVX-512 instructions.
...
//
// The table lookup was reverse-engineered from VRCP14SS instruction implementation available
// in the Intel Software Development Emulator rev6.20 (released February 13, 2014)
// http://software.intel.com/en-us/articles/intel-software-development-emulator/
//
// TODO: find better way to emulate these instructions, I am sure the HW doesn't have 64K entry lookup table
Now only missed AVX-512 opcodes now are:
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 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-24 21:31:52 +00:00
Stanislav Shwartsman
648221d419
rewritten xsave/xrestor for more modular functionality. todo: replace walk through state using simple for loop
2014-02-22 21:00:47 +00:00
Stanislav Shwartsman
0a1b4f1c7e
added template for missing avx-512 instructions
2014-02-17 20:21:58 +00:00
Stanislav Shwartsman
5ab2bb363c
fix of compilation err
2014-02-17 16:19:43 +00:00
Stanislav Shwartsman
7775483d5e
Implemented VCVTPS2PH AVX-512 instruction
...
Now only missed AVX-512 opcodes now are:
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-15 19:21:08 +00:00
Stanislav Shwartsman
b572e80818
bugfix and code cleanup
2014-02-12 20:31:22 +00:00
Stanislav Shwartsman
09414f2f4b
implemented access to opmask AVX-512 registers from debugger, fixed enhdbg buffer overflow with EVEX enabled
2014-02-11 20:51:18 +00:00
Stanislav Shwartsman
41f926628c
fixed bug in LOAD_BROADCAST_MASK_Half_VectorD method
2014-02-11 20:13:42 +00:00
Stanislav Shwartsman
9d97013067
bugfixes in softfloat unsigned conversions
2014-02-11 18:03:51 +00:00
Stanislav Shwartsman
18e9f1e70e
bugfix
2014-02-11 17:47:52 +00:00
Stanislav Shwartsman
b510cf794b
complete compressed displ feature support, bugfixes in AVX-512 code
2014-02-11 16:10:31 +00:00
Stanislav Shwartsman
ca4d2b5e6f
cover some more opcodes with compressed displ
2014-02-10 21:49:41 +00:00
Stanislav Shwartsman
d257bf3e7d
cover some more opcodes with compressed displ
2014-02-10 21:34:26 +00:00