Unknown W. Brackets
0e33923844
Belt and suspenders check for branch ops.
2013-01-22 08:11:37 -08:00
Unknown W. Brackets
c324983340
Make the jit support bltzal and friends.
...
Fixes problems with jit in games. Android changes completely untested.
2013-01-22 08:04:01 -08:00
Unknown W. Brackets
de2df87758
Make interpreter call Advance() the same as jit.
...
Probably makes more sense anyway, since the first events will be
more correctly timed, like savestates, sound, etc.
2013-01-21 23:16:23 -08:00
Unknown W. Brackets
a9d0390426
Adjust downcount before syscalls, not after.
...
This makes jit slightly slower for syscalls, but it's minor and makes
sure jit and interpreter timing are determistically the same.
2013-01-21 22:57:53 -08:00
Unknown W. Brackets
566b7a0910
A branch was missing inDelaySlot, refactor it.
2013-01-21 22:45:07 -08:00
Unknown W. Brackets
c897e6446a
Don't over decr downcount when hitting a jit bp.
2013-01-21 19:41:12 -08:00
Unknown W. Brackets
d99d060c2e
Decrement downcount in skipped likely slots.
...
Pretty sure this is right, it eats up a cycle as a nop.
Also some funny indentation.
2013-01-21 19:00:09 -08:00
Unknown W. Brackets
8438371941
Read memory in the jit dispatcher same as lw.
...
Just for consistency. One less op, maybe faster, probably same.
2013-01-21 17:51:14 -08:00
Henrik Rydgård
65203f3833
Merge pull request #459 from unknownbrackets/jit-branch
...
Jit branch debugging
2013-01-21 00:21:00 -08:00
Unknown W. Brackets
49965b7f1d
Decrement downcount in the interpreter.
2013-01-20 21:48:38 -08:00
Unknown W. Brackets
1485b0865c
Improve the speed of branch debugging a bit.
2013-01-20 19:48:55 -08:00
Unknown W. Brackets
dd69694302
Add some optional logging to debug jit branching.
2013-01-20 19:48:55 -08:00
Unknown W. Brackets
4c271fc09e
Add DELAYSLOT and LIKELU flags to some ops.
...
Should improve cycle estimate, and makes analysis easier.
2013-01-20 19:48:54 -08:00
Unknown W. Brackets
776eb8ab2e
Simplify CompileDelaySlot().
2013-01-20 19:48:54 -08:00
Unknown W. Brackets
df06bb5624
Add some checks to make sure ZERO is never set.
2013-01-20 19:48:53 -08:00
Unknown W. Brackets
a43078ab68
Same optimization for FPU load / store.
2013-01-20 13:16:41 -08:00
Unknown W. Brackets
f5963df0dc
Optimize write to a single x64 op too.
2013-01-20 13:06:19 -08:00
Unknown W. Brackets
e8dc99328a
Avoid using EAX as a temporary where possible.
...
All the regs should be indirect addressing compatible. So if it's
in a reg, let's use that instead of EAX.
2013-01-20 12:57:14 -08:00
Unknown W. Brackets
eaa24ee047
Use EDX as a temporary for sb, and jit it.
2013-01-20 12:25:08 -08:00
Unknown W. Brackets
30f6a4ba87
Fix stupid stupid typo breaking slowmem jit.
2013-01-20 09:39:13 -08:00
Unknown W. Brackets
da22eb8adf
Make swc1 and lwc1 fast even without fastmem.
2013-01-20 02:07:00 -08:00
Henrik Rydgård
2cb830510c
Merge pull request #444 from unknownbrackets/jit-minor
...
Don't muck with currentMIPS->r directly in the slowmem jit
2013-01-20 01:58:48 -08:00
Henrik Rydgård
3ad4e0f9fd
Merge pull request #452 from unknownbrackets/jit-mismap
...
Log missed jit ops for poor man profiling
2013-01-20 01:34:34 -08:00
Unknown W. Brackets
53600161ba
Don't write anything to a bad static pointer.
...
Not sure what came over me...
2013-01-20 00:19:18 -08:00
Unknown W. Brackets
385417effe
Log jit misses at runtime instead of compile time.
...
Really, it could be very different after all... this shouldn't be
all that slow, I guess.
2013-01-19 20:11:17 -08:00
Unknown W. Brackets
75a3872923
Log missed jit ops for poor man profiling.
2013-01-19 19:58:25 -08:00
Unknown W. Brackets
862c88d61a
More warning fixes, switches and printfs, etc.
...
This time ones not reported by Visual Studio.
2013-01-19 18:32:37 -08:00
Unknown W. Brackets
e78223d2c0
Since flipping the op is easy, also do lb/lh.
2013-01-19 16:25:57 -08:00
Unknown W. Brackets
5e8f1917ee
Fix 64-bit memory dereferencing.
2013-01-19 16:25:57 -08:00
Unknown W. Brackets
90e6f0b7df
Optimize static memory read/writes in jit as well.
...
Like the arm jit does.
2013-01-19 16:25:56 -08:00
Unknown W. Brackets
c64966c16e
Oops, lost the CONDITIONAL_DISABLE.
2013-01-19 16:25:56 -08:00
Unknown W. Brackets
37fb64ac83
Fast path scratchpad too, shouldn't be expensive.
2013-01-19 11:11:45 -08:00
Unknown W. Brackets
72e547420d
Refactor jit slowmem, add lbu to jit since easy.
2013-01-19 11:11:45 -08:00
Unknown W. Brackets
5305017fc3
Properly save registers before the slowmem call.
2013-01-19 11:11:44 -08:00
Unknown W. Brackets
f1295f6262
Don't muck with currentMIPS->r in the slowmem jit.
2013-01-19 11:11:44 -08:00
Henrik Rydgard
229d4e9f32
Buildfix
2013-01-19 13:10:52 +01:00
Henrik Rydgard
3ae4cd4e2a
Correct an include path
2013-01-19 11:43:31 +01:00
Henrik Rydgård
c20cef2399
Merge pull request #440 from unknownbrackets/jit-minor
...
Micro optimizations to x86 jit mem when fastmem is off
2013-01-19 02:04:34 -08:00
Unknown W. Brackets
2ad77aa9c8
Gotta flush before the call, too.
2013-01-19 01:53:11 -08:00
Unknown W. Brackets
09422d5adb
Avoid a func if possible when fastmem is off.
2013-01-19 01:02:47 -08:00
Unknown W. Brackets
bc75b68c36
Also jit sh and lhu, which are pretty common ops.
2013-01-18 23:10:51 -08:00
Unknown W. Brackets
d5ae85201c
Optimize sw/lw even under safe memory.
...
They're very common instructions, so shaving cycles helps.
2013-01-18 23:10:50 -08:00
Unknown W. Brackets
11c5cdfdb0
Refactor out all the CheckJitBreakpoint()s.
...
Ah, much cleaner.
2013-01-18 21:33:23 -08:00
Unknown W. Brackets
5080285e54
Add breakpoints for delay slots.
...
Wanted to do this in CompileAt(), darn not nice delay slots.
2013-01-18 21:12:58 -08:00
Unknown W. Brackets
40ae3dfe45
Correctly break at branch points in x86 jit.
2013-01-18 21:12:53 -08:00
Unknown W. Brackets
beac991a9e
Clear jit cache when changing breakpoints.
...
For now, only when paused. I don't think clearing the cache while
running is an awesome idea.
2013-01-18 20:12:53 -08:00
Unknown W. Brackets
a9293c8923
Add breakpoints to x86 jit for easier debugging.
...
They should be really fast so leaving them on in release.
2013-01-18 20:10:37 -08:00
Sacha
5552f93fca
Fixes for Qt, Symbian and Blackberry. Reorder and remove some redundant ArmEmitter includes so that _SP doesn't conflict.
2013-01-17 11:00:07 +10:00
Unknown W. Brackets
74cce1439b
Allow downcount to be negative.
...
This fixes threads/alarm/alarm and ctrl/sampling2/sampling2, which were
broken in 674911dd
.
The downcount can go negative for a few reasons, and was signed before.
2013-01-17 01:14:49 -08:00
Henrik Rydgard
e34288070c
Don't flush the icache from the start, also don't sleep. May help JIT slowdowns.
2013-01-15 20:42:45 +01:00