Maxim Poliakovski
6ef0f0baae
Fix CPU cycles counter to play nicely with setjmp.
...
setjmp clobbers non-volatile local variables. bb_start_la is such
a local variable that is used for counting of virtual CPU cycles.
To make cycles counting work after setjmp, the global variable
glob_bb_start_la is used to preserve content of bb_start_la accross
interpreter pipeline.
2020-06-03 15:21:19 +02:00
Maxim Poliakovski
d21fdb25d1
Remove unused variable grab_branch.
2020-06-01 23:12:18 +02:00
Maxim Poliakovski
f204caa907
ppcexec: new TBR/DEC updating code.
2020-06-01 00:46:00 +02: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
Maxim Poliakovski
695044cf0e
Support more than one I/O region per device.
2020-03-31 18:48:04 +02:00
dingusdev
60ffa5bfac
Initial attempt at fixing SDL2 building for Windows
2020-03-22 20:15:12 -07:00
Maxim Poliakovski
8e34c1657c
Mock up DBDMA channel execution for sound.
2020-03-19 02:00:18 +01:00
Maxim Poliakovski
9be3250142
Fix MMU region bounds check.
2020-03-15 20:08:53 +01: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
Maxim Poliakovski
0eb557751b
ppcopcodes: fix timebase read & write.
2020-03-02 00:01:18 +01:00
dingusdev
f5e8c9cbb8
Three tiny typos fixed
...
All related to 4*cr1+lt
2020-03-01 14:11:26 -07:00
dingusdev
31147aada3
Fixed most condition register issues with disassembler
2020-03-01 14:09:08 -07:00
dingusdev
81cabc5730
Fixed various bugs in the disassembler
2020-03-01 11:18:29 -07:00
Maxim Poliakovski
cbb46e8f30
More tests to reaveal wrong disassembly.
2020-03-01 18:21:57 +01:00
Maxim Poliakovski
7978d9d59f
Fix SRR0 setting in exception handler.
2020-03-01 17:24:50 +01:00
dingusdev
055445e04a
Merge branch 'master' of https://github.com/dingusdev/dingusppc
2020-02-28 09:04:30 -07:00
dingusdev
354409812e
Updating files with proper licensing header
2020-02-28 09:04:28 -07:00
Maxim Poliakovski
e08bf39af3
debugger: more checks for user input.
2020-02-28 08:58:14 +01:00
dingusdev
5991ef1dca
Merge branch 'ppc-fixes'
2020-02-27 21:03:40 -07:00
dingusdev
c8611dc293
Code cleanup + procedures for cleanup
2020-02-27 21:03:01 -07:00
Maxim Poliakovski
90779bd9c6
Remove log messages from cache/TLB instructions.
2020-02-27 16:31:22 +01:00
dingusdev
a3f55d35b4
Fixed most compiler warnings
2020-02-25 07:15:42 -07:00
dingusdev
6c1dc8aaf0
Further logging work
2020-02-24 19:50:52 -07:00
dingusdev
baef838f7c
Further integration with loguru
2020-02-24 07:54:29 -07:00
dingusdev
d91950e582
Further logging code.
2020-02-23 22:36:31 -07:00
dingusdev
e9a616ffeb
Started working on incorporating loguru
2020-02-23 20:59:10 -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
dingusdev
02a75f78da
regsfpsab fixed
2020-02-20 22:21:58 -07:00
dingusdev
d20122b3a9
Proper flag updates for fm arithmetic operations
2020-02-20 20:00:20 -07:00
dingusdev
6428f324f6
icbi fixed
2020-02-19 19:37:51 -07:00
dingusdev
d8f4a0c910
icbi fixed
2020-02-19 19:20:01 -07:00
dingusdev
9138b9bafc
Quick fix for cmp
2020-02-19 19:12:23 -07:00
dingusdev
c71be1bc37
Fixed compare instructions
2020-02-19 19:03:39 -07:00
Maxim Poliakovski
5b2369458e
ppcdisasm: remove unused function.
2020-02-20 02:35:38 +01:00
Maxim Poliakovski
8671517a08
ppcdisasm: new tests and fixes for rlwinm/rlwimi.
2020-02-20 02:27:48 +01:00
dingusdev
8babfa9987
Fixed some convoluted code for rlwinm
2020-02-17 20:17:56 -07:00
dingusdev
7a654fa576
Fixed rlwinm, rlwimi, and rlwnm mnemonics
2020-02-16 22:19:28 -07:00
dingusdev
3c06e8b30a
Implemented fctiw(z)(.)
2020-02-16 13:40:55 -07:00
dingusdev
839c97b665
Small fix to the execution table
2020-02-16 08:57:23 -07:00
dingusdev
1f43b69878
Implemented the remaining recognized SPRs
2020-02-15 21:37:36 -07:00
dingusdev
87a4ff1b73
CMPW mnemonics added
2020-02-15 20:59:09 -07:00
dingusdev
d7e4f3a6a8
Small fixes to M(F/T)SPR and rotate instructions
2020-02-15 16:15:08 -07:00
dingusdev
bedbd54f5b
Almost all major rotate op mnemonics added
2020-02-15 14:48:21 -07:00
dingusdev
158b0d2b50
Added major MTSPR/MFSPR mnemonics and MFTB mnemonics
2020-02-15 13:10:01 -07:00
dingusdev
6f6e5671d4
Fixed test cases for stfd(u) and sllq(.)
2020-02-15 12:09:27 -07:00
dingusdev
ef27fcec69
More tests, more fixes
...
Only significant bugs left are with stfd(u) and sllq(.)
2020-02-15 11:29:03 -07:00