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