89 Commits

Author SHA1 Message Date
Stanislav Shwartsman
2047d6eb7a remove fpu/softfloat16.h 2024-04-25 12:36:27 +03:00
Stanislav Shwartsman
1255a0c585 remove fpu/softfloat.h, reduce include deprendencies, fix warnings
regenerate dep lists in all Makefile.in
2024-04-25 11:50:48 +03:00
Stanislav Shwartsman
a1be887ad8 more transition to new softfloat code 2024-04-24 21:35:55 +03:00
Stanislav Shwartsman
744d0b4fc0 more transition to new softfloat code 2024-04-24 20:57:23 +03:00
Stanislav Shwartsman
39237c3eb5 fix compilation - remove deleted include reference from Makefile 2024-04-24 09:49:11 +03:00
Stanislav Shwartsman
3e4a966a2f remove floatx80_mul with float128 argument (use float128 instead)
this let's to remove completely softfloat-round-pack.cc and softfloatx80.cc
2024-04-23 21:34:29 +03:00
Stanislav Shwartsman
738dfa1a12 move more stuff to softfloat3e style 2024-04-13 19:04:33 +03:00
Stanislav Shwartsman
7c1a23037a convert FEXTRACT to softfloat3e style
remove more softfloat2 code which is not in use anymore
2024-03-30 19:35:08 +03:00
Stanislav Shwartsman
9fa35f4596
convert to softfloat3e several floatx80 uses (#278) 2024-03-15 22:53:48 +02:00
Stanislav Shwartsman
d350c008e2
add softfloat3e library to Bochs to replace old softfloat2 (to get fp… (#259)
…16 support)

with a lot of my updates, cleanups and extensions for x86 features like
denormal and/or undeflow/overflow handling

---------

Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2024-03-10 17:10:55 +02:00
Shwartsman
7b5fb0b749 AVX-512 VREDUCE* should never raise #Denormal, #Overflow or #Underflow 2024-02-12 21:15:43 -06:00
Stanislav Shwartsman
37341c8838 fixed massive code duplication 2024-02-02 22:36:56 +02:00
Shwartsman
6f4f217a08 implemented AMX_FP16 and aMX_COMPLEX, fixes for daz handling in AVX_NE_CONVERT FB16
updated CHANGES
2024-01-12 12:38:31 +02:00
Stanislav Shwartsman
167942816a regen Makefile.in dependencies 2024-01-12 01:10:47 +02:00
Shwartsman
9e36971e0f fixed TILELOADD/TILESTORED and TDPBF16PS 2024-01-11 21:04:14 +02:00
Shwartsman
8dca1e0e07 correct implementation of AMX TDPBxxD instructions 2024-01-11 20:20:33 +02:00
Stanislav Shwartsman
3a02e85599
AMX support (#212) 2024-01-10 20:13:25 +02:00
Shwartsman
b93b9ad881 fixed comments in bf16.h 2023-12-29 22:45:59 +02:00
Shwartsman
5b61b51498 more optimal version for VDPBF16PS
avoid constly softfloat calls when masked
2023-12-25 16:26:28 +02:00
Shwartsman
ddff78a16c style and disasm updates, no functional impact 2023-12-25 14:57:05 +02:00
Shwartsman
7c9bab8182 handle getexp methods though templates 2023-12-25 08:07:07 +02:00
Stanislav Shwartsman
ef30a12afb avoid accidential zero of the mask, due to Bit64u computation overflow (1 << 64) == 1 2023-12-24 22:37:02 +02:00
Stanislav Shwartsman
eb6d4f5fc8 use simpler method to write XMM register while clearing AVX upper part 2023-12-24 14:45:04 +02:00
Shwartsman
19dbd7314b convert more instructions to template 2023-12-23 22:01:13 +02:00
Shwartsman
8e76c9b6bb move many SSE/AVX/AVX512 methods to template functions 2023-12-23 21:00:51 +02:00
Shwartsman
120ad141b3 reduce code duplication by merging equivalent methods 2023-12-23 19:12:03 +02:00
Shwartsman
3c857f2ad1 make APIC from static object to dynamic so many cc files won't need to be dependent on apic.h 2023-11-28 11:08:42 +02:00
Stanislav Shwartsman
0730ff4c4a added a comment for future: some memory operations must be done atomically
these are include LOCKed RMW of course and also a lot of others
in the future it will be very hard to find all the cases that must be atomic so better to start marking them already now
try to mark every RMW case for atomicity requirements
no code changes, only comments
2023-11-17 23:18:43 +02:00
Stanislav Shwartsman
8594972389 final resolution for issue #2 : address VEXPAND* and VPSHUFBITQMB instructions 2023-11-09 19:15:32 +02:00
Stanislav Shwartsman
18deee022f
make CPU to use C++ template for implementation of CPU methods (#115)
this allow to remove a lot of code from CPU common methods
2023-10-30 06:57:16 +02:00
Stanislav Shwartsman
96b887a9bb
code refactor towards fixing issue #2 (#112)
next step new methods for VEXPANDPS_MASK_VpsWpsR and
VEXPANDPD_MASK_VpdWpdR with mask and memory operand will be introduced
with fault suppression support
legacy load methods aren't good because the loads here actually read
POPCNT(mask) elements from memory src
2023-10-28 22:21:42 +03:00
Shwartsman
5103d97ece mask use of CUT_OPMASK_TO macro instead of magic arithmetic 2023-10-19 16:59:32 +03:00
Shwartsman
63286528b5 take axv512 masted read/write helpers to separate file 2023-10-19 16:52:55 +03:00
Shwartsman
133144ae41 update include dependencies for CPU, MEMORY and BX_DBG folders 2023-10-16 19:42:44 +03:00
Stanislav Shwartsman
ffa64461ab
implementation of AVX-NE-CONVERT ISA (#89)
Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2023-10-14 14:55:12 +03:00
Stanislav Shwartsman
3234e9b88e
implemented AVX VNNI INT16 ISA extension (#87)
Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2023-10-10 20:22:07 +03:00
Stanislav Shwartsman
aa84121ede changes (c) date 2022-10-02 23:26:57 +03:00
Stanislav Shwartsman
c47b5ff5cb extract IFMA52 code to separate file 2022-10-02 23:24:00 +03:00
Stanislav Shwartsman
a56144833a add support for AVX encoded VNNI INT8 extensions 2022-10-02 23:00:46 +03:00
Stanislav Shwartsman
1e4f1624c8 remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
Stanislav Shwartsman
fb09790846 dos2unix to all files 2022-07-30 14:31:16 +03:00
Stanislav Shwartsman
1455788fe4 remove cpudb.h from some Makefile dependencies. it should be only in cpu/init.cc and config.cc 2021-07-25 18:21:41 +00:00
Stanislav Shwartsman
8285b6b51b regen Makefile include dependencies for CPU and internal debugger 2021-01-30 20:17:15 +00:00
Stanislav Shwartsman
6d6ff0e06b regen Makefile include dependencies for CPU, MEMORY and internal debugger 2021-01-30 19:44:41 +00:00
Stanislav Shwartsman
0b83259417 regen include dep lists for cpu and memory - need to regen for all others 2021-01-30 18:57:45 +00:00
Stanislav Shwartsman
1bf18b8aae ! CPUID: Added TigerLake CPU definition (features CET and CLWB support)
- CPU code refactor, remove uses of bx_bool datatype and use C++ classic bool instead.
  This enable better compiler optimizations and reduce binary size
2021-01-30 08:35:35 +00:00
Stanislav Shwartsman
c6050a99d1 implemented AVX encoded VNNI instructions published in recent SDM - not tested yet 2020-10-03 09:23:28 +00:00
Stanislav Shwartsman
dd3849b9e0 extract Bit128 arithmetic to separate wide_int.cc/wide_int.h compiled independently of long mode emulation 2020-05-19 16:01:23 +00:00
Stanislav Shwartsman
fc1dbe68bc update dependencies in Mafefile.in 2019-12-21 21:42:35 +00:00
Stanislav Shwartsman
1a0237e9af make order in AVX512 broadcast handlers, extract them into separate file 2019-12-21 20:07:03 +00:00