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
54fcfca8e9
Fixed floating point loading and storing instructions
2020-11-29 06:52:01 -07:00
Maxim Poliakovski
a775007d3a
MMU: implement misaligned cross-page accesses.
2020-11-29 00:23:30 +01:00
dingusdev
0c202b0c2d
Merging the 68k debugger from another branch
2020-11-26 20:00:08 -07:00
Maxim Poliakovski
b81de4af48
ppcexec: initialize interpreter lookup tables.
2020-11-14 03:05:41 +01:00
Maxim Poliakovski
2b19b0b237
ppcmmu: better initialization of last used entries.
2020-11-14 02:57:36 +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
dingusdev
14ef7564cd
CLI fixes - RAM and GFXMEM work better
2020-08-25 20:07:02 -07:00
Maxim Poliakovski
353035e9ca
Prevent clobbering during debugging.
2020-07-20 23:02:07 +02:00
Maxim Poliakovski
b9dcfef551
debugger: debugging commands for 68k code.
2020-07-16 14:26:34 +02:00
Maxim Poliakovski
6b74e358dc
WIP: basic 68k debugging environment.
2020-07-15 02:19:05 +02: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
2cd002cffa
ppcexec: remove dead code.
2020-06-03 15:33:32 +02:00
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
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
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