Commit Graph

195 Commits

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