Commit Graph

3917 Commits

Author SHA1 Message Date
Stanislav Shwartsman
8f7df199b9
convert floatx80_round_to_int to softfloat3e (#287)
Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2024-03-16 19:08:44 +02:00
Stanislav Shwartsman
9fa35f4596
convert to softfloat3e several floatx80 uses (#278) 2024-03-15 22:53:48 +02:00
Volker Ruppert
a3ff473642 Modified softfloat3e Makefile to fix compüilation with MSVC nmake.
Since GNU make and MSVC nmake need special rules for compiling this module that
causes failure with the other 'make' variant, the configure script needs to
comment out incompatible rules. Using symbols GNU_MAKE_ONLY and NMAKE_ONLY to
enable only one of the rulesets only.
Since one of the MSVC nmake rules uses curly brackets the shortcut script
.conf.win64-vcpp needs to be modified to exclude cpu/softfloat3e/Makefile
from removal of these usually unwanted characters.
2024-03-15 18:55:18 +01:00
Vort
c2891e5ff6
Fix Windows 11 boot, #280 (partial revert of b24bf1d) (#285) 2024-03-15 18:02:07 +02:00
Volker Ruppert
57ea1bad99 Fixed compilation outside of the source tree.
To implement this, softfloat3e needs a Makefile created by configure script
to set up the real SOURCE_DIR.
TODO: Fix compilation with MSVC nmake (Makefile line 278 fails).
2024-03-11 21:46:12 +01:00
Vort
4b07de86c7
Fix cross compilation (#279) 2024-03-11 10:09:51 +02:00
Stanislav Shwartsman
5a7224fc9f remove SOFTFLOAT_ROUND_ODD rounding mode which not needed for x86 emu 2024-03-10 20:36:38 +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
Stanislav Shwartsman
3ff8fd5cd7 merge FCOMPP and FUCOMPP to same method to reduce code duplication 2024-02-20 07:22:58 +02:00
Shwartsman
7b5fb0b749 AVX-512 VREDUCE* should never raise #Denormal, #Overflow or #Underflow 2024-02-12 21:15:43 -06:00
Shwartsman
e7ef67f89b bugfix for float64_getmant 2024-02-10 13:27:16 +01:00
Stanislav Shwartsman
37341c8838 fixed massive code duplication 2024-02-02 22:36:56 +02:00
Stanislav Shwartsman
f3537f282a Legacy form of XRSTOR loads the MXCSR register from memory whenever the
RFBM[1](SSE) or RFBM[2](AVX) is set, regardless of the values of XSTATE_BV[1] and XSTATE_BV[2]
2024-02-02 08:43:36 +02:00
Shwartsman
88fb948088 updates to paging code for debugability and code duplication reduction 2024-02-01 15:15:26 +02:00
Shwartsman
3ed8639bfa some style notation to avoid errors and make code cleaner to read 2024-01-30 20:08:42 +02:00
Song Ziming
9b5c43821e
Init LDR whenever x2APIC mode is enabled (#250)
According to Intel SDM vol3 11.12.10.2 (Deriving Logical x2APIC ID from
the Local x2APIC ID), "The LDR initialization occurs whenever the x2APIC
mode is enabled".
2024-01-30 08:47:22 +02:00
Stanislav Shwartsman
e54048c163 XSAVEC/XSAVEC: don't allow 'compaction' of SSE state
this bug also prevented win10 from booting
2024-01-29 22:11:08 +02:00
Stanislav Shwartsman
cf40e63b87 XRSTOR: correct 'format' for case compaction is not enabled 2024-01-29 19:40:21 +02:00
Stanislav Shwartsman
7aa8489b1a fixed severe XRSTOR emulation issue, prevented boot of Win10 2024-01-29 18:40:19 +02:00
Stanislav Shwartsman
6554f9b7b6 a little code optimization, no impact on correctness 2024-01-29 15:28:25 +02:00
Stanislav Shwartsman
0cfa33733e correct clear_busy for shadow stack in case of IRET - should use old SSP 2024-01-29 15:08:54 +02:00
Stanislav Shwartsman
b373890b05 fix supervisor shadow stack EPT violation detection 2024-01-28 22:03:57 +02:00
Stanislav Shwartsman
2f0338fe0c fixed bug in MOVDIR64B - source and destination were swapped 2024-01-28 21:38:57 +02:00
Stanislav Shwartsman
41202ebb68 bugfix for supervisor shadow stack and VMX 2024-01-28 20:57:43 +02:00
Shwartsman
4de017762a fixed permission check for CET
added SSP save/restore is SMM code
fixed CET_S state in_use calculation
2024-01-28 17:25:21 +02:00
Stanislav Shwartsman
58663d3c68 fix bug intoduced in c4689f284c 2024-01-27 23:05:38 +02:00
Stanislav Shwartsman
c4689f284c fix spurious read of potentially non-existing SECONDARY_VMEXIT_CTRLS 2024-01-27 18:38:14 +02:00
Stanislav Shwartsman
b685996081 fixed compilation 2024-01-27 18:30:22 +02:00
Stanislav Shwartsman
ae61538847 create classes for Vmexec controls for robustness 2024-01-27 18:04:00 +02:00
Stanislav Shwartsman
035fb1edaa create class for Pin-Based VMEXEC controls for robustness
create class for Vmentry controls for robustness
create class for Vmexit controls for robustness
2024-01-27 15:14:29 +02:00
Stanislav Shwartsman
38b1bbf4ff Implemented VMX 'Shadow Stack Prematurely Busy' and secondary VMEXIT controls 2024-01-27 13:34:51 +02:00
Stanislav Shwartsman
e14b126198 fixed rounding to float16 (found during AVX512_FP16 development)
used Softfloat3 code as reference
2024-01-26 22:53:39 +02:00
Stanislav Shwartsman
093d4428ec read less bits for mask with DOUBLE precision elements 2024-01-26 20:36:29 +02:00
Stanislav Shwartsman
ae0c9df317 compile stand alone disasm tool even if BX_DEBUGGER is configured in 2024-01-22 22:13:28 +02:00
Shwartsman
0141f2767c fixed compilation for i386 config and with no SVM 2024-01-21 22:03:53 +02:00
Shwartsman
8abfde13d7 complete support of SVM Nested Walk in dbg including 'page' command 2024-01-21 17:44:17 +02:00
Shwartsman
4eae91f1ca addressing issue Possible Undefined Behavior in NEG_EdR() and NEG_EdM() #227 2024-01-20 08:19:43 +02:00
Shwartsman
dd9aaa7325 Fixed OF flag for ADOX instruction
The OF flag defintion is different from OF of other instructions
Instead it is defined as:
The instruction sets the OF flag with the **carry** generated by the unsigned addition of the operands.
2024-01-19 20:30:47 +02:00
Shwartsman
9d5bfa9064 UINTR: uitt_addr[3:0] are reserved and must be cleared before reading UITT entry 2024-01-17 14:52:49 +02:00
Stanislav Shwartsman
0f677ccfc6 change comments 2024-01-16 21:23:45 +02:00
Stanislav Shwartsman
f8d1050a3f
Implemented SVM VM_CR_MSR and INIT redirection feature (#220)
Save and restore SVM MSRs
2024-01-16 07:42:28 +02:00
Shwartsman
d965a16a7d cosmetic updates for SVM code 2024-01-14 20:30:04 +02:00
Shwartsman
e4deec2aca cleanups and code updates before thinking of INIT redirection implementation for AMD SVM 2024-01-14 12:55:43 +02:00
Shwartsman
61a35063c5 remove all ifdefs from features.h
I'd like features bitmasks to be independent on Bochs compilation flags
so let all flags to be 'exists' even if corresponding feature is not compiled in.
2024-01-14 12:51:41 +02:00
Stanislav Shwartsman
144367c2d4 Enable ia32_spec_ctrl virtualization for SPR 2024-01-13 22:05:45 +02:00
Stanislav Shwartsman
b2cf7860dc VMX: Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension
fixed few typos in error messages
2024-01-13 21:58:23 +02:00
Shwartsman
63539d32dc fixed complation for .conf.nothing 2024-01-13 19:38:04 +02:00
Stanislav Shwartsman
0c1027e243 extract paging exception checking logic to separate function and solve a lot of code duplication 2024-01-13 17:47:42 +02:00
Stanislav Shwartsman
d037138e4e extract Protection Keys handling code to separate function 2024-01-13 15:57:13 +02:00
Stanislav Shwartsman
adb50a9210 implemented "advanced VM-exit information for EPT violations"
comes in complementary with VMX MBE control which was already in the model
2024-01-13 15:22:58 +02:00