summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src/3rdparty.lua
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2024-05-27 20:40:42 -0400
committer arbee <rb6502@users.noreply.github.com>2024-05-27 20:40:42 -0400
commit6957c469983fe32c9725eb3787020b6cedd36b75 (patch)
tree7b12ba5d3d6b2a08ec63ae9c72badad521339beb /scripts/src/3rdparty.lua
parentcd25f2de50864c2897ca7f5aa604696c87a49807 (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-xscripts/src/3rdparty.lua13
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",
}