Commit Graph

59 Commits

Author SHA1 Message Date
DrChat
d43e2c7ff8 xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
Dr. Chat
4c55039c22 Remove xenia-cpu dependency on xenia-kernel 2017-02-06 21:57:18 -06:00
Ben Vanik
6777ce6668 Reconcile debugger and save state stuff into a single implementation.
Fixes #497 and fixes #496.
Still rough edges, but at least less duplication.
2016-01-18 11:48:21 -08:00
Dr. Chat
41d5b41523 Automatically install any CPU breakpoints in any newly-defined functions if necessary. 2015-12-29 12:32:01 -08:00
Dr. Chat
28468f8a18 cpu::Processor now tracks a pointer to the emulator. 2015-12-29 12:32:00 -08:00
Dr. Chat
7d59258839 Processor::ExecuteRaw
Changed the breakpoint lock to a recursive mutex.
2015-12-29 12:28:57 -08:00
Dr. Chat
e383e2f101 Processor breakpoint support 2015-12-29 12:28:56 -08:00
Ben Vanik
15816327b4 Renaming xe::cpu::frontend to xe::cpu::ppc. 2015-12-14 21:17:55 -08:00
Ben Vanik
3c96b6fa0a DANGER DANGER. Switching to global critical region.
This changes almost all locks held by guest threads to use a single global
critical region. This emulates the behavior on the PPC of disabling
interrupts (by calls like KeRaiseIrqlToDpcLevel or masking interrupts),
and prevents deadlocks from occuring when threads are suspended or
otherwise blocked.
This has performance implications and a pass is needed to ensure the
locking is as granular as possible. It could also break everything
because it's fundamentally unsound. We'll see.
2015-09-06 09:30:54 -07:00
Ben Vanik
f5e374f9b5 Changing the way the global lock works. Some things are better, I think.
Regressions are likely.
2015-09-01 09:45:32 -07:00
Ben Vanik
5e08889d93 More style cleanup. 2015-08-06 20:17:01 -07:00
Ben Vanik
eaa1a8ee3a Refactoring SymbolInfo/FunctionInfo/Function into Symbol/Function. 2015-08-05 21:50:02 -07:00
Ben Vanik
e657276996 Mostly working stack walking (besides issue #372). 2015-07-29 00:15:52 -07:00
Ben Vanik
d01abd4694 Starting debugger rework, adding base async socket, removing flatbuffers. 2015-07-22 00:01:36 -07:00
Ben Vanik
ecd4af10c9 Fixing some clang warnings/errors. 2015-07-15 23:26:58 -07:00
Ben Vanik
dbcdc5b543 Function lookup is slow - replacing with a faster test. 2015-06-08 23:44:38 -07:00
Ben Vanik
6b52f6715a Adding tests for branch/carry and logging disasm on test failure. 2015-06-06 10:59:43 -07:00
Ben Vanik
9c3d2b54fb Cleanup before kernel export refactor. 2015-05-31 16:31:19 -07:00
Ben Vanik
41cee3d337 Switching vsync to custom thread. 2015-05-25 21:12:27 -07:00
Ben Vanik
f5a2b85d42 Switching to xe::mutex. 2015-05-25 00:52:21 -07:00
Ben Vanik
576d6492dc Basic debugger networking. 2015-05-25 00:51:22 -07:00
Ben Vanik
94c62b91d0 --trace_functions and --trace_function_coverage 2015-05-05 22:44:36 -07:00
Ben Vanik
ade5388728 bool-ifying xe::cpu 2015-05-05 18:52:54 -07:00
Ben Vanik
499bed21c0 Moving debugger. 2015-05-05 18:52:53 -07:00
Ben Vanik
78921c1a7e Merging Runtime into Processor. 2015-05-03 22:28:25 -07:00
Ben Vanik
642259e16f Code cleanup: moving ExportResolver to xe::cpu 2015-05-02 02:11:11 -07:00
Ben Vanik
30f7effa73 Code cleanup: removing common.h 2015-05-02 01:25:59 -07:00
Ben Vanik
281abea955 Converting addresses in xe::cpu to 32bit. 2015-03-24 19:41:29 -07:00
Ben Vanik
9281d62106 Moving cpu/runtime/ to cpu/. 2015-03-24 08:25:58 -07:00
Ben Vanik
00e4a4fe1b Fix #include format. 2015-01-31 22:49:47 -08:00
Ben Vanik
a0eebf8898 Removing old run loop/ref/core/etc. 2014-12-31 19:26:51 -08:00
Ben Vanik
a337ce33ed Getting ppc tests building again (big surprise: they are failing). 2014-09-09 20:25:38 -07:00
Ben Vanik
6f802c2432 Fixing many clang warnings. 2014-08-21 23:10:08 -07:00
Ben Vanik
244e8a8745 Removing the last of XEDECLARECLASS. 2014-08-20 22:50:10 -07:00
Ben Vanik
48a0e5c601 Shrinking alloy memory interface so that alloy-sandbox doesn't need xe. 2014-08-19 21:02:15 -07:00
Ben Vanik
bca49bed4b Removing xe_mutex_t. 2014-08-16 00:56:50 -07:00
Ben Vanik
296bb5c87a Dummy IRQL stuff to silence warnings. 2014-08-04 15:39:42 -07:00
Ben Vanik
6b197c4c92 Removing the debugger and dependencies. Needs rethinking. 2014-07-09 21:21:40 -07:00
Ben Vanik
d5f27dbf34 Better arg passing for Execute and experimenting with APCs. 2014-07-02 15:39:49 -07:00
Ben Vanik
0e3854555d Pure dynamic MMIO access. Prep for more complex GPU memory management. 2014-06-01 23:36:18 -07:00
Ben Vanik
a1da55a006 Threads displayed. 2013-12-25 17:31:53 -08:00
Ben Vanik
dcd9f8b6ff Module info in json. 2013-12-24 17:25:29 -08:00
Ben Vanik
475ddc1fcf Breakpoint hits reaching all the way to UI.
Nasty json only hackery right now, but fixable to support other protocols.
2013-12-23 14:01:13 -08:00
Ben Vanik
5e9a2c6d27 Client-specific debug state. 2013-12-22 19:58:00 -08:00
Ben Vanik
7098ed3b02 Plumbing breakpoints down into alloy Debugger interface. 2013-12-22 17:50:14 -08:00
Ben Vanik
a631ada0f7 Routing messages to debug targets. 2013-12-22 00:51:50 -08:00
Ben Vanik
fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00
Ben Vanik
b7ffd46319 Massive refactoring of all code + audio skeleton.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.
2013-10-23 20:42:24 -07:00
Ben Vanik
90bc6ad1a8 Interrupts fire on the right 'thread', ringbuffer work, 2013-10-19 11:50:01 -07:00
Ben Vanik
c53db98517 Locking around some JIT stuff.
Excessive for now, but safer.
2013-10-16 21:32:20 -07:00