Ben Vanik
998467ce05
Fixing cntlzd.
2013-09-25 00:21:41 -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
39ef8d8263
Properly using XapiThreadStartup routines, if present.
2013-06-30 10:27:06 -07:00
Ben Vanik
c9a39a8b62
Dumping module info on startup and logging unimplemented kernel calls.
2013-06-30 07:53:17 -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
052c70efce
Fixing broken opcode 63 stuff.
2013-06-02 12:01:43 -07:00
Ben Vanik
b3e93a0d1d
srad.
...
Probably right.
2013-06-02 11:33:07 -07:00
Rick Gibbed
fbaaebdb41
Oops. Tab!
2013-06-02 09:43:27 -07:00
Rick Gibbed
b97b8226b2
Fixed a crash when adding a FunctionSymbol with a NULL address.
2013-06-02 07:57:38 -07:00
Rick Gibbed
105aee506d
dcbf disasm.
2013-06-02 07:56:17 -07:00
Ben Vanik
e00e665a09
Basic command buffer processing.
2013-06-01 21:49:14 -07:00
Rick Gibbed
3667821be3
ldarx & stdcx disasm.
2013-05-31 22:01:35 -07:00
Ben Vanik
ef0032ecff
Wiring up register read/write from JIT -> GPU.
2013-05-31 21:23:26 -07:00
Rick Gibbed
edf3a9155b
The stack address needs to start at the end of the allocated memory for the stack, not the beginning.
2013-05-31 20:55:52 -07:00
Ben Vanik
38efd3837d
Adding support for detecting the save/rest fpr and vmx blocks.
2013-05-31 01:53:30 -07:00
Ben Vanik
e6195c4086
fmadd, orc, extsh, extsw.
2013-05-31 01:00:00 -07:00
Ben Vanik
9bb36c7404
Fixing decoding of the rld* instructions.
2013-05-31 00:38:26 -07:00
Ben Vanik
dc16653164
Fixing decoding of some of the opcode 63 instructions.
2013-05-31 00:09:10 -07:00
Ben Vanik
14c3b8a382
Adding a case for tail calls.
...
Still missing the forward tail call case, as there is legit code that
does weird branches like that.
2013-05-30 23:41:25 -07:00
Ben Vanik
e7665c11eb
Adding basic constant checks and updates to memory instructions.
...
Only those instructions likely to have immediate values have been updated.
It'd be nice to go further than this and a) centralize the ea calculations
b) move this all to the analysis pass c) generate mov's in Read/WriteMemory
using the immediates as bases instead of all the register work.
Also fixing a broken stwcx that was causing crashes.
2013-05-30 23:20:05 -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
1d0ec64d40
Adding srd/srw. Fixing shamts in other shifts.
2013-05-27 05:35:41 -07:00
Ben Vanik
778efdb276
fcfid(z), fctid(z) -- both largely untested.
2013-05-27 05:22:38 -07:00
Ben Vanik
84fb802166
fadd(s), fdiv(s), fmul(s), fsub(s), fsel, frsp, fabs, fmr, fneg, fnmsubs.
2013-05-27 04:09:07 -07:00
Ben Vanik
c10d719d53
Floating point loads/stores.
...
Seem correct. Maybe not.
2013-05-26 17:59:11 -07:00
Ben Vanik
a09170b2c6
Fixing bad EA write order.
2013-05-26 17:49:37 -07:00
Ben Vanik
a6db12b48f
ldx/ldux.
2013-05-26 17:43:37 -07:00
Rick Gibbed
0ca44083e6
Stick the export ordinal in the dummy address for unimplemented export data, to make it obvious what it is when debugging.
2013-05-26 17:37:31 -07:00
Ben Vanik
b5e729f89e
sld.
2013-05-26 16:30:52 -07:00
Ben Vanik
924b08b264
cntlzd and fixing broken cntlzwx.
2013-05-26 16:30:43 -07:00
Ben Vanik
86396816f5
rldicl, rldicr.
2013-05-26 16:10:25 -07:00
Ben Vanik
fd86370ccc
Fixing warnings on mtmsr/mtmsrd disasm.
2013-05-26 15:03:36 -07:00
Rick Gibbed
1b3351b1e2
disasm for mfmsr, mtmsr, mtmsrd
2013-05-26 08:39:31 -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
bf9e92c027
Fixing typo in disasm.
2013-05-26 02:48:31 -07:00
Ben Vanik
35ce144a37
Disasm of some memory routines.
2013-05-26 02:45:32 -07:00
Ben Vanik
6b851da9d7
Fixing analysis regression: don't analyze on gets during analysis pass.
2013-05-26 02:11:08 -07:00
Ben Vanik
f94256aaaf
Adding a simple heuristic to find leaf thunk functions.
2013-05-26 01:43:44 -07:00
Rick Gibbed
1640acaf8a
mftb
2013-05-26 00:48:53 -07:00
Ben Vanik
7febbe0f86
Fixing <8b memory accesses.
2013-05-26 00:44:20 -07:00
Rick Gibbed
0855fe7014
addicx
2013-05-26 00:27:36 -07:00
Ben Vanik
ab762e0009
Adding disassemblers for the fpu instructions.
2013-05-26 00:13:46 -07:00
Ben Vanik
4073028188
Very basic, super slow, nasty indirection.
2013-05-25 20:32:58 -07:00
Ben Vanik
2986a0be82
Removing debug int3.
2013-05-25 17:20:52 -07:00
Ben Vanik
ce27fb333b
Fixing rlwimix.
2013-05-25 17:08:31 -07:00
Ben Vanik
bd8376e231
Making xenia-test run on Windows.
2013-05-25 05:20:28 -07:00
Ben Vanik
edb3aabdd4
Removing llvm backend.
2013-05-25 04:28:21 -07:00
Ben Vanik
eb22289dc7
Fixing bad fcmpu disasm.
2013-05-25 04:25:27 -07:00
Ben Vanik
a5da226617
cntlzwx.
2013-05-25 03:23:33 -07:00
Ben Vanik
de85adea2e
divwx/divwux.
2013-05-25 02:49:44 -07:00
Ben Vanik
9f3f5d2c0e
mullw.
2013-05-25 01:56:42 -07:00
Ben Vanik
e29de199ff
srawix.
2013-05-25 01:50:46 -07:00
Ben Vanik
8207bb8088
negx
2013-05-25 01:35:19 -07:00
Ben Vanik
07d0dd98b6
slwx, ignoring twi.
2013-05-25 01:31:38 -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
eac03765db
Adding addx. Whoops.
2013-05-25 00:07:35 -07:00
Ben Vanik
04485b6460
rlwimix/rlwinmx.
2013-05-24 23:34:52 -07:00
Ben Vanik
ef3bd6cc53
Fixing disasm of subfic, fixing neg->not, fixing tests to use 8bits.
2013-05-24 23:03:35 -07:00
Ben Vanik
6320ef6b7e
Fixing conditionals to use cmp instead of test.
2013-05-24 22:21:05 -07:00
Ben Vanik
7bf69f66fd
Logging out the condition register values.
2013-05-24 22:03:57 -07:00
Ben Vanik
2586c10cc5
addzex.
2013-05-24 21:54:04 -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
1ad0bb7843
cmp/cmpi/cmpl/cmpli.
...
May not be right.
2013-05-24 19:52:00 -07:00
Ben Vanik
6cd8495ea2
extsbx.
2013-05-24 19:45:48 -07:00
Ben Vanik
8976f1b046
subfx + subficx.
2013-05-24 19:16:01 -07:00
Ben Vanik
69ebedb43f
addic + subfex.
2013-05-24 19:10:54 -07:00
Ben Vanik
dc40f28795
addx and switching commenting style on the rest of the unported instrs.
2013-05-24 18:49:14 -07:00
Ben Vanik
1e67547a6b
Fixing conditional branch logic.
2013-05-24 18:44:32 -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
7e3268621d
Optimizing the mr case.
2013-05-24 17:59:01 -07:00
Ben Vanik
748bfe509f
Handling null ptr in NtFreeVirtualMemory.
2013-05-24 17:33:57 -07:00
Ben Vanik
21b0d25131
Fixing memory address truncation.
2013-05-24 17:08:12 -07:00
Ben Vanik
fcf478ba55
Log all incoming registers on each instruction execute.
2013-05-24 16:53:27 -07:00
Ben Vanik
15cfbd3736
The various _ptr helpers in asmjit are useless.
2013-05-24 16:34:24 -07:00
Ben Vanik
e6320dada5
Most of the memory instructions.
...
Not sure this is correct, as it crashes pretty early on.
2013-05-24 16:16:39 -07:00
Ben Vanik
e724fe3e60
Adding some ALU instructions.
2013-05-24 14:21:39 -07:00
Ben Vanik
8965caa833
Adding an option to disable register caching.
...
Until things work I'm not going to bother with that optimization.
2013-05-24 11:18:50 -07:00
Ben Vanik
b8323c3055
Preparing some control instructions for proper emitting.
2013-05-24 03:51:58 -07:00
Ben Vanik
bf8f068fa5
Disabling tail calls.
2013-05-24 03:29:21 -07:00
Ben Vanik
2242778fff
Fixing trace calls. Disabling logging of redirector.
2013-05-24 02:42:41 -07:00
Ben Vanik
eb9b9b0321
Adding bl (unconditional only).
2013-05-24 02:21:12 -07:00
Ben Vanik
2153256109
Fixing line endings.
2013-05-24 01:41:02 -07:00
Ben Vanik
605d66ecf6
Adding the first instructions, mfspr/mtspr.
2013-05-24 01:37:02 -07:00
Ben Vanik
71bd3c799f
Local variables setup and spilling/filling.
2013-05-24 00:50:56 -07:00
Ben Vanik
376226c59a
Adding basic block labels.
...
Probably correct.
2013-05-24 00:06:46 -07:00