-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
EE JIT: Implement SDR/SDL, LDR/LDL instructions #4739
Conversation
2ab475e
to
25b54e7
Compare
Okay, I wrote a program that can be used to bench this PR
Refer to the comment below for an updated benching. |
Yeah I imagine unless there's a game that really spams them, there is a negotiable change with this PR, but hey, at least it's not dropping back to the interpreter i guess xD |
311f981
to
44d407b
Compare
44d407b
to
b7b4967
Compare
Did some optimisation and got it to these results
The move in the middle that brings in dummyValue is super slow, if I remove that line, my FPS in Fobes' tests almost doubles, but I don't know why it's slow to begin with, there seems to be some contention with the read done before it. but MOVQ (64bit) was faster than MOVDQA (128bit), so that helps it suck less. |
Also fixed slight optimisation bug in SDL
889a878
to
26d35bc
Compare
From this point on in the PR, LDL and LDR has also been added |
LDL/LDR only benchmarks. Remember this is BEST CASE SCENARIO with custom made ELF's
|
Combined LD/SD L/R test ELFs results:
|
SDL/SDR PAL
|
Description of Changes
Added SDR/SDL, LDR/LDL instructions, in all their evilness (most of the code is just reading/writing the value in memory)
Rationale behind Changes
Stops the EE JIT dropping down to the interpreter for these instructions, theoretically faster
Suggested Testing Steps
Play games, make sure no new bad graphics or crashes happen.