Commit graph

47 commits

Author SHA1 Message Date
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
Mathias Tillman
b780e39397 Fixed various potential bugs and compiler warnings 2013-01-07 15:57:19 +01:00
Unknown W. Brackets
ec753a3575 Fix some ignored error / shadowing warnings. 2012-12-21 16:23:21 -08:00
Henrik Rydgard
64cc573703 Switch to "GPL 2.0 or later" for various reasons. I wrote most of the code I imported from Dolphin (which is GPL2-but-not-later), so it should be OK. 2012-11-04 23:24:00 +01:00
Henrik Rydgard
4f7ad15758 Add snapshot of the whole source code. 2012-11-01 16:19:01 +01:00