Commit Graph

106 Commits

Author SHA1 Message Date
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
f605c484dd ecowx and eciwx added 2021-10-05 17:40:09 -07:00
Maxim Poliakovski
22827642e4 ppcmmu: implement 601-style BAT. 2021-09-27 12:37:35 +02:00
Maxim Poliakovski
089645e830 Implement SoftTLB for writes. 2021-08-22 17:34:23 +02:00
Maxim Poliakovski
6f9ee10de5 Rework PPC CPU profiler. 2021-04-29 02:26:17 +02:00
dingusdev
ce70b0f096 Removed obseleted function declarations 2021-02-03 20:01:02 -07:00
dingusdev
7f0acaf3d3 Load and store instruction clean-up 2021-01-25 21:03:17 -07:00
dingusdev
60f84ef0d9 Refactoring interpreter value storage 2021-01-24 11:59:16 -07:00
Maxim Poliakovski
3189876d41 ppcfpopcodes: fix fmul emulation. 2021-01-24 04:53:19 +01:00
Maxim Poliakovski
bb3f4e596e ppcexec: fix subopcode 59 dispatching. 2021-01-23 03:12:39 +01:00
Maxim Poliakovski
d8f7588693 debugger: some fixes and improvements. 2021-01-12 15:17:51 +01:00
dingusdev
2bac606365 Added to Heathrow
Plus some debugging stuff to help figure out what register 0x34 is responsible for.
2021-01-08 15:29:43 -07:00
dingusdev
79e3d398ba mcrf implemented 2021-01-07 20:38:32 -07:00
Maxim Poliakovski
dbbaf13a78 ppcopcodes: fix cntlzw to compile properly with Clang.
Enable USE_GCC_BUILTINS by default.
2020-12-18 18:33:00 +01:00
Maxim Poliakovski
6c6247b94f Clean up program exceptions. 2020-11-30 20:59:36 +01:00
Maxim Poliakovski
acfa09af65 Illegal opcodes raise program exception. 2020-11-29 23:54:10 +01:00
dingusdev
0c202b0c2d Merging the 68k debugger from another branch 2020-11-26 20:00:08 -07:00
dingusdev
1fe9ffe3e5 Further refactoring to clean up the interpreter 2020-10-17 21:46:38 -07:00
dingusdev
dc58386237 Started re-refactoring opcode retrieval 2020-10-17 14:30:37 -07:00
Maxim Poliakovski
b9dcfef551 debugger: debugging commands for 68k code. 2020-07-16 14:26:34 +02:00
Maxim Poliakovski
6b74e358dc WIP: basic 68k debugging environment. 2020-07-15 02:19:05 +02:00
Maxim Poliakovski
39a643aff6 Merge branch 'machines'
Also disable SDL for now because it produces build errors.
2020-06-03 18:21:51 +02:00
Maxim Poliakovski
d21fdb25d1 Remove unused variable grab_branch. 2020-06-01 23:12:18 +02:00
Waqar Ahmed
0ab9380be3 clang-format everything 2020-05-12 23:55:45 +05:00
Maxim Poliakovski
822f6cafd2 Create machine factory.
It manages various hardware configurations referred to as machines.
2020-03-13 23:09:36 +01:00
dingusdev
4ceed27ccf Simplified prog_counter back to pc 2020-03-05 07:48:10 -07:00
dingusdev
e31f7873f5 Fixed redunant variable names for PPC emulation. 2020-03-04 21:29:04 -07:00
dingusdev
354409812e Updating files with proper licensing header 2020-02-28 09:04:28 -07:00
Maxim Poliakovski
461d859e73 ppcmmu: add debug memory reading function.
This function saves and restores the MMU state
so no invalid user input can break CPU execution.
2020-02-23 16:41:58 +01:00
Maxim Poliakovski
403c19ca39 Improve the command line debugger.
Add next command. Make the debugger somewhat foolproof.
2020-02-23 15:24:55 +01:00
Maxim Poliakovski
d0f1a34c02 Fix integer multiplications.
Add a couple of tests for verifying XER[OV] updating code
for mullwo[.].
2020-02-10 18:36:28 +01:00
Maxim Poliakovski
d4a2f400b5 Fix divw[.] and divwo[.] emulation.
Also adds a couple of tests for undocumented
CPU behaviour. Remove superfluous "sidiv".
2020-02-10 16:07:11 +01:00
Maxim Poliakovski
b057a8373d Simplify SUBF and remove not_this. 2020-02-09 08:05:20 +01:00
Maxim Poliakovski
32e64fc1b2 Make XER update code inline & private. 2020-02-09 08:01:26 +01:00
Maxim Poliakovski
03439b2a49 Placeholders for SUBFEO[.], SUBFMEO[.] and SUBFZEO[.]. 2020-02-04 00:58:04 +01:00
dingusdev
ddae141c22 Overflow fixes in progress 2020-01-31 16:54:37 -07:00
dingusdev
df4a963558 Quick build fix 2020-01-29 21:13:36 -07:00
dingusdev
aa20d64b48 SPRs now use symbolic names 2020-01-27 20:39:23 -07:00
Maxim Poliakovski
2953eaa538 Restructure main.cpp, remove obsolete code. 2020-01-28 02:20:43 +01:00
Maxim Poliakovski
117b3f1aa8 Move CPU initialization to ppcexec.cpp. 2020-01-28 01:24:12 +01:00
Maxim Poliakovski
7ae87e39c1 Refactor usage of the memory access functions.
Memory access function have better names now.
Global variable return_value has been removed.
lhbrx emulation has been fixed.
2020-01-27 01:36:52 +01:00
Maxim Poliakovski
0c3223454a ppcemu.h: remove initializers from typedef. 2020-01-26 20:37:29 +01:00
dingusdev
7c6d875ec8 Refactored floating point emulation
Refactored for better 64-bit value loading and storing. I also added missing opcodes.
2020-01-25 19:30:55 -07:00
Maxim Poliakovski
e1793b6305 Fix compilation warnings from previous commits. 2020-01-22 21:45:46 +01:00
dingusdev
6a083869e1 Started a massive FP fix-up 2020-01-21 19:25:50 -07:00
dingusdev
6dd8d55577 Profiler + Missing Instruction Added 2020-01-14 20:50:01 -07:00
Maxim Poliakovski
720b35aa26 Move endian swapping code to endianswap.h.
Remove superfluous endian swapping wrappers.
2020-01-12 22:51:37 +01:00
dingusdev
ea7c34f0d9 Merge branch 'master' of https://github.com/dingusdev/dingusppc 2020-01-11 19:44:46 -07:00
dingusdev
c5ac0a2420 FPU Fixing + Preparing for more debugging 2020-01-11 18:43:47 -07:00
Maxim Poliakovski
2d5e436ad4 Refactor PPC exception handling, part 1. 2020-01-12 02:35:54 +01:00
dingusdev
b5074e4ce1 Started work on NVRAM
Tried to also fix some issued with MSVC
2020-01-05 09:52:46 -07:00
Maxim Poliakovski
e76ef61f53 ppcexec: pagewise MMU translation for code. 2020-01-04 02:07:36 +01:00
Maxim Poliakovski
74882c8082 ppcemu: remove unused global variables. 2020-01-03 21:18:07 +01:00
Maxim Poliakovski
01dffb84f3 Move all PPC code execution to ppcexec.cpp. 2019-12-28 02:49:58 +01:00
Maxim Poliakovski
2d8150a201 Move opcode decoding tables to ppcexec.cpp. 2019-12-28 01:58:51 +01:00
Maxim Poliakovski
db89c23bf0 Move ppcemumain.h to /cpu/ppc/ppcemu.h. 2019-12-27 20:10:36 +01:00