Commit Graph
196 Commits
Author SHA1 Message Date
Henrik Rydgard 5293c152c6 Untested support for Android-x86. No idea if this actually works. 2013-03-21 20:52:33 +01:00
Unknown W. Brackets 9561f1d9c1 iOS: Protect/unprotect isn't needed for jit. 2013-03-14 02:16:51 -07:00
Unknown W. Brackets ead6983ad2 Don't lock armjit memory before aligning code. 2013-03-14 01:16:28 -07:00
Sacha f88bf8bbff Attempt at fixing JIT on iOS. Can only have PROT_WRITE or PROT_EXEC enabled. So toggle between them as needed. 2013-03-14 14:40:01 +10:00
Unknown W. Brackets c4ab0855b4 Make sure interpreter and jit savestates match. 2013-03-08 08:49:21 -08:00
Unknown W. Brackets 028e85dc92 Cleanup some differences between the two jits. 2013-03-07 02:08:44 -08:00
Henrik Rydgard a69b09a831 More work on TestRunner, now runs all the CPU tests. 2013-03-07 00:22:39 +01:00
Sacha d77632bfb0 Fix literal pools on games with very large code blocks (eg. Zero no Kieski).
Was flushing after an offset of 4088 which did not take in to account that a single MIPS instruction can turn in to numerous ARM instructions. Chose a safer value of 4020.
Was insta-flushing after reaching this offset value. Some code blocks are over 8K in size. Use a partialFlushOffset to keep track of when the next flush is required.
Was protecting flush branch manually. Can use B_CC(CC_AL) for this instead.
2013-03-07 02:25:27 +10:00
Sacha 268d16bd24 Use correct args for STR(..) throughout armjit. 2013-03-07 00:59:07 +10:00
Sacha 9152d2f2bb Armjit: Optimise swl+swr and lwl+lwr cases that can be combined to a single sw or lw. Add shift flags to STR/LDR. Add EatInstruction to ArmJit. 2013-03-06 02:11:36 +10:00
Unknown W. Brackets f4bde1a263 Android / iOS buildfix. 2013-03-04 00:09:37 -08:00
Sacha 0fc6b60874 Fix Lit Pools for cases where offset goes out of range. For example: Zero no Kiseki has a block that is 7K large. 2013-03-04 14:36:23 +10:00
Sacha bdfe24a86b ARMv6 literal pool method. 2013-03-04 14:26:45 +10:00
Henrik Rydgard 5a09885a59 Port over much of unknown's vfpu jit work to arm. Untested. 2013-02-20 00:04:21 +01:00
Henrik Rydgard e32721c72a Merge branch 'master' into armjit-fpu
Conflicts:
	Core/MIPS/MIPSVFPUUtils.cpp
	Core/MIPS/x86/CompVFPU.cpp
	GPU/GLES/VertexDecoder.cpp
2013-02-19 00:50:33 +01:00
Unknown W. Brackets 9d490a8b50 Proper ARM buildfix. 2013-02-18 08:03:45 -08:00
Unknown W. Brackets 33c1a2b4fa ARM buildfix. 2013-02-18 01:54:25 -08:00
Henrik Rydgard 81589b67e5 Save one instruction on jal, shorten block exits by one instruction (moved to dispatcher). 2013-02-15 23:37:59 +01:00
Henrik Rydgard fdee111bca armjit-fpu: Compile VFPU prefix setting 2013-02-15 23:18:59 +01:00
Henrik Rydgard 23cddab1d7 Some mostly disabled armjit VFPU stuff. 2013-02-15 22:38:39 +01:00
Henrik Rydgard 048cf35922 More ARMJit FPU work - some instructions and optimizations. 2013-02-14 00:02:09 +01:00
Henrik Rydgard ba1171f15d Couple more armjit-fpu instructions. Turn down logging a bit. 2013-02-11 23:39:30 +01:00
Henrik Rydgard 4bdb2045a7 Armjit-FPU: Fix lots of bugs, impl some stuff. Still nothing working. 2013-02-11 23:10:11 +01:00
Henrik Rydgard 3a11b030d6 Merge branch 'master' into armjit-fpu
Conflicts:
	Core/MIPS/ARM/ArmCompFPU.cpp
	Core/MIPS/x86/CompFPU.cpp
2013-02-10 15:57:16 +01:00
Henrik Rydgard f75d14d3b5 ARM FPU jit work 2013-02-10 15:53:56 +01:00
Henrik Rydgard 78923f5538 Jit a little more (vfpu single load/store, transfer instructions) 2013-02-10 12:14:55 +01:00
Henrik Rydgard d8f4e27926 Rename ARMABI_MOVI2R to MOVI2R 2013-01-31 23:41:05 +01:00
Henrik Rydgard 739b76a55a Armjit: branch code cleanup #1 2013-01-30 01:05:36 +01:00
Henrik Rydgard 3ae4cd4e2a Correct an include path 2013-01-19 11:43:31 +01: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
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 9b791b9953 More ARMJIT optimization 2013-01-11 15:22:31 +01:00
Henrik Rydgard aa59ddad09 Merge AsmRoutineManager into Jit. Allows safe short branches. 2013-01-11 01:59:26 +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 fb7116ccd5 Add more checks. 2013-01-09 22:55:58 +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 dafc9f62df Regcache fixes, etc. thing still don't work when I turn on addiu :( 2013-01-09 11:20:48 +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 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