Commit Graph

136 Commits

Author SHA1 Message Date
joevt 3be22dac99 ppcfpopcodes: No float cast for operand check. 2024-02-10 14:18:49 -07:00
joevt ff895aa8a4 ppcfpopcodes: Remove some globals.
ppc_result64_d and ppc_dblresult64_d don't need to be globals. The rest are unused.
2024-02-10 13:56:07 -07:00
joevt c9c4280e6e ppcfpopcodes: No float cast for operand check. 2024-02-10 13:02:49 -07:00
joevt dac9c1e52c ppcfpopcodes: Fix fctiw* round to nearest.
0.3 should not round up to 1.
2024-02-10 12:58:58 -07:00
joevt a7e6ab33a1 ppcfpopcodes: Make fctiw* results QNaN. 2024-02-10 12:58:29 -07:00
joevt 4fcb357e2f ppcfpopcodes: add 601 variant of mffs. 2024-02-10 12:51:48 -07:00
dingusdev 52dfc0cf93 Slightly faster typecasting 2024-01-31 08:06:33 -07:00
dingusdev f3a759c80d CPU code clean-up 2024-01-05 15:11:37 -07:00
Maxim Poliakovski 9b30dfb474 ppcfpopcodes: refactor fctiw/fctiwz emulation. 2024-01-03 01:27:21 +01:00
joevt 0100e67ebf ppcfpopcodes: Fix fctiw/fctiwz. 2024-01-03 01:07:53 +01:00
joevt bd419912b5 ppcfpopcodes: Fix stfs*.
It should try to convert its operand to a single precision
floating point number at least.
2024-01-02 21:53:03 +01:00
Maxim Poliakovski c25b027de4 ppcfpopcodes: fix mtfsf emulation. 2024-01-02 17:21:08 +01:00
Maxim Poliakovski 8595dd7d99 ppcfpopcodes: fix mtfsfi emulation. 2024-01-02 17:21:08 +01:00
joevt 61a90e2cfb ppcfpopcodes: Fix mcrfs. 2024-01-02 15:52:30 +01:00
joevt bae488fd97 ppcfpopcodes: Fix lfs* opcodes. 2023-12-22 13:11:13 +01:00
Maxim Poliakovski d24b5d21b8 CRx_bit enum stores masks for now. 2023-12-19 14:27:57 +01:00
Maxim Poliakovski 9dbfde1a4c Cleanup previous commit. 2023-12-19 13:15:10 +01:00
joevt 7f229b0fe8 ppcfpopcodes: Fix fcmpo/fcmpu.
It was always changing CR1 (starting at CR bit 4) instead of the CR selected by crfD.
Also, it was clearing all but the FL,FG,FE,FU bits of FPRF of FPSCR.
2023-12-19 13:15:10 +01:00
Maxim Poliakovski a1d8f8aa4e ppctests: fix test cases with SNaN/QNaN operands. 2023-11-30 17:44:46 +01:00
Maxim Poliakovski 8c3dfe94c7 ppcfpopcodes: infinities should set FPCC_FUNAN. 2023-11-30 12:53:10 +01:00
Maxim Poliakovski 680cab52f3 ppcfpopcodes: fix ppc_fadds. 2023-11-30 12:06:44 +01:00
Maxim Poliakovski 6abb07e61b Add rounding control for the host FPU. 2023-11-30 12:06:44 +01:00
Maxim Poliakovski b59c2be12d ppcfpopcodes: fix fpresult_update(). 2023-11-30 12:06:44 +01:00
Maxim Poliakovski b51670cb25 ppcfpopcodes: improve mffs, mtfsb0 and mtfsb1. 2023-11-30 12:06:44 +01:00
Maxim Poliakovski 487c6c2c7c ppcfpopcodes: remove dead code. 2023-11-30 12:06:44 +01:00
Maxim Poliakovski 47e0c23e64 Fix CR1 updates for floating-point instructions. 2023-11-28 16:31:51 +01:00
dingusdev dd454689e0 Fixes for condition reg move instructions 2023-11-28 07:06:04 -07:00
dingusdev 4753ba5361 Continued clean-up 2023-11-23 16:56:58 -07:00
dingusdev 7835aec034 Further CPU cleanup 2023-11-21 08:06:50 -07:00
dingusdev f4f035682c Fixed cfloat include 2023-11-19 20:34:40 -07:00
dingusdev d92ae6136a CPU code clean-up in progress
Happened to fix one case in the process.
2023-11-19 17:56:30 -07:00
dingusdev 074a760b6a FP compare fixes
This is the start of several fixes for the floating point emulation.
2023-11-13 07:30:31 -07:00
Mihai Parparita 35c86ad6bf Clean up #includes
Result of running IWYU (https://include-what-you-use.org/) and
applying most of the suggestions about unncessary includes and
forward declarations.

Was motivated by observing that <thread> was being included in
ppcopcodes.cpp even though it was unused (found while researching
the use of threads), but seems generally good to help with build
times and correctness.
2023-11-03 00:33:47 -07:00
Maxim Poliakovski b39e884d61 ppcfpopcodes: add missing std:: prefixes. 2022-02-17 00:20:18 +01:00
Maxim Poliakovski de65196c4f ppcfpopcodes: remove unused template parameters. 2022-02-17 00:11:14 +01:00
dingusdev c2a63bab09 FP Opcode Test Fixes 2021-10-30 16:43:13 -07:00
dingusdev 767735251b FP comp tests & various fixes 2021-10-24 14:00:35 -07:00
dingusdev a28ef677fd Fixing FP mul ops & tests 2021-10-23 13:05:20 -07:00
Maxim Poliakovski c0cd6eb38f Add missing licence headers, update license date. 2021-10-23 21:00:31 +02:00
dingusdev fb277945c2 Floating point test fixes 2021-10-19 07:16:15 -07:00
Maxim Poliakovski 331b93d4d6 Fix compilation with Clang 11. 2021-10-17 23:41:53 +02:00
dingusdev 061b061813 Floating point overhaul, part 4
Reworked the INF/NAN checks again - This time, only checking them when the result is calculated
2021-10-14 20:31:10 -07:00
dingusdev 5672a154cb Floating-point refactor, part 3
Condensed code to shorten enum names and remove casting.

Condensed mffs and partially fixed NAN checks for FADD(S).
2021-10-10 07:48:49 -07:00
dingusdev 2d65ed47fc Floating point overhaul, part 2
Further formatting fixes. Removed obsoleted separation definitions. Fixed rounding to nearest.
2021-10-09 19:42:25 -07:00
dingusdev e344b089b3 Floating point overhaul, part 1
Cleaned up formatting and reworked the INF/NAN checks
2021-10-09 15:08:53 -07:00
dingusdev d5960ca70b Fixed warnings for frsqrte and fsqrts 2021-10-06 18:59:31 -07:00
dingusdev ad6a2a9f17 Merge pull request #20 from dingusdev/floating-point
Merging floating point branch
2021-10-06 18:32:23 -07:00
Maxim Poliakovski 84e111290f Fix includes for loguru and SDL. 2021-09-16 00:46:38 +02:00
Maxim Poliakovski 089645e830 Implement SoftTLB for writes. 2021-08-22 17:34:23 +02:00
Maxim Poliakovski 22a15f4780 ppcfpopcodes: fix mtfsb0 & mtfsb1 emulation. 2021-07-09 01:07:42 +02:00