Lioncash
ef75e9acd8
Core: Convert logging over to fmt pt.5
...
Converts the remaining PowerPC code over to fmt-capable logging.
Now, all that's left to convert over are the lingering remnants within
the frontend code.
2020-11-25 13:23:48 -05:00
Lioncash
febd1c3dba
Core: Replace usages of StringFromFormat with fmt where applicable
...
Migrates usages of StringFromFormat over to using fmt.
2019-11-11 07:32:57 -05:00
Techjar
ff972e3673
Reformat repo to clang-format 7.0 rules
2019-05-06 18:48:04 +00:00
degasus
b8b4b4a383
PowerPC: More idle loop detections.
2019-04-20 20:52:39 +02:00
degasus
55db7c7a05
Jit64: Optimized idle skipping detection.
2019-04-20 20:52:39 +02:00
degasus
5333c17cca
Jit: Fix branch following.
...
The idea of this code was to not unroll loops, but it was completely broken.
So we've unrolled all loops, but only up to the second iteration.
Honestly, a better check would test if we branch to code which is already in the compiling block. But this is out of scope for now.
But testing shows that this unrolling actually improve the performance. So instead of fixing this bug, this check can be dropped.
2018-07-28 16:35:42 +02:00
spycrab
df61e527da
Core/PowerPC: Add option to disable branch following
2018-07-09 22:58:40 +02:00
Lioncash
e18824e3f3
PPCAnalyst: get rid of code buffer size variable
...
Rather than have a separate independent variable that we need to keep
track of in conjunction with the JIT code buffer size itself, amend the
analyst code to use the code buffer constant in JitBase.
Now if the size ever changes, then the analyst will automatically adjust
to handle it.
2018-06-09 08:17:17 -04:00
Lioncash
f4ec419929
SymbolDB: Namespace code under the Common namespace
...
Moves more common code into the Common namespace where it belongs.
2018-05-27 18:01:40 -04:00
Lioncash
ced806a00a
PPCAnalyst: Replace memset usages with list initialization
...
Allows the use of non-trivially-copyable objects within the relevant
structs should it ever be needed.
2018-05-19 18:37:54 -04:00
Lioncash
5de99288bf
PPCAnalyst: Clean up indexing expressions in Analyze()
...
Given we just access the same member repeatedly, just use a reference
and avoid repeated unnecessary indexing.
2018-05-19 15:31:38 -04:00
Lioncash
3a8a67025e
PPCAnalyst: Make CodeBuffer an alias for std::vector<CodeOp>
...
This class effectively acted as a "discount vector", that would simply
allocate memory and then delete it in the destructor when it goes out of
scope.
We can just use a std::vector directly to reduce this boilerplate.
2018-05-18 17:19:45 -04:00
Lioncash
b9aad3310e
PowerPC: Move MMU-specifics from PowerPC.h to MMU.h
...
PowerPC.h at this point is pretty much a general glob of stuff, and it's
unfortunate, since it means pulling in a lot of unrelated header
dependencies and a bunch of other things that don't need to be seen by
things that just want to read memory.
Breaking this out into its own header keeps all the MMU-related stuff
together and also limits the amount of header dependencies being
included (the primary motivation for this being the former reason).
2018-05-17 19:18:55 -04:00
Tillmann Karras
4cfd900c67
Fix some warnings
2018-04-17 14:10:05 +01:00
Léo Lam
52905a5fae
Merge pull request #6627 from sepalani/map-strip
...
PPCSymbolDB: Do not truncate fixed size symbols
2018-04-13 20:48:28 +02:00
spycrab
40bb9974f2
Reformat all the things!
2018-04-12 21:28:39 +02:00
Sepalani
7d36165489
PPCSymbolDB: Do not truncate fixed size symbols
...
Fix comparison warning
2018-04-10 21:50:33 +04:00
Lioncash
9c5115a627
PPCAnalyst: Simplify boolean assignments in SetInstructionStats()
...
Ternaries here aren't necessary if all we're checking against is if
something is non-zero
2018-04-08 21:42:43 -04:00
Lioncash
f2b2f5b4c7
PPCAnalyst: Make ReorderType an enum class
...
Makes the values strongly typed and doesn't dump them into the class
itself.
2018-04-08 21:38:19 -04:00
Léo Lam
c82da2b978
Remove dead code
...
Unused, old code that is intended to be removed should not be left in
comments -- that is what version control is for.
2018-03-31 14:56:27 +02:00
Lioncash
2381aeecc3
PPCTables: Namespace all exposed functions
...
It's somewhat inconsistent to have two straggler functions outside the
namespace.
2018-03-24 16:46:12 -04:00
aldelaro5
c54e56793a
Add a log type for Symbols and move symbols related logs to it
...
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2018-03-22 14:57:28 -04:00
Lioncash
6428cee939
PPCTables: Make the op type enum an enum class
...
Reduces the amount of identifiers dropped into the global namespace when
the PPCTables header is included.
2018-03-18 18:53:58 -04:00
Lioncash
50a476c371
Assert: Uppercase assertion macros
...
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
gamemasterplc
4908d79a71
Remove Function Address Symbol Mask
...
The upper 4 bits were masked out of function addresses prior when generating symbols.
2017-09-11 15:39:22 -05:00
Sepalani
93b5a5369b
SymbolDB: Blank stripped symbol name fixed
2017-08-16 04:07:19 +01:00
Lioncash
dd4203bec8
Core: Remove unnecessary includes
...
Also moves a cpp file's related header file to the top of the inclusions if it isn't already there.
2017-06-15 18:52:22 -04:00
Shawn Hoffman
e1a3e41bf3
fix various instances of -1 being assigned to unsigned types
2017-06-07 19:52:07 -07:00
Lioncash
b676edd80c
Core: include what you use
...
Eliminates a swath of indirectly included standard headers
2017-06-07 01:20:48 -04:00
Leo Lam
5d6074f157
Merge pull request #5366 from sepalani/set-sym-size
...
CodeView: Set Symbol Size/End Address added
2017-06-03 19:00:45 +02:00
Sepalani
aa65ca4b6b
PPCAnalyst: Use the proper RAM check
2017-05-17 02:10:26 +01:00
Sepalani
40c243df28
PPCAnalyst: Fix off by one instruction
2017-05-07 04:56:16 +01:00
Sepalani
93ba6aa9f2
PPCAnalyst: Function calls without link added
2017-05-07 04:55:36 +01:00
Sepalani
95d0a48759
PPCAnalyst: EvaluateBranchTarget improved
2017-05-07 04:55:36 +01:00
Sepalani
7f552581e7
CodeView: Set Symbol Size added
2017-05-06 13:18:00 +01:00
Mat M
7c3905a612
Merge pull request #5140 from sepalani/signature_db
...
SignatureDB: Rewrite FormatHandler API
2017-05-02 19:23:46 -04:00
Sepalani
2f0f63fdbc
PPCAnalyst: Prevent a crash when outside the RAM
2017-04-30 02:45:10 +01:00
Anthony
cb2e7a6cac
Merge pull request #5240 from sepalani/find_handlers
...
PPCAnalyst: Find interrupt/exception handlers
2017-04-29 12:44:41 -07:00
Anthony
4d3a794942
Merge pull request #5238 from sepalani/ppc-analyst-rfi
...
PPCAnalyst: Support return from interrupt
2017-04-29 12:44:18 -07:00
Sepalani
e8f52e467b
PPCAnalyst: Find interrupt/exception handlers
2017-04-29 20:21:21 +01:00
Sepalani
7cee62bbb3
PPCAnalyst: Support return from interrupt
2017-04-29 20:16:31 +01:00
Sepalani
dd039cd311
PPCAnalyst: Skip nop alignment
2017-04-29 20:10:52 +01:00
Sepalani
3f2f3679cd
PPCAnalyst: Prevent PanicAlert due to invalid read
2017-04-29 20:08:25 +01:00
Sepalani
a9b52ce91b
SignatureDB: Rewrite FormatHandler API
2017-04-29 19:50:20 +01:00
Sepalani
6eca605284
Fix wrong address in zz_ symbol name
2017-03-25 01:21:13 +00:00
Lioncash
aaa6430db6
PPCAnalyst: Make SetInstructionStats' opinfo parameter a const pointer
...
trivial const-correctness stuff
2017-02-18 04:14:26 -05:00
degasus
ca10cf5afe
PPCAnalyst: Update comments
2017-01-28 03:03:04 +01:00
degasus
f31b25fe39
Jit64: Enable branch following.
2017-01-28 02:48:56 +01:00
degasus
70caf447b9
JitCache: Get physical addresses from PPCAnalyst.
...
So we support all kind of degenerated blocks now, not just range+length based ones.
2017-01-23 20:33:44 +01:00
degasus
3529af61c4
JitAnalyzer: Remove jit block cache workaround.
2017-01-23 20:33:44 +01:00