New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SPU LLVM: Precompilation Improvements and misc fixes #14595
Conversation
elad335
commented
Aug 31, 2023
•
edited
edited
- A fix for SPU fdunction discovery, do not count non-r0 link branches and branch-to-self or branch-to-next. A bit sad but this cuts found functions in TLoU from around 22xx to exacly 1800.
- Fix GOTO in the debugger in some conditions.
- Fix instriuction scrolling direction with the arrow keys in the debugger.
- Add CRC check to prevent use of invalid cache entries. (not perfect of-course)
- Add minimal discovery of tail-calls for precompilation.
- Revert a PPU Analyzer change, may address [Regression] God of War Ascension [BCES01741] crash after starting a New Game on a new profile (#14547) #14600.
|
||
u32 upper_bound = (m_start_addr + (steps * 4)) & address_mask; | ||
|
||
if (m_cpu && m_cpu->id_type() == 0x55) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can just incorporate this entire check into section above
7f39a92
to
017586e
Compare
I have added some super-experiemental commits regarding SPU LLVM precompilation, now the count of functions should be about the same but it would take much more time to compile because it detects more instruction blocks. |
RPCS3.log.gz |
Methodology:
Also, I don't know if it's related to the PR or if the game just happened to glitch, but the AI felt very stupid, they weren't capturing their base point that was uncaptured plus one NPC got stuck without moving, there could be a SPU logic bug somewhere |
What is actually counted in precompilation is functions not modules so it's a different thing, I may change the text later. |
ec822d1
to
d2cb3c5
Compare
d2cb3c5
to
585fc7a
Compare
dfad076
to
bead931
Compare
Do not detect branch to next.
* Fix OOM if size is too high. * Fix out-of-bounds access beyond SPU_LS_SIZE.
Uninitialized data is better than overwritten data. Affects SPU Cache (unprotected writes).
bead931
to
5945fd7
Compare