Henrik Rydgård
00c32ddadb
Mostly get rid of including "Globals.h"
2013-12-30 10:17:11 +01:00
Unknown W. Brackets
e6b2d00a2f
Avoid reseved identifiers like _SP, etc.
...
R_SP is not that bad.
2013-12-29 14:25:34 -08:00
Henrik Rydgard
455a73bba7
Bugfix replace function inlining (compilerPC needs to be increased). Misc.
2013-12-20 15:37:37 +01:00
Henrik Rydgård
3957b5fb42
Call ProxyBlock in ArmJit too. Plus various cleanup and one more string function.
2013-12-19 11:45:39 +01:00
Unknown W. Brackets
438361d0bc
Clean up code pointer naming for the jit.
...
Now it properly identifies thunk code which is actually a decent percent
when fastmem is off at least.
2013-12-18 23:57:39 -08:00
Henrik Rydgard
1cb7965cb1
Jit feature preparation: Introduce "proxy blocks".
...
When these are invalidated, the block they point to gets invalidated too.
Will be useful to implement various types of block merging and function inlining
without affecting correctness of cache clears etc.
Also, with this commit we can now fully inline replaced functions. fabsf() boils
down to 1-2 instructions and the block continues, for example.
2013-12-19 00:39:49 +01:00
Henrik Rydgard
6937719c3b
Minor fixes around function replacement, a couple of math funcs
2013-12-18 10:35:50 +01:00
Henrik Rydgard
1d2f1efd06
Fix function replacement on ARM
2013-12-18 00:09:08 +01:00
Henrik Rydgard
2eab4aa1bf
Play around with function replacement. Turned off by default of course.
2013-12-17 23:40:27 +01:00
Henrik Rydgard
2140892074
Initial preparations for ability to replace game functions with custom implementations.
...
Also auto-saves hashmap additions and reapplies the hashmap on function
rename so that if you rename a function that exists in several copies
they will all be labelled.
Note that actual function replacement is not activated yet.
2013-12-17 12:27:20 +01:00
Henrik Rydgard
5a02ea9ff4
Fix cache instruction on ARM
2013-12-10 13:26:32 +01:00
Henrik Rydgard
2d8429ac48
Assorted cleanup in the MIPS emulation
2013-12-10 13:15:16 +01:00
Henrik Rydgard
0a5aa78011
ARMJit: Fix bug in instruction mtv, affecting SSX
...
SSX still has other problems on ARM though.
2013-12-10 00:19:18 +01:00
Henrik Rydgård
483bf4c74d
Don't leak icon textures when shutting down the graphics system.
...
Happens on Android task switching for example.
Also update the README (got rid of kitkat fullscreen temporary because
I can't get it to work reliably).
2013-12-09 15:28:47 +01:00
Henrik Rydgård
9e42086e21
Logspam reduction
2013-12-09 13:45:17 +01:00
Henrik Rydgard
245aeecbc0
ARM: Check for VFPv4 before using CVT.F32.F16 (vh2f).
...
Issue #4730 might be fixed by this.
2013-12-05 22:55:31 +01:00
Henrik Rydgard
32f479b0a6
Assorted log spam reductions.
...
Also let Java know of some important events. Not used for anything yet.
2013-12-04 17:43:00 +01:00
Henrik Rydgard
f696650437
Implement vasin (fastasin5 from unittest) in ARM jit, add a sanity check.
2013-12-01 14:14:04 +01:00
Unknown W. Brackets
5d2ff64252
Support for modified jit-enabled VerySleepy.
...
This allows profiling the jit. Should have zero perf impact when not
in use, since it's entirely triggered by VerySleepy.
2013-11-30 19:20:21 -08:00
Henrik Rydgard
23e57b71e0
Revert "Shave one instruction off slti and slt on ARM."
...
This reverts commit 04742e00fc
.
2013-11-30 16:06:16 +01:00
Henrik Rydgard
04742e00fc
Shave one instruction off slti and slt on ARM.
2013-11-30 15:53:21 +01:00
Unknown W. Brackets
dffa35ef2f
When ins is used with a zero argument, don't OR.
...
Seems it's used effectively to mask out bits with rs=zero. Makes sense...
2013-11-29 09:17:12 -08:00
Sacha
90b5097d45
Travis: add Blackberry. Improve Blackberry out-of-box compile.
2013-11-29 00:18:41 +10:00
Henrik Rydgard
55500d4bb6
Reorder VFPU registers in memory so that we can flush and reload them in bulk more often.
...
Doesn't actually do that yet, that's for the NEON branch.
2013-11-28 13:27:51 +01:00
Henrik Rydgard
e5e23f3ce1
ARM: Fix vsgn. Some vertex decoder tweaks.
2013-11-24 18:21:47 +01:00
Henrik Rydgard
030e6460cc
ARM: NEON-optimize software skinning
2013-11-24 18:03:42 +01:00
Henrik Rydgard
f650b23c90
ARM: Add NEON widening and narrowing moves, and float/int convert.
...
Experiment a little in the vertex decoder.
2013-11-24 13:30:28 +01:00
Henrik Rydgard
db016f7001
ARMJIT: Disable vsgn, reported to break Miami Vice
2013-11-23 13:00:35 +01:00
Unknown W. Brackets
c50ab6d6aa
armjit: Fix divu when divisor is a constant 1.
...
Fixes #4539 and #4520 .
2013-11-19 13:24:15 -08:00
Henrik Rydgard
bd3a03ad1d
Quick buildfix. Last commit was meant to go on a WIP branch but meh :)
2013-11-19 21:44:18 +01:00
Henrik Rydgard
ab3037112f
Some scaffolding for a future VFPU-on-NEON implementation
2013-11-19 21:41:48 +01:00
Henrik Rydgard
99af10cb09
Get rid of bool disablePrefixes in ARM build (already gone in x86)
2013-11-19 21:41:48 +01:00
Henrik Rydgard
dca457e6df
Optimize multiple sv.s and lv.s calls on ARM. Also some cleanup.
2013-11-19 21:41:47 +01:00
Henrik Rydgard
5bb3824dcf
Implement vocp on ARM and x86.
2013-11-19 21:41:47 +01:00
Henrik Rydgard
9f5402ce54
Use hardware half-to-float on ARM when available.
2013-11-17 14:17:13 +01:00
Henrik Rydgard
4e0520131a
Tiny optimization
2013-11-15 20:32:23 +01:00
Henrik Rydgard
d17a5fefea
ARM: Fix divide by 0 in software divide used on CPUs without HW divide.
2013-11-15 20:24:20 +01:00
Unknown W. Brackets
5128083d93
Mask out fcr31 bits that can't be set on a PSP.
2013-11-14 23:57:28 -08:00
Unknown W. Brackets
3c73d0d1f1
armjit: Read fpu control regs other than 0/31 as 0.
...
Always seem to give zero, regardless of the value of fcr31, etc.
2013-11-14 23:39:39 -08:00
Unknown W. Brackets
763eff181d
Fix handling of jalr when delay slot changes rd.
2013-11-14 23:39:13 -08:00
Unknown W. Brackets
26f5922174
Return the correct value for fcr0/fir.
...
This is what the PSP actually returns, it's read only.
2013-11-14 23:39:08 -08:00
Unknown W. Brackets
98fb2e0402
armjit: Refer to R11 as MEMBASEREG for clarity.
2013-11-14 23:37:48 -08:00
Sacha
e3bdb3e09b
Disable LitPool as it is causing crashes with Vertex Decoder JIT. Performance seems to be almost unaffected since the IMM changes.
2013-11-15 14:12:00 +10:00
Sacha
20e8a81268
Switch to compile-time ARMV7 define.
2013-11-15 11:20:39 +10:00
Henrik Rydgard
9a14d33372
Disable software divide that appears to be buggy, see #4539
2013-11-14 17:25:02 +01:00
Henrik Rydgård
ef8631c57f
Cache VFPU_CTRL_CC in a register
2013-11-12 17:58:29 +01:00
Henrik Rydgard
df3765a320
Arm jit: optimize ES, NS conditions in vcmp. Bugfix TR.
2013-11-12 14:43:12 +01:00
Unknown W. Brackets
f4b5e8a4c1
Merge pull request #4518 from hrydgard/fpcond
...
ARMJIT: Cache fpcond in a register to avoid store/load between compare and branch
2013-11-12 01:50:16 -08:00
Henrik Rydgård
17074f5a7f
Cache fpcond in a register to avoid store/load between compare and branch
2013-11-12 10:33:38 +01:00
Unknown W. Brackets
32504ed46e
armjit: Prioritize spilling regs not used soon.
...
This may improve trashing.
2013-11-12 00:03:39 -08:00