Commit Graph
988 Commits
Author SHA1 Message Date
Unknown W. Brackets ab9bea068c Jit reg+reg compile time, and avoid flushing EDX. 2013-01-25 00:16:55 -08:00
Unknown W. Brackets ce5f393fb8 Hit immediates in the ALU better and more simply. 2013-01-25 00:16:55 -08:00
Unknown W. Brackets 2748437032 Add support for FPU and VFPU for nice delay slots. 2013-01-24 20:18:18 -08:00
Unknown W. Brackets f7ebddc4a3 Whitelist common delay slot ops with outreg info. 2013-01-24 19:59:33 -08:00
Unknown W. Brackets d1909a1581 Add a quick disable define for nice delay slots. 2013-01-24 19:11:03 -08:00
Unknown W. Brackets 75cbe18afc Simplify nice delay slot detect, and yes for noop.
NOOP seems very common so this should already benefit speed a bit.
2013-01-24 08:29:32 -08:00
Unknown W. Brackets 2eba209f64 Move around the jit nice delay slot logic.
Nice delay slots don't not save flags, they run before the CMP.
2013-01-24 07:31:51 -08:00
Unknown W. Brackets 3444fc8981 Avoid some memory writes on jr.
Should improve tight mips function loops a bit.
2013-01-24 01:23:50 -08:00
Unknown W. Brackets c1757ee166 Check downcount in jit after a syscall. 2013-01-23 22:25:35 -08:00
Henrik Rydgard 29f1ae5f70 add skeleton implementation of "cache" instruction 2013-01-22 22:03:41 +01:00
Henrik Rydgard 82d5ae021e VFPU: cap/floor float-to-int conversion instructions 2013-01-22 22:03:40 +01:00
Unknown W. Brackets dbe597ce64 Buildfix Android, darn. 2013-01-22 08:23:27 -08:00
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