Commit Graph

210 Commits

Author SHA1 Message Date
dingusdev
6abe86589b Update ppcfpopcodes.cpp 2021-07-07 08:00:37 -07:00
dingusdev
07a4166eef Preliminary work on floating point tests 2021-06-25 21:20:53 -07:00
Maxim Poliakovski
6f9ee10de5 Rework PPC CPU profiler. 2021-04-29 02:26:17 +02:00
Maxim Poliakovski
0c1c59ffa7 ppcmmu: set type of the profiling variables to uint64_t. 2021-04-29 01:30:27 +02:00
Maxim Poliakovski
085877a8bf ppcmmu: add MMU profiling (disabled by default). 2021-04-18 20:49:58 +02:00
Maxim Poliakovski
bc59bf7c43 ppcmmu: replace macros with function templates. 2021-04-18 20:05:15 +02:00
Maxim Poliakovski
0375b6a687 ppcmmu: invert BAT mask to speed up match. 2021-04-11 02:03:20 +02:00
Maxim Poliakovski
d545780071 ppcmmu: fix calculation for BAT access_bits. 2021-04-10 23:51:00 +02:00
dingusdev
19ca37c4ba Started refactoring fctiw and fctiwz 2021-02-05 12:45:57 -07:00
dingusdev
ce70b0f096 Removed obseleted function declarations 2021-02-03 20:01:02 -07:00
Maxim Poliakovski
7628ec92c0 Rename memreadwrite.h to memaccess.h 2021-02-03 12:19:18 +01:00
dingusdev
7f0acaf3d3 Load and store instruction clean-up 2021-01-25 21:03:17 -07:00
Maxim Poliakovski
5961552ed9 ppcfpopcodes: fix register stores. 2021-01-25 17:19:32 +01:00
Maxim Poliakovski
2141a72b87 ppcfpopcodes: finish RFC of the loading helpers. 2021-01-25 02:27:58 +01:00
Maxim Poliakovski
9683c660bc ppcfpopcodes: RFC loading helpers, part 2.
Fix lfdx emulation along the way.
2021-01-25 01:30:19 +01:00
Maxim Poliakovski
d8397906c2 ppcfpopcodes: start refactoring of loading helpers. 2021-01-24 23:06:33 +01: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
593230f326 Disassembler - floating point instruction fixes 2021-01-23 22:44:14 -07:00
dingusdev
680b437b74 Fixed disassembly for fctiwz, frsp, and fctiw 2021-01-23 21:30:29 -07:00
Maxim Poliakovski
3189876d41 ppcfpopcodes: fix fmul emulation. 2021-01-24 04:53:19 +01:00
dingusdev
2539faef7e Small typo fixes 2021-01-23 15:10:08 -07:00
Maxim Poliakovski
42184213e9 ppcexec: fix RC flag for subgroup 63. 2021-01-23 03:21:50 +01:00
Maxim Poliakovski
bb3f4e596e ppcexec: fix subopcode 59 dispatching. 2021-01-23 03:12:39 +01:00
Maxim Poliakovski
014eefdf7e ppcdisasm: fix frsp and add tests for it. 2021-01-23 02:32:30 +01:00
Maxim Poliakovski
d8f7588693 debugger: some fixes and improvements. 2021-01-12 15:17:51 +01:00
dingusdev
2bac606365 Added to Heathrow
Plus some debugging stuff to help figure out what register 0x34 is responsible for.
2021-01-08 15:29:43 -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
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