Commit graph

54 commits

Author SHA1 Message Date
Henrik Rydgård
ce378b231f Delete CPU.cpp/h , cleanup 2013-12-30 00:11:29 +01:00
Unknown W. Brackets
bde1d14f25 Update hashmap before deciding to abort.
Otherwise, if you delete it, it can never generate one.
2013-12-27 00:29:37 -08: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
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
Henrik Rydgard
6937719c3b Minor fixes around function replacement, a couple of math funcs 2013-12-18 10:35:50 +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
Unknown W. Brackets
b74c62b6a6 Switch to a 64-bit function hash. 2013-12-14 14:56:04 -08: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
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
Kingcom
5844d0107b Rewrite SymbolTable 2013-11-27 13:33:30 +01:00
Kingcom
a277706489 Workaround for symbols defined in .sym files 2013-11-16 10:53:47 +01:00
Kingcom
aae08173f1 Extend follow functionality of disassembly 2013-11-05 21:20:21 +01:00
Kingcom
95b466fc4f Fix step over for jalr 2013-11-03 10:58:31 +01:00
Kingcom
eeb86fc105 Fix step over handling of fpu branches 2013-11-03 09:54:58 +01:00
Henrik Rydgård
07c818251c Some formatting cleanup.
Yeah, I said we shouldn't do big overhauls..
2013-10-18 14:39:04 +02:00
adrian17
7e3f35dfe3 Removed redundant includes 2013-09-30 19:05:04 +02:00
Unknown W. Brackets
efe92666fb Allow more cases in IsDelaySlotNiceVFPU(). 2013-09-05 23:24:31 -07:00
Unknown W. Brackets
9a048e9cf6 Don't assume GPRs can't be used with vfpu. 2013-09-05 23:12:14 -07:00
Unknown W. Brackets
8ccd3773d9 Open files using wide functions on win32.
Fixes #3432.
2013-08-27 00:28:46 -07:00
Unknown W. Brackets
97aa1a631e Improve typesafety in the x86 regalloc. 2013-08-24 19:41:10 -07:00
Unknown W. Brackets
52d6080fb4 Pass in some analysis results, don't use yet. 2013-08-24 15:36:24 -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
4495559b75 Clean up register usage analysis a bit. 2013-08-24 15:36:23 -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
49ab98c7fd Use atomic operations on Android + warning fixes. 2013-08-12 08:51:49 -07:00
Unknown W. Brackets
aac6712974 Get rid of IsDelaySlotInfoSafe since flags are ok. 2013-08-11 20:49:34 -07:00
Unknown W. Brackets
152f28aeac Clean up the immediate MIPS table, mostly flags. 2013-08-11 18:01:48 -07:00
Unknown W. Brackets
4ebf355ece Simplify some MIPS table flags. 2013-08-11 17:02:00 -07:00
Henrik Rydgard
e93c2abe27 x86 jit: implement vfim. Move some stuff to native. cleanup for armjit logging 2013-07-30 22:28:05 +02:00
Kingcom
723f242f0c Rerwrote GetOpcodeInfo and adapted MipsTables for it 2013-07-30 11:29:30 +02:00
Kingcom
32f1ca91fd -add function to get relevant opcode information for the disassembly
-put it to use to clean up code
2013-07-30 10:14:56 +02:00
Unknown W. Brackets
0ca8f5c655 Improve performance of ScanForFunctions().
Mostly affects games with a lot of modules and exports.
2013-07-06 16:58:17 -07:00
Unknown W. Brackets
1beb19f827 Clear the debug symbol map on shutdown.
Instead of polluting the next game.
2013-05-26 16:29:21 -07:00
Unknown W. Brackets
44e20fb213 Correctly detect bltzal as func calls in debug. 2013-05-26 16:24:58 -07:00
Unknown W. Brackets
fcfcadaef2 Fix potential crash looking up block_num. 2013-04-28 20:59:13 -07:00
niepodam
94c2f0cd9d Fix build with gcc 4.8.0 2013-04-04 19:16:15 +02:00
Unknown W. Brackets
51d5b84108 Fix some misc HLE warnings. 2013-02-18 09:04:43 -08:00
Unknown W. Brackets
2748437032 Add support for FPU and VFPU for nice delay slots. 2013-01-24 20:18:18 -08:00
Unknown W. Brackets
f7ebddc4a3 Whitelist common delay slot ops with outreg info. 2013-01-24 19:59:33 -08:00
Unknown W. Brackets
75cbe18afc Simplify nice delay slot detect, and yes for noop.
NOOP seems very common so this should already benefit speed a bit.
2013-01-24 08:29:32 -08:00
Unknown W. Brackets
3444fc8981 Avoid some memory writes on jr.
Should improve tight mips function loops a bit.
2013-01-24 01:23:50 -08:00