Commit Graph
3004 Commits
Author SHA1 Message Date
Unknown W. Brackets f300f46b9c Speed up MIPSGetInstruction() by 35%.
It's not that hot, but gets called a lot when loading modules / running
tests.  Well, and also interpreter.

Some of the previous checks were just not necessary (we never have Rese in
the tables, for example, and let's just not.)
2014-03-02 10:20:41 -08:00
Unknown W. Brackets eca06c60c7 Spend a bit less time in Read_Instruction on load. 2014-03-02 10:20:40 -08:00
Unknown W. Brackets ce518a432f x86jit: Add a missing unknown prefix check. 2014-02-21 09:47:28 -08:00
Unknown W. Brackets f2ba0f136d Fix stack overflow on x64 with memchecks, darn it. 2014-02-16 19:18:08 -08:00
Unknown W. Brackets 61d4e2196e Simplify vwbn.s slightly. 2014-02-16 00:00:29 -08:00
Unknown W. Brackets 34c6530b21 Implement vwbn.s, not sure what it's doing...
This passes all the tests I could throw at it.  Fixes #1849.
2014-02-15 23:51:41 -08:00
Unknown W. Brackets 3714fabad6 Implement vsbn.s, fixes #3409.
Not sure if .q, etc. can work - won't compile, and I doubt any games try
it.  Just tried a basic implementation with reporting.
2014-02-15 21:40:13 -08:00
Unknown W. Brackets 8948990871 Optimize searching for existing symbols.
Checking every time is slow, we should just skip by the address.  Some is
just the locking overhead.
2014-02-14 22:26:35 -08:00
Unknown W. Brackets 7c2d36e802 Don't add to the symbol map what was found there.
Wasn't hurting anything, but slight hit on performance.
2014-02-14 22:13:32 -08:00
Unknown W. Brackets 26b4335637 Optimize symbol map in debug mode a bit more.
Avoid UpdateActiveSymbols().
2014-02-14 21:49:20 -08:00
Unknown W. Brackets d279dcd454 Fix renaming a function from disassembly. 2014-02-11 07:45:13 -08:00
Henrik Rydgård b1d6eefb8a Call UpdateActiveSymbols only once from MIPSAnalyst instead of for every recognized function.
Reduces startup slowdown when using a function signature file drastically.
2014-02-11 11:21:56 +01:00
Henrik Rydgard ef6e6083dc Including <cstddef> here was reported to fix a build problem. 2014-02-07 23:05:03 +01:00
lioncash aaf834c032 Fix the destruction proxy blocks in DestroyBlock() in JitBlockCache.cpp.
Prior to this, it was possible for the wrong block to be deleted multiple times.
2014-02-03 14:40:37 -05:00
The Dax 427970750b Remove redundant break in MIPSAsm.cpp. 2014-01-30 01:48:32 -05:00
Henrik Rydgård 2b05a60d9d Clear out the jit pointer on shutdown. Some cleanup. 2014-01-28 11:32:54 +01:00
Henrik Rydgård efd44a6933 Merge branch 'debugger2' of https://github.com/unknownbrackets/ppsspp into unknownbrackets-debugger2
Conflicts:
	Core/Debugger/Breakpoints.cpp
2014-01-26 23:10:37 +01:00
Unknown W. Brackets 5e01119d60 Update the debugger on a break instruction.
Before it would still show "Stop" even though it was paused.
2014-01-26 11:57:40 -08:00
Unknown W. Brackets fe2b62c27d Make the "on change" checkbox for memchecks work.
But, for now, only on sw and similar instructions, the rest don't work
yet and just always break.
2014-01-26 11:57:39 -08:00
Unknown W. Brackets 76afb2a8d5 Avoid returning points from the symbol map.
Now that it uses a lookup, this is even more dangerous.  But, the maps
could be reordered while it's trying to print the pointer and cause that
data to become invalid.

This should be safe from race conditions.
2014-01-25 21:40:23 -08:00
Unknown W. Brackets 648c0f6685 Avoid an infinite loop on bad stack walk.
If the address is wrong, it'll re-trigger debug mode, which will re-walk
the stack, which will continue ad infinitum.
2014-01-18 09:58:48 -08:00
Unknown W. Brackets 2347498667 x86jit: Use templates to avoid some void * casts.
Makes it a bit cleaner and potentially safer.
2014-01-18 09:57:13 -08:00
Unknown W. Brackets 79864a5ee0 Fix some initialization order warnings. 2014-01-10 22:21:24 -08:00
pal1000 e7672655d3 Fix warning in MIPS/MIPSAnalyst.cpp 2014-01-06 10:48:52 +02:00
Unknown W. Brackets 1abb001e7f Don't hashmap functions smaller than 16 bytes.
Otherwise, small stub funcs "replicate" annoyingly.
2014-01-04 01:36:36 -08:00
Aapo Rantalainen ed6b8e34ab Fix missing includes (stdio.h) 2014-01-01 22:31:03 +02:00
Unknown W. Brackets f14361c3b8 Add a bunch more missing cstring includes. 2013-12-30 21:37:19 -08:00
Henrik Rydgård e5e17fbc6e More include cleanup. Hoping for very slightly faster compile times.. 2013-12-30 10:49:05 +01:00
Henrik Rydgård 00c32ddadb Mostly get rid of including "Globals.h" 2013-12-30 10:17:11 +01:00
Henrik Rydgård be74da8f3c More include cleanup, hopefully buildfix Symbian 2013-12-30 00:23:04 +01:00
Henrik Rydgård ce378b231f Delete CPU.cpp/h , cleanup 2013-12-30 00:11:29 +01:00
Henrik Rydgård 79ff2f0ba8 Start untangling our include mess a little. 2013-12-29 23:34:45 +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 Rydgård 1741fa54a7 Merge pull request #4919 from unknownbrackets/load-module
Implement sceKernelLoadModuleBufferUsbWlan()
2013-12-27 02:24:51 -08: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 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