Maxim Poliakovski
|
c8d39d5ee5
|
ppcopcodes: fix creqv emulation.
|
2022-01-21 16:32:07 +01:00 |
|
Maxim Poliakovski
|
2442bd17b3
|
ppcopcodes: fix crand emulation.
|
2022-01-21 14:56:10 +01:00 |
|
Maxim Poliakovski
|
c864b9b7d9
|
ppcopcodes: fix cror emulation.
|
2022-01-21 14:37:51 +01:00 |
|
Maxim Poliakovski
|
e1e651966e
|
Revert "Further condition reg opcode patches"
This reverts commit 756d32df07 .
|
2022-01-10 18:10:39 +01:00 |
|
Maxim Poliakovski
|
c12bab9e27
|
Revert "Quick fix for creqv"
This reverts commit 8efc61e1b9 .
|
2022-01-10 18:01:48 +01:00 |
|
Maxim Poliakovski
|
339db4a078
|
Add timers management.
|
2022-01-10 17:56:24 +01:00 |
|
dingusdev
|
8efc61e1b9
|
Quick fix for creqv
|
2022-01-08 15:22:27 -07:00 |
|
dingusdev
|
756d32df07
|
Further condition reg opcode patches
|
2022-01-07 20:40:07 -07:00 |
|
Maxim Poliakovski
|
9cd7ca0077
|
ppcopcodes: fix crxor.
|
2022-01-08 04:21:09 +01:00 |
|
Maxim Poliakovski
|
7bdad7703c
|
Predict TBR values based on elapsed virtual time.
|
2021-12-20 00:12:44 +01:00 |
|
Maxim Poliakovski
|
c0cd6eb38f
|
Add missing licence headers, update license date.
|
2021-10-23 21:00:31 +02:00 |
|
Maxim Poliakovski
|
e53296f7a9
|
Implement all required context-synchronizing events.
|
2021-10-13 20:58:09 +02:00 |
|
dingusdev
|
1922a20cdd
|
Partial revert for exception handling
This will be for a future update regarding 601 instructions
|
2021-10-05 17:42:55 -07:00 |
|
dingusdev
|
f605c484dd
|
ecowx and eciwx added
|
2021-10-05 17:40:09 -07:00 |
|
Maxim Poliakovski
|
69c357b70f
|
ppcopcodes: fix compilation error with Clang 11.
|
2021-10-05 00:40:12 +02:00 |
|
Maxim Poliakovski
|
84e111290f
|
Fix includes for loguru and SDL.
|
2021-09-16 00:46:38 +02:00 |
|
Maxim Poliakovski
|
9ce15be106
|
ppcmmu.c: restructure and clean up.
|
2021-08-22 21:33:59 +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 |
|
dingusdev
|
60bf5dfa6a
|
ADDO(.) and ADDCO(.) fixed
Temp fix to look into the issues with the addition ops and overflow flag issues.
|
2020-02-02 11:54:33 -07:00 |
|
dingusdev
|
fe6ea7d9f6
|
Division ops fixed
|
2020-02-01 10:51:59 -07:00 |
|
dingusdev
|
0b2de4ac4c
|
Division Ops Fixes WIP
|
2020-01-31 21:06:06 -07:00 |
|
dingusdev
|
8c10004f52
|
Fixed all multiplication issues
|
2020-01-31 18:17:01 -07:00 |
|
Maxim Poliakovski
|
99e8bc98f3
|
Fix mulhw/mulhw. emulation.
|
2020-02-01 02:02:12 +01:00 |
|
dingusdev
|
ddae141c22
|
Overflow fixes in progress
|
2020-01-31 16:54:37 -07:00 |
|
Maxim Poliakovski
|
aad75266f7
|
Fix cntlzw emulation.
|
2020-01-31 18:03:27 +01:00 |
|
dingusdev
|
3dead1f65c
|
Updated TBRs correctly in mtspr
|
2020-01-29 21:08:42 -07:00 |
|
dingusdev
|
e1c0ec3dd2
|
Fixed MTSPR for time base regs
|
2020-01-29 20:47:12 -07:00 |
|
dingusdev
|
aa20d64b48
|
SPRs now use symbolic names
|
2020-01-27 20:39:23 -07: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 |
|
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 |
|
dingusdev
|
6a083869e1
|
Started a massive FP fix-up
|
2020-01-21 19:25:50 -07:00 |
|
dingusdev
|
29d0ce362c
|
Fix 4 for the opcodes
|
2020-01-18 07:08:11 -07:00 |
|
dingusdev
|
bed665076d
|
Update 3 for the opcodes
|
2020-01-17 21:37:54 -07:00 |
|
dingusdev
|
3dc46ae664
|
Further opcode fixing
|
2020-01-17 21:26:09 -07:00 |
|
dingusdev
|
add1ac7a3d
|
Corrected several loading instructions
|
2020-01-17 21:06:26 -07:00 |
|
dingusdev
|
3010708f2a
|
mfsrin fixed
|
2020-01-16 19:25:41 -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 |
|
Maxim Poliakovski
|
2d5e436ad4
|
Refactor PPC exception handling, part 1.
|
2020-01-12 02:35:54 +01:00 |
|
dingusdev
|
b92fe60fad
|
Header updates + NVRAM Fix
|
2020-01-05 10:38:32 -07: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
|
4b843157d9
|
ppcemu: refactor page address translation.
The refactored code is UNTESTED. Moreover,
no TLB is currently implemeneted.
|
2020-01-03 16:22:38 +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 |
|
Maxim Poliakovski
|
87ca977ae7
|
Rename ppcmemory to ppcmmu.
|
2019-12-27 20:00:53 +01:00 |
|
Maxim Poliakovski
|
ad5f3a9435
|
Move PPC emulation code into /cpu/ppc subdirectory.
|
2019-12-23 10:38:16 +01:00 |
|