Commit Graph
988 Commits
Author SHA1 Message Date
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
Henrik Rydgard ba804cfa89 Cleanup ArmAsm, add idea 2013-01-11 02:28:02 +01:00
Henrik Rydgard aa59ddad09 Merge AsmRoutineManager into Jit. Allows safe short branches. 2013-01-11 01:59:26 +01:00
Henrik Rydgard 8cd5ae933f sw/lw 2013-01-10 12:14:23 +01:00
Henrik Rydgard 9dcdb6df90 Jit work! Shifts, 3-operand ops, turn O2 back on... 2013-01-10 01:20:25 +01:00
Henrik Rydgard 71652874c2 Fix jit bugs related to the dirty flag, and more:
* Tweak block logging
* Faster calls-to-interpreter.
2013-01-10 00:03:51 +01:00
Henrik Rydgard 209f1d79a9 SpillLock is now per MIPS register instead of per ARM register. Fix array size. 2013-01-09 23:14:21 +01:00
Henrik Rydgard fb7116ccd5 Add more checks. 2013-01-09 22:55:58 +01:00
Henrik Rydgard 2f4e6eaf01 Remove allocLock until we need it 2013-01-09 22:46:27 +01:00
Henrik Rydgard dafe2c389c More regalloc fixing and tweaks. Still not working the way I want it. 2013-01-09 13:38:44 +01:00
Henrik Rydgard 17210c5364 Generate immediates as rot+shift when possible. 2013-01-09 11:52:49 +01:00
Henrik Rydgard dafc9f62df Regcache fixes, etc. thing still don't work when I turn on addiu :( 2013-01-09 11:20:48 +01:00
Henrik Rydgard ea3055322c Oops 2013-01-09 00:45:54 +01:00
Henrik Rydgard 789c4781c0 Merge remote-tracking branch 'origin/master' into armjit
Conflicts:
	Core/HLE/sceKernelThread.cpp
2013-01-09 00:43:44 +01:00
Henrik Rydgard 81c6c4805d Small dispatcher optimizations, cleanup. Still no cube. 2013-01-09 00:42:03 +01:00
Henrik Rydgard f5c94775b9 Cleanup 2013-01-09 00:12:02 +01:00
Henrik Rydgard 76481a300c Icache must be invalidated. Jit now starts to run, but there's no cube in cube.elf! 2013-01-08 23:52:11 +01:00
Henrik Rydgard 8915677241 More progress but it weirds out... 2013-01-08 21:24:42 +01:00
Henrik Rydgard e3a4ed510c Fix bug in x86 jit :) 2013-01-08 19:30:28 +01:00
Henrik Rydgard 8c06edc47b It's getting close to the first totally unoptimized jit run. 2013-01-08 17:03:17 +01:00
Henrik Rydgard b78ad83f00 R10, not R9, points to the mips state... 2013-01-08 14:29:03 +01:00
Henrik Rydgard 7b4cfb702c Get rid of CPU class so that MIPSState can be POD, enabling offsetof 2013-01-08 14:20:06 +01:00
Henrik Rydgard b3fd1ff34c Lots of various work on the ARM jit. It executes a couple of blocks now. 2013-01-08 13:49:52 +01:00
Henrik Rydgard 5a7f4acc06 More armjit work 2013-01-08 00:26:42 +01:00
Henrik Rydgard a2ff416534 Rename files. Rewrite ArmRegCache from scratch. 2013-01-07 22:33:09 +01:00
Mathias Tillman b780e39397 Fixed various potential bugs and compiler warnings 2013-01-07 15:57:19 +01:00
Henrik Rydgard 7cb95bbc89 Merge branch 'master' into armjit
Conflicts:
	CMakeLists.txt
	Core/MIPS/ARM/RegCache.cpp
2013-01-07 10:25:02 +01:00
Henrik Rydgard 38ae09b50f Merge remote-tracking branch 'origin/armjit' into armjit
Conflicts:
	android/jni/MenuScreens.cpp
2013-01-07 10:22:50 +01:00