diff options
author | 2024-05-27 20:40:42 -0400 | |
---|---|---|
committer | 2024-05-27 20:40:42 -0400 | |
commit | 6957c469983fe32c9725eb3787020b6cedd36b75 (patch) | |
tree | 7b12ba5d3d6b2a08ec63ae9c72badad521339beb /scripts/src/3rdparty.lua | |
parent | cd25f2de50864c2897ca7f5aa604696c87a49807 (diff) |
cpu/m68000: Updated 680x0 FPU to Softfloat 3 from 2. (MT5411 and MT8793). [R. Belmont]
- Update to Softloat 3 from 2
- FREM and FMOD now generate the quotient bits in FPSR, required by Apple's SANE to do sin/cos/tan properly.
- FMOVE of a float to a Dx integer register generates the exception status bits, fixing square roots in SANE
- Rewrote how FMOVEM instructions are decoded and executed, fixing issues including skipping too few or too many
opcode bytes and causing serious weird behavior.
- FPU instructions all now have more realistic cycle timings for a 68881.
- All FPU instructions now generate exception bits in FPSR.
3rdparty/softfloat3: Updates [R. Belmont]
- Softfloat3 was always being built for a big-endian host, causing incorrect math on LE x64 and AArch64 machines.
- Fixed up Softfloat3 to build properly as part of MAME and up-ported the Bochs extensions. In latest Bochs, they
were only partially up-ported and Softfloat3 had been hacked up to be more like 2; here they're fixed to work
with stock Softfloat3.
Diffstat (limited to 'scripts/src/3rdparty.lua')
-rwxr-xr-x | scripts/src/3rdparty.lua | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/scripts/src/3rdparty.lua b/scripts/src/3rdparty.lua index 7fd1213f9de..9a86eed9fc8 100755 --- a/scripts/src/3rdparty.lua +++ b/scripts/src/3rdparty.lua @@ -285,6 +285,7 @@ project "softfloat3" MAME_DIR .. "3rdparty/softfloat3/source", MAME_DIR .. "3rdparty/softfloat3/source/include", MAME_DIR .. "3rdparty/softfloat3/source/8086", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext" } configuration { "gmake or ninja" } @@ -313,6 +314,11 @@ end "SOFTFLOAT_FAST_INT64" } +if _OPTIONS["BIGENDIAN"]~="1" then + defines { + "LITTLEENDIAN=1" + } +end files { MAME_DIR .. "3rdparty/softfloat3/source/s_eq128.c", MAME_DIR .. "3rdparty/softfloat3/source/s_le128.c", @@ -615,6 +621,13 @@ end MAME_DIR .. "3rdparty/softfloat3/source/f128M_eq_signaling.c", MAME_DIR .. "3rdparty/softfloat3/source/f128M_le_quiet.c", MAME_DIR .. "3rdparty/softfloat3/source/f128M_lt_quiet.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/f2xm1.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/fpatan.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/fprem.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/fsincos.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/fyl2x.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/poly.c", + MAME_DIR .. "3rdparty/softfloat3/bochs_ext/extF80_scale.c", } |