mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
VFPU: Compute log2, sin/cos and asin without correction tables, too
They use the same quadratic interpolator as rcp and friends, with three twists. sin indexes the quarter wave from the top, and asin and sin work in a per-segment exponent whose 4-ulp truncation also applies to results in a lower binade. log2 truncates exponent + log2(1.m) toward zero to 22 significant bits, and where that step is coarser than 2^-24 the datapath drops coefficient bits to match; that also covers the region just below 1.0 that needed a special case. vfpu_sincos now reduces the angle once. With every table gone, so are the asset folder, the loader, InitVFPU and the fallbacks for tables that failed to load. All seven functions are bit-exact with the table-based code over every 32-bit input. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
dade876474
commit
d6b3d590eb
28 files changed
+312
-710
No files matched your search
@@ -522,7 +522,6 @@ EXEC_AND_LIB_FILES := \
|
||||
$(SRC)/Core/MIPS/MIPSStackWalk.cpp \
|
||||
$(SRC)/Core/MIPS/MIPSTables.cpp \
|
||||
$(SRC)/Core/MIPS/MIPSVFPUUtils.cpp.arm \
|
||||
$(SRC)/Core/MIPS/MIPSVFPUFallbacks.cpp.arm \
|
||||
$(SRC)/Core/MIPS/MIPSCodeUtils.cpp.arm \
|
||||
$(SRC)/Core/MIPS/MIPSDebugInterface.cpp \
|
||||
$(SRC)/Core/MIPS/MIPSTracer.cpp \
|
||||
|
||||
Reference in new issue
Block a user