joevt
5b3043c372
ppcfpopcodes: Remove redundant expression.
2025-04-24 06:33:22 -07:00
dingusdev
6e74146466
Don't forget to update CR1 in edge case of fdiv
2025-03-02 10:42:31 -07:00
dingusdev
b09dfa22ec
Fix regression in fdiv(s)(.)
2025-03-01 15:18:24 -07:00
joevt
78f62c8db8
ppcfpopcodes: Use macros for ppcstate.
...
Helps with abstraction.
2024-12-10 18:18:32 -07:00
joevt
a64b000459
ppcfpopcodes: Remove extra space.
2024-12-10 18:18:23 -07:00
joevt
49b8c4c39f
ppcfpopcodes: Fix Revert Tweak.
...
Fixes lfsu, lfsux, lfdu, lfdux so they correctly update rA as before.
2024-12-11 00:19:06 +01:00
dingusdev
47969d9d50
Reverting tweak
...
Restoring Virtus Player back to 'normal'
2024-12-07 20:49:00 -07:00
dingusdev
d22f926a8a
Tweak s*u(x) and l*u(x) instructions for 601
...
These are what the instructions are supposed to do according the 601 manual.
2024-12-06 07:07:36 -07:00
joevt
3fd422008e
ppcfpopcodes: Use enums instead of literals.
2024-12-03 06:51:15 -07:00
joevt
bce4c98475
ppcfpopcodes: Fix fdiv for MPC601.
2024-12-03 06:50:57 -07:00
dingusdev
35919802f3
Tweak fsel
...
Inspired by a similar fix toxieainc committed for Supermodel
2024-12-03 06:49:08 -07:00
Mihai Parparita
564c43c907
Remove ppc_cur_instruction global variable
...
Replace it wth an explicit opcode parameter that is passed around. That
is both slightly easier to reason about (to trace where it comes from)
and slightly faster, since it can be read from a register.
On my machine takes booting to "Welcome to Macintosh" being output in
a verbose boot of Mac OS X 10.2.8 from 31.8s to 30.6s (average of 5
runs, measured using deterministic mode and looking at when execution
reaches PC 0x90004a88).
2024-11-28 23:41:38 +01:00
Mihai Parparita
2d90aff408
ppc: Remove unncesessary function declarations
...
ppc_opcode16 and other functions are only needed in the implementation in
ppcexec.cpp, they don't need to be in the header.
fp_return_double and fp_return_uint64 have no uses (as of 2141a72b87 )
can can thus be removed altogether.
Similarly ppc_fpu_off has no uses (as of bb3f4e596e )
and can be removed.
2024-11-28 22:12:16 +01:00
joevt
00f38133e9
ppcfpopcodes: fnabs fix.
...
fnabs sets the sign bit regardless of nan status.
2024-11-28 07:25:14 -07:00
joevt
e231dc4dec
ppcfpopcodes: fabs fix.
...
fabs clears the sign bit regardless of nan status.
2024-11-28 07:25:06 -07:00
joevt
d41287c320
ppcfpopcodes: fneg fix.
...
fneg inverts the sign bit regardless of nan status.
2024-11-27 08:06:31 -07:00
dingusdev
6ca5b738d5
More FPU refactoring
...
Now down to 520 tests
2024-11-01 21:28:13 -07:00
dingusdev
f660efcd54
Continued FPU fixes
2024-10-30 07:46:44 -07:00
dingusdev
5f826d6a9d
More floating point fixes
...
Down to 752 failing tests
2024-10-27 12:51:16 -07:00
dingusdev
873f8632e4
More floating point fixes
...
Confirmed to partially fix Mac OS X installation screen errors
2024-10-26 16:16:52 -07:00
dingusdev
af7c22e7b3
Compile fixes, pt. 2
2024-10-17 19:50:15 -07:00
dingusdev
28ec650e4f
Compile fixes
2024-10-17 19:41:58 -07:00
dingusdev
329bcc68b1
Floating-point fix-ups
...
Largely to fix setting flags, but partially to fix the incorrect nan emulation
2024-10-17 08:00:27 -07:00
dingusdev
e2ad753f4a
More clean-up
2024-09-15 18:31:36 -07:00
dingusdev
9d9e826bb3
More code clean-up
2024-09-08 13:19:07 -07:00
Maxim Poliakovski
e1acf5d160
Rename ppc_effective_address to ea.
2024-08-19 21:11:22 +02:00
Mihai Parparita
e7d8e71297
ppc: make ppc_effective_address into a local
...
There's no reason for it to be a global, we always set it and use it
in instruction implementations, and we never read it directly.
Perhaps the compiler could optimize this away, but it's better to be
simpler (and also be easier to read).
2024-08-18 22:38:50 -07:00
dingusdev
9c95bc17fe
Implement VX and FEX updates for mtfsfi
2024-04-09 21:11:09 -07:00
dingusdev
a5a5410515
Continued fixing floating-point ops
2024-04-07 08:58:38 -07:00
dingusdev
40a4ca31b9
More minor floating-point clean-up
2024-04-07 07:23:30 -07:00
dingusdev
7f44ab2262
Minor fixes to floating point
2024-04-06 17:31:03 -07:00
dingusdev
123c927b1a
Another refactor for floating points
...
FCMPO and FCMPU passes the tests now*
2024-04-06 11:02:03 -07:00
joevt
19ba15f2f1
ppc: Separate enums for separate fields.
2024-03-26 06:44:26 -07:00
dingusdev
30802affd4
Continued fixes for tables
2024-03-24 17:24:36 -07:00
dingusdev
5631485465
Cleaning up templating
2024-03-24 14:06:07 -07:00
dingusdev
c281b27220
Attempted templating for interpreter
2024-03-24 12:21:19 -07:00
dingusdev
4ef3c792de
Refactoring interpreter, pt. 1
...
Reduce the number of global variables used by interpreter
2024-03-22 08:01:29 -07:00
joevt
e44676e491
ppcfpopcodes: Template mffs variants.
2024-03-07 06:45:46 -07:00
dingusdev
ebac8b92ba
Clean-up for loading instructions
...
Expanding the scope of the clean-up from lscbx to other loading/storing instructions.
2024-03-01 07:57:46 -07:00
joevt
0e3eaf724b
ppcfpopcodes: Fix stfs*, attempt #2 .
2024-02-20 02:04:02 +01:00
joevt
2a05ccbee1
ppcfpopcodes: Fix fres.
...
Don't convert to float until the end.
2024-02-20 02:03:41 +01:00
joevt
59bee01c0a
ppcfpopcodes: Fix fmsubs inf nan check.
...
There's probably still an issue with the inf_nan check
using reg_a for the first value instead of reg_a * reg_c.
This will probably need rewriting anyway.
2024-02-20 02:02:58 +01:00
joevt
4e4c8d71be
ppcfpopcodes: Fix fadds inf nan check.
2024-02-20 02:01:55 +01:00
joevt
c7ae31dfce
ppcfpopcodes: Spaces.
2024-02-20 02:01:37 +01:00
dingusdev
29f3ffd474
Continued clean-up, part 2
2024-02-18 07:06:27 -07:00
joevt
fd81d7b040
ppcfpopcodes: Fix load float.
...
Type casting an int to a float assigns the value of the int to the float which is not what is needed here.
2024-02-11 07:40:17 -07:00
joevt
01e45d656e
ppcfpopcodes: Update header date.
2024-02-10 14:47:46 -07:00
joevt
9199b1e520
ppcfpopcodes: Fix multiply add opcodes.
...
Use std::fma for all of them for max accuracy.
For single precision opcodes, convert only the result, not the operands.
2024-02-10 14:19:09 -07:00
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