Commit Graph

67 Commits

Author SHA1 Message Date
Ben Vanik
96c27b3b51 Fixing stack alignment in release mode. 2013-11-16 02:52:33 -08:00
Ben Vanik
692e14665c Tie FPR/VR tracing to --trace_registers 2013-10-25 23:32:11 -07: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
42a8fc0b59 --break_on_instruction=0x... and --break_on_memory=0x... 2013-10-20 16:54:59 -07:00
Ben Vanik
d62e8aaf78 lhbrx/lwbrx/ldbrx/sthbrx/stwbrx/stdbrx 2013-10-19 21:05:06 -07:00
Ben Vanik
e842a6614a Fixing LR argument for indirect branches. 2013-10-19 19:59:09 -07:00
Ben Vanik
5df538cd44 Adding stack alignment check. We aren't 16b aligned right now. Fuck. 2013-10-19 14:16:34 -07:00
Ben Vanik
007f7e371d Workaround for yet another AsmJit bug. Sigh. 2013-10-19 12:50:42 -07:00
gibbed
32a0045001 This is probably better. 2013-10-19 01:18:18 -07:00
Ben Vanik
0746e6feb2 ldarx/lwarx/stdcx/stwcx. Probably. 2013-10-18 21:17:20 -07:00
gibbed
309d1621e5 Attempt at a fix for crashes occuring when not using instruction/branch tracing. 2013-10-16 18:55:21 -07:00
Ben Vanik
6cda645911 Adding instruction address identifier when not tracing.
This can be removed later.
2013-10-14 21:53:34 -07:00
Ben Vanik
80e3e6fa14 Ignoring unimplemented disasm functions by default. 2013-10-14 21:34:13 -07:00
Ben Vanik
602ed5393e vspltisb/ldarx/stdcx.
ldarx/stdcx are just as faked as the w equivalents.
2013-10-14 00:13:40 -07:00
Ben Vanik
e5ca996a08 Xmm read/write cleanup. 2013-10-06 11:21:50 -07:00
Ben Vanik
cdb13775e2 Alignment option in xmm read/write. 2013-10-06 10:25:41 -07:00
Ben Vanik
e8429b75e0 Significantly faster byte swapping on xmm read/write. 2013-10-04 22:29:19 -07:00
Ben Vanik
bdb5b0eae2 Fixing alignment of xmm load/store. 2013-10-03 20:18:56 -07:00
Ben Vanik
21d273e85b Tracing FPRs and random fixes. 2013-09-30 22:43:29 -07:00
Ben Vanik
26ec76ef35 A lot of progress on altivec instructions.
Some bad results, still, and some instructions are not decoding right.
2013-09-29 21:05:48 -07:00
Ben Vanik
526b1a85b7 Simple altivec loads/stores. 2013-09-28 23:14:43 -07:00
Ben Vanik
3e0d9af57e Placeholders for memory access breakpoints. 2013-09-25 20:13:43 -07:00
Ben Vanik
d5b8a2091a Switching tracing order to prevent skipping traces of branch instructions. 2013-09-06 23:21:08 -07:00
Ben Vanik
6f602d120a Adding thread ID to trace lines and cleaning up their formatting. 2013-06-30 06:09:08 -07:00
Ben Vanik
ef0032ecff Wiring up register read/write from JIT -> GPU. 2013-05-31 21:23:26 -07:00
Ben Vanik
78086684c6 Now tracking constant values for most operations.
This will make it easier to enable memory access optimizations and hacks.
Not all operations are updating the constant registers, only those that
are likely to participate in constant value building. Constant values are
cleared on every basic block, though this may be too zealous it prevents
weird fall-through cases.
2013-05-30 22:50:32 -07:00
Ben Vanik
f307bc9eb1 Adding --target= and --trace_registers flags.
--target=[xex|iso] makes it possible to specify the thing to run from a
flagfile.
2013-05-29 21:45:54 -07:00
Ben Vanik
82159b2b9d Adding lfd. 2013-05-26 07:19:09 -07:00
Ben Vanik
9d63eb7499 Fixing condition updates for unsigned compares. 2013-05-26 04:21:07 -07:00
Ben Vanik
5d83465ce4 Fixing branches via the indirection block.
Also disabling the local indirection optimization until it's implemented.
2013-05-26 03:59:32 -07:00
Ben Vanik
22f186d713 Better asserts/checks around bad function addresses. 2013-05-26 03:26:49 -07:00
Ben Vanik
7febbe0f86 Fixing <8b memory accesses. 2013-05-26 00:44:20 -07:00
Ben Vanik
4073028188 Very basic, super slow, nasty indirection. 2013-05-25 20:32:58 -07:00
Ben Vanik
de85adea2e divwx/divwux. 2013-05-25 02:49:44 -07:00
Ben Vanik
ed401449b7 Only create the shared return block if required. 2013-05-25 00:45:16 -07:00
Ben Vanik
da62ec56f9 Adding the ret required for tail calls. 2013-05-25 00:41:01 -07:00
Ben Vanik
fb22aeb5ac Fixing assertion warnings from asmjit. 2013-05-25 00:40:30 -07:00
Ben Vanik
9883f32fb7 Fixing logger initialization when codegen logging is disabled. 2013-05-24 21:49:03 -07:00
Rick Gibbed
ba718de434 Further corrections on cr checks. 2013-05-24 21:34:03 -07:00
Ben Vanik
1354b9975f Adding basic branch indirection, which doesn't work but is ready to do so. 2013-05-24 21:18:30 -07:00
Ben Vanik
c6ed7ff9cf Fixing cr5+ checks. 2013-05-24 20:48:04 -07:00
Ben Vanik
346a27ddf8 Trying again to fix compares. 2013-05-24 20:40:00 -07:00
Ben Vanik
e7556a09f8 Fixing bad or during cr0 update - need to be overwriting. 2013-05-24 20:26:06 -07:00
Ben Vanik
68f1eb7f69 Fixing carry and compare flags. 2013-05-24 20:20:18 -07:00
Ben Vanik
97b0e2aa3d Fixing comparison between two gpvars. 2013-05-24 20:09:11 -07:00
Ben Vanik
5e66f7b04b Adding a bunch of nops around trace calls.
5 before, 2 after (so it's easy to see what goes with what).
2013-05-24 19:59:51 -07:00
Ben Vanik
69ebedb43f addic + subfex. 2013-05-24 19:10:54 -07:00
Ben Vanik
2ab01af0bd Breaking on indirect branches. 2013-05-24 18:34:08 -07:00
Ben Vanik
692f85ed4f Very, very basic branching. Most compares not yet implemented. 2013-05-24 18:28:52 -07:00
Ben Vanik
21b0d25131 Fixing memory address truncation. 2013-05-24 17:08:12 -07:00