Henrik Rydgard
f57f8170d3
ARMjit: Optimize mfv, mtv
2013-11-08 12:43:48 +01:00
Henrik Rydgard
dff0c431aa
ARMjit: Optimize mfc1, mtc1
2013-11-08 12:43:48 +01:00
Henrik Rydgard
5a95e267fb
Add an optimization to discard registers at the end of functions when possible.
...
Works in some games but crashes many so hiding it for now. Do not add UI.
2013-11-08 12:43:48 +01:00
Sacha
803148b8ca
ARMv6: Fix offsets > 4096 for litpool. More aggressive check.
...
Somehow Scooby Doo gets to offsets of ~4200 unless i drop the threshold down to ~3200. Not sure why the offset can jump by so much in one instruction.
Makes Scooby Doo playable now instead of showing a blue screen in the main game. Likely affects other games.
2013-11-08 16:07:05 +10:00
Henrik Rydgard
6eb7f94065
Implement vsgn in x86/x64 and ARM jit
2013-11-07 15:29:13 +01:00
Henrik Rydgard
32c95af820
ARM: Some zero-register fixes
2013-11-07 15:29:13 +01:00
Henrik Rydgard
91393093bc
Re-enable the "nice delay slot" optimization on ARM
2013-11-07 15:29:12 +01:00
Henrik Rydgård
1e158fa652
ARM vtx dec: Preserving our FP scratch register appears to improve
...
stability.
Also added some logging.
2013-11-06 11:47:26 +01:00
Henrik Rydgård
9be3f8fc0a
Use ANDI2R instead of a BIC with a too large parameter
2013-11-06 10:50:30 +01:00
Sacha
81d3df0841
ARMJIT: Minor optimisations for armv6 and armv7.
2013-11-06 15:28:26 +10:00
Henrik Rydgard
6483c0c2cd
Two minor armjit optimizations
2013-11-05 16:25:01 +01:00
Sacha
a5011e3ff0
Improve swap usage in MIPS. ARMv6 can use REV/REV16. Intepreter can use existing swap functions.
2013-11-06 01:20:35 +10:00
Unknown W. Brackets
732ae13ebb
Fast path CallSyscall where possible.
...
It seems we're spending a decent amount of time there, which isn't
entirely unexpected. We can eliminate some things easily.
2013-11-04 07:59:37 -08:00
Sacha
5613b86864
Use NEON texture decoder on Blackberry and iOS. Use ARMV7 defines.
2013-11-03 15:59:10 +10:00
Unknown W. Brackets
9a707f6c00
Fix typo, ARM build.
2013-10-17 15:28:50 -07:00
Unknown W. Brackets
2e8ef3027f
Write the retaddr to rd, not always ra, in jalr.
...
Thanks go entirely to @Kingcom for pointing this out.
Don't know of any games not using RA as the rd.
2013-10-17 07:39:33 -07:00
Henrik Rydgard
aa3cf34fc1
Jit: Fix valgrind warnings.
...
The first time PrefixStart was entered with startDefaultPrefix = true, it would
call EatPrefix, which checks the so far entirely uninitialized prefixXFlags.
2013-10-16 22:33:48 +02:00
Sacha
18b7503dd5
Fix rounding errors in armjit.
2013-10-14 19:24:13 +10:00
Henrik Rydgard
e08ac100ce
Update native with workaround for #4078 and add some comments
2013-10-08 20:11:01 +02:00
Unknown W. Brackets
3a1b6fb269
Fix some sign comparison warnings.
2013-10-05 11:13:41 -07:00
Henrik Rydgard
04b911a03b
Change a bunch of "MayHavePrefix" to "HasUnknownPrefix".
...
Should be safe, I think none of these have any sane use of prefixes anyway.
2013-09-28 20:07:58 +02:00
Henrik Rydgard
41a988774f
ARM: implement vhdp
2013-09-28 20:07:57 +02:00
Henrik Rydgard
6aecfe3998
Trying the VROT disable experiment again, this time in the right file...
2013-09-16 00:14:05 +02:00
Unknown W. Brackets
50e9e45d65
Check version in each DoState() func.
...
They bail on PointerWrap error or bad version.
2013-09-14 20:23:03 -07:00
Henrik Rydgård
fb48defa75
Experiment: Disable VROT on x86 32-bit except on Windows where I know it works.
2013-09-10 18:17:00 +02:00
Unknown W. Brackets
157b682344
Always use fastmem for sw/lw on SP.
2013-09-07 22:44:18 -07:00
Henrik Rydgard
8c88dff5a4
More log categories, use them (and existing ones). Improve log config.
2013-09-07 22:02:55 +02:00
Henrik Rydgard
324cde5a79
Let's actually use the log category mechanism. A first step.
2013-09-07 21:19:21 +02:00
Henrik Rydgard
78d3ee3d6a
Misc cleanup, mostly logging code
2013-09-07 13:01:19 +02:00
Unknown W. Brackets
b558189c37
Just invalidate blocks on ClearCacheAt().
...
This makes it safe to call from a jitted syscall, etc.
2013-09-01 00:32:43 -07:00
Unknown W. Brackets
97aa1a631e
Improve typesafety in the x86 regalloc.
2013-08-24 19:41:10 -07:00
Unknown W. Brackets
109ad17ac6
Use a typesafe struct for opcodes.
...
Also, correctly read delayslots using Read_Instruction on ARM.
2013-08-24 15:36:24 -07:00
Unknown W. Brackets
b37f09cedf
Make MIPSInfo a struct for typesafety.
...
Found a bug in ReadsFromReg().
2013-08-24 13:22:10 -07:00
Unknown W. Brackets
1ed8edb0d3
Avoid some dangerous hex constant widths.
2013-08-22 23:23:48 -07:00
Unknown W. Brackets
8327cd0f8e
Clean up some inconsistency in jit branches on arm.
2013-08-16 02:02:56 -07:00
Henrik Rydgard
0348403f61
Turn vcmp back on again, let's not trust the one-operand arm vcmp for now
2013-08-15 22:57:04 +02:00
Unknown W. Brackets
2758634a0f
Avoid overhead calling __KernelIdle().
...
~1.8% improvement in Zettai Hero Project.
2013-08-15 01:35:17 -07:00
Unknown W. Brackets
5387e5c717
Oops, typo.
2013-08-15 00:38:53 -07:00
Unknown W. Brackets
df50e03146
Add a safety log for cases we don't handle right.
2013-08-14 23:14:25 -07:00
Unknown W. Brackets
e639f8d15f
Handle branches in VFPU delay slots better.
...
Based on tests on a PSP, all branches are attempted. The behavior is
technically undefined.
It seems to take the delay slot's target if they differ and both pass.
This is the behavior the interpreter has, but it's more work in jit.
Since only a couple games seem to do this, and clearly expect this
behavior, this fixes all known cases of #1926 .
2013-08-14 22:56:02 -07:00
Henrik Rydgard
0a5c942daf
Temporarily disable VCMP on ARM. Let's see if this fixes #3071 , if so I have debugging to do.
2013-08-14 17:41:16 +02:00
Henrik Rydgard
fecd9d5f78
Minor optimization, sketch on an lvl.q jit implementation
2013-08-11 22:12:15 +02:00
Henrik Rydgard
408e570469
Typo fix
2013-08-10 23:41:29 +02:00
Henrik Rydgard
394f590c36
Failed attempt at implementing vsge/vslt. Dunno what's wrong but disabled for now.
2013-08-10 18:39:27 +02:00
Henrik Rydgard
dce3c9449b
Attempt to quickfix vf2i but failed, so disabling it. Should fix #3084
2013-08-07 18:07:49 +02:00
Henrik Rydgard
a281c1a899
ARMjit: vmin/vmax
2013-08-06 23:17:10 +02:00
Henrik Rydgard
201282f28c
JIT: Implement vf2i (truncate mode only)
2013-08-06 19:08:15 +02:00
Henrik Rydgard
c71b304ba1
Fix a classic bug again (now in armjit), + a minor opt
2013-08-06 15:22:19 +02:00
Henrik Rydgard
1d81698728
JIT (both): Implement VCMOV
2013-08-06 13:29:17 +02:00
Henrik Rydgard
140d12c3db
ARMJIT: Fix and enable cross product
2013-08-06 11:55:11 +02:00