Henrik Rydgard
8a904fe478
Some JIT cleanup
2013-04-27 01:32:02 +02:00
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