Stanislav Shwartsman
5e6955c5e7
Major rewrite of memory access methods to avoid massive code duplication and enable inlining of memory access methods
2015-01-25 20:55:10 +00:00
Stanislav Shwartsman
9219c2c20b
fixed format for debug printing x87 numbers
2014-11-05 18:29:35 +00:00
Stanislav Shwartsman
cb18f1e0a1
more use of the clearflagsOSZAPC
2014-10-22 18:24:33 +00:00
Stanislav Shwartsman
86bb2f97cc
fixed shoft128right macro is softfloat
2014-09-19 16:01:46 +00:00
Stanislav Shwartsman
29efae3be3
adjust (c) in several files
2014-08-31 20:05:25 +00:00
Stanislav Shwartsman
5eb781e45f
cleanup after cpu features interface rework
2014-08-31 19:22:41 +00:00
Stanislav Shwartsman
7e1a31af5e
fixed denormal arg handling in VGENTMANT*
2014-08-15 10:27:56 +00:00
Stanislav Shwartsman
7ae5a1c6b3
fixed NaN handling for VRANGE* instructions
2014-08-14 19:42:34 +00:00
Stanislav Shwartsman
128137b421
avx512 bugfixes
2014-08-13 18:34:42 +00:00
Stanislav Shwartsman
5e80c1f419
fixed vrange* abs comparisons in softfloat
2014-08-04 21:24:38 +00:00
Stanislav Shwartsman
63a4130311
changed polarity of is_min bit in range operation to better match vrange* instructions immediate encoding
2014-08-04 21:08:00 +00:00
Stanislav Shwartsman
524a73f48c
prepare softfloat functions for vrange* instructions implementation
2014-08-04 19:44:25 +00:00
Stanislav Shwartsman
23a8601ab8
fixed code duplication in floating point compare functions
2014-08-03 19:53:02 +00:00
Stanislav Shwartsman
caad957384
bugfix in softfloat uint64_to_float64 conversion
2014-07-18 20:30:48 +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
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
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
b572e80818
bugfix and code cleanup
2014-02-12 20:31:22 +00:00
Stanislav Shwartsman
9d97013067
bugfixes in softfloat unsigned conversions
2014-02-11 18:03:51 +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
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
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
ee8d500ec0
fix for float32/64_to_uint32 cvt functions in softfloat
2014-01-19 20:47:48 +00:00
Volker Ruppert
58019a1649
Renamed "ltdl.h" to "ltdl-bochs.h" to avoid conflicts with the include file
...
that is a part of the libtool package. Updated Makefile dependencies.
TODO: check if we can get rid of the ltdl*.* files (this would be possible if
the ltdl library is always available if libtool is present).
2013-12-17 19:57:40 +00:00
Stanislav Shwartsman
734d1c7af8
implemented VFIXUPIMM AVX-512 opcodes
2013-12-17 16:44:46 +00:00
Stanislav Shwartsman
d3107f9f25
remove statement with no effect
2013-12-15 19:58:15 +00:00
Stanislav Shwartsman
7f98bbaea0
fix for float32_to_uint32_round_to_zero
2013-12-15 19:45:23 +00:00
Stanislav Shwartsman
cbcf30e911
implement EVEX SAE (suppress all exceptions) contol, implement AVX512 INSTERT/EXTRACTPS opcodes
2013-12-14 12:45:06 +00:00
Stanislav Shwartsman
15756a31cd
implemented EVEX MOVD/MOVQ opcodes, fixes in softfloat
2013-12-13 12:05:47 +00:00
Stanislav Shwartsman
374b8f615a
softloat: implemented some more unsigned integer vs float conversions
2013-12-12 21:00:59 +00:00
Stanislav Shwartsman
258a60f3fa
Implemented AVX512 EXPAND/COMPRESS instructions
...
Fixed memory access size for AVX shift instructions with shift count in memory
Do not allow to encode with EVEX.b instructions which do not support implicit broadcast
softfloat: prepare float32/64 to uint32 conversion functions
2013-12-10 21:09:46 +00:00
Stanislav Shwartsman
9b22ba7edf
softfloat: added float to uint64 conversion operations (based on QEMU patch by Tom Musta)
2013-11-10 19:08:12 +00:00
Stanislav Shwartsman
3803ac7fbe
fixed evex override mscsr controls
2013-09-19 21:38:25 +00:00
Stanislav Shwartsman
0fd4e3450c
update (c) for few files
2013-09-05 18:40:14 +00:00
Stanislav Shwartsman
701d88388e
fixed FCS/FDS deprecation
2013-08-22 20:21:36 +00:00
Stanislav Shwartsman
574b69c81e
fixed MSDEV warnings
2012-11-27 15:40:45 +00:00
Volker Ruppert
c2560a8d44
- fpu directory is now a subdirectory in 'cpu'
2012-09-12 21:08:40 +00:00