Commit Graph
969 Commits
Author SHA1 Message Date
Henrik Rydgard 215a269b34 Optimize dl_write_matrix just because. not expecting a big speedup... 2013-12-21 12:39:34 +01:00
Henrik Rydgard 455a73bba7 Bugfix replace function inlining (compilerPC needs to be increased). Misc. 2013-12-20 15:37:37 +01:00
Henrik Rydgard a53a032120 Prevent hashes from coming out differently after replacement. 2013-12-20 13:53:03 +01:00
Henrik Rydgård 28a518bfa7 Reformat JitBlockCache 2013-12-19 13:34:06 +01:00
Henrik Rydgård 2eb1f89ad0 Rework proxy blocks a bit 2013-12-19 13:31:13 +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 9bb03072e6 Increase the min size of an "interesting" func.
Seeing a bunch of forwarders and stuff that won't hash safely.
2013-12-18 23:58:45 -08: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 1e300447e1 Fix some replace-related bugs. Add "jal" replace inlining, not activated. 2013-12-18 16:27:23 +01:00
Henrik Rydgard 2d4c28826a Show replaced instructions correctly in disassembly 2013-12-18 11:42:19 +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 ca9efb1619 Linux build fix 2013-12-17 12:41:45 +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
Unknown W. Brackets b74c62b6a6 Switch to a 64-bit function hash. 2013-12-14 14:56:04 -08:00
Henrik Rydgard d394282bc6 Don't crash trying to clear the icache in interpreter mode 2013-12-10 20:34:07 +01:00
Henrik Rydgard 5a02ea9ff4 Fix cache instruction on ARM 2013-12-10 13:26:32 +01:00
Henrik Rydgard 70d492e7e2 "cache" instruction: Implement icache invalidation.
Fixes broken math in Tony Hawk so it must be doing self modifying code. Nasty.
2013-12-10 13:15:28 +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 980de339ce Fix buildfix: there shouldn't be a zero there at all. 2013-12-09 16:53:46 +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 Rydgård e76fc5e56c Clang 3.4 buildfix 2013-12-09 12:52:03 +01:00
Unknown W. Brackets 0636a65ad9 Use ReadEntireFile() a few more places.
This fixes one or two minor memory leaks.
2013-12-08 12:02:37 -08:00
Unknown W. Brackets f4890288ce Oops, fix a bad sort for the hashmap.
Fixes assertion warnings.  Thanks @Kingcom.
2013-12-06 21:19:05 -08:00
Unknown W. Brackets 2ec73a65ed Use a common func to generate default func names. 2013-12-06 00:17:20 -08:00
Unknown W. Brackets 735968ba9b Add a setting to maintain a global func hash map.
This makes it easier to deal with functions that have a common
implementation between multiple games, e.g. libc funcs.
2013-12-06 00:11:49 -08: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
Unknown W. Brackets 505f509503 Detect tail call when scanning functions. 2013-12-01 22:08:39 -08:00
Unknown W. Brackets 1bccfa4141 Look for downward jumps for elses when scanning.
Otherwise, we often end the function earlier than it should be.
2013-12-01 21:28:09 -08:00
Unknown W. Brackets 43be44947f Correctly reuse symbol map entries when scanning.
Before we created one huge function in place of the old.
2013-12-01 20:25:51 -08:00
Unknown W. Brackets b2971314b8 Fix hash detection of branches to jr ra.
This makes it more correctly identify functions.
2013-12-01 20:23:16 -08:00
Unknown W. Brackets dd2e996838 Fix some type comparison warnings. 2013-12-01 11:21:16 -08:00
Unknown W. Brackets a69ddf840c Fix some formatting warnings. 2013-12-01 11:21:15 -08: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 5ba94aa939 Correct jit block size for profiling. 2013-12-01 02:34:37 -08: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 ec05146ffd Improve vfpu disasm for a few instructions. 2013-11-29 10:07:15 -08: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 50a589ea72 Extend sanity check for vfpu reordering array. 2013-11-28 13:27:52 +01:00
Henrik Rydgard f9f6e9492d Reorder vfpu data in saved kernel contexts when loading in a new version. 2013-11-28 13:27:51 +01: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 Rydgård ed13c21a37 Merge pull request #4649 from Kingcom/Debugger
Rewrite symbol table
2013-11-27 07:43:25 -08:00