Commit Graph

33 Commits

Author SHA1 Message Date
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