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
Henrik Rydgard
74a46f60ed
Initialize downcount.
2013-01-14 23:03:37 +01:00
Henrik Rydgard
66ee2e2933
Remove ArmABI.cpp/h, didn't need that stuff.
2013-01-14 22:19:18 +01:00
Henrik Rydgard
8ce9ce10bf
Merge branch 'master' into armjit
...
Conflicts:
Common/ArmEmitter.h
Common/CPUDetect.cpp
2013-01-14 20:46:17 +01:00
Henrik Rydgard
0a374047b1
initial implementation of vh2f, used in Saint Seiya
2013-01-14 20:44:10 +01:00
Henrik Rydgard
ae20d6c00f
Constify some tables
2013-01-13 20:38:52 +01:00
Henrik Rydgard
64f953c5e1
8-byte align the ARM stack. Type some ideas.
2013-01-12 12:26:44 +01:00
Henrik Rydgard
674911ddba
Move downcount into MIPSState for efficiency, enable block linking.
...
On ARM JIT we can now reach it through the cpu context reg.
2013-01-12 00:44:18 +01:00
Henrik Rydgard
36eaabd917
Some constant propagation. Comment out sltiu which causes problems aiming in puzbob (???)
2013-01-11 23:42:58 +01:00
Henrik Rydgard
37be2600be
Shave some more instructions
2013-01-11 18:50:05 +01:00
Henrik Rydgard
bc9c3db303
Armjit: Add option for fastmem. Small optimization.
2013-01-11 17:25:54 +01:00
Henrik Rydgard
9b791b9953
More ARMJIT optimization
2013-01-11 15:22:31 +01:00