Commit Graph

79 Commits

Author SHA1 Message Date
Maxim Poliakovski
2a79c9a63c ppcmmu.c: restructure and clean up. 2021-09-25 19:13:40 +02:00
Maxim Poliakovski
089645e830 Implement SoftTLB for writes. 2021-08-22 17:34:23 +02:00
Maxim Poliakovski
4da95a66d7 Make emulated memory loads to use SoftTLB. 2021-06-20 22:33:10 +02:00
Maxim Poliakovski
7d8f4d4e61 Finalize SoftTLB for reads. 2021-05-16 22:00:00 +02:00
Maxim Poliakovski
a5ddb51a3b ppcmmu: initial TLB implementation for reads. 2021-05-16 00:53:15 +02:00
Maxim Poliakovski
6f9ee10de5 Rework PPC CPU profiler. 2021-04-29 02:26:17 +02:00
dingusdev
7f0acaf3d3 Load and store instruction clean-up 2021-01-25 21:03:17 -07:00
Maxim Poliakovski
fd0f8e2ef5 ppcopcodes: revert inlining of helper functions. 2021-01-24 22:50:07 +01:00
dingusdev
60f84ef0d9 Refactoring interpreter value storage 2021-01-24 11:59:16 -07:00
dingusdev
2539faef7e Small typo fixes 2021-01-23 15:10:08 -07:00
dingusdev
df8ea1b276 Code clean-up for interpreter 2021-01-08 14:34:01 -07:00
Maxim Poliakovski
358f018815 ppcopcodes: fix mcrf. 2021-01-08 21:59:18 +01:00
dingusdev
79e3d398ba mcrf implemented 2021-01-07 20:38:32 -07:00
Maxim Poliakovski
2f3938c23f ppcopcodes: fix dcbz. 2021-01-07 04:25:27 +01: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
99641b1b5e ppcopcodes: fix cntlzw with __builtin_clz.
The result of __builtin_clz is undefined when the source operand
is zero. Add a check for this case and handle it accordingly.
2020-12-07 14:37:20 +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
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
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
64d74228c2 ppcopcodes: fix STMW emulation. 2020-04-21 04:58:21 +02:00
Maxim Poliakovski
3d13bc1ca6 ppcopcodes: fix TWI emulation. 2020-04-21 04:58:21 +02:00
dingusdev
60ffa5bfac Initial attempt at fixing SDL2 building for Windows 2020-03-22 20:15:12 -07: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
Maxim Poliakovski
0eb557751b ppcopcodes: fix timebase read & write. 2020-03-02 00:01:18 +01:00
dingusdev
354409812e Updating files with proper licensing header 2020-02-28 09:04:28 -07:00
Maxim Poliakovski
90779bd9c6 Remove log messages from cache/TLB instructions. 2020-02-27 16:31:22 +01:00
dingusdev
6c1dc8aaf0 Further logging work 2020-02-24 19:50:52 -07:00
dingusdev
d91950e582 Further logging code. 2020-02-23 22:36:31 -07:00
dingusdev
30b1116393 Implemeted limited simplified mnemonics for rlwinm 2020-02-10 20:02:41 -07:00
Maxim Poliakovski
26bd402f44 ppcopcodes: optimize ppc_changecrf0() a bit. 2020-02-10 23:07:39 +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
a72e2fd67d Simplify unsigned integer divisions. 2020-02-10 17:16:18 +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
dingusdev
a4d815344a Patched up DIVW(U)O(.) 2020-02-09 13:59:30 -07: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
49002860ed Fix carry update for subfc(.) and subfco(.). 2020-02-09 07:41:03 +01:00
dingusdev
6f16ba8c57 Fixed SUBFME(O)(.) 2020-02-08 22:06:01 -07:00
dingusdev
051edd5e38 Subtraction operation fixes in progress 2020-02-08 20:35:11 -07:00
dingusdev
b364aa0ae4 Patching up Subtraction Opcodes 2020-02-03 22:32:56 -07:00
dingusdev
f52be627b5 Fixed subfo(.) 2020-02-03 17:28:41 -07:00
Maxim Poliakovski
03439b2a49 Placeholders for SUBFEO[.], SUBFMEO[.] and SUBFZEO[.]. 2020-02-04 00:58:04 +01:00
Maxim Poliakovski
d25ce6a244 Add tests for shifts and fix their emulation. 2020-02-03 22:59:47 +01:00
Maxim Poliakovski
8c1c1e0a0d Fix and refactor additions with OE=1. 2020-02-03 19:42:33 +01:00
dingusdev
eb476adf87 Small fix to addeo 2020-02-02 16:36:47 -07:00