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
JitArm64: Fix divwx BindToRegister condition #11114
JitArm64: Fix divwx BindToRegister condition #11114
Conversation
a is being used both as an immediate and as a register here. Since it's being used as a register, it must be loaded.
|
Nice catch! |
|
@JosJuice do you have Rogue Squadron? It still has a black screen. F-Zero was fixed though. edit: from the console |
|
Is this Rogue Squadron 2 or Rogue Squadron 3? I don't have Rogue Squadron 2, but Rogue Squadron 3 works for me. |
|
It’s RS2. |
|
I've pushed an untested second commit that may or may not help with the RS2 problem. |
2be1def
to
319bb12
Compare
|
No dice. |
|
Yeah, now that I look more closely, the second commit doesn't actually fix anything. But it makes the code less fragile in case the behavior of the register cache were to change in the future, so I think I'll keep it. |
In case the register we're binding is the same as the immediate register, we should fetch the immediate before calling BindToRegister. The way the register cache currently works, calling GetImm after BindToRegister actually does work, but it's better to not rely on it.
319bb12
to
8984777
Compare
|
Probably not a good idea to leave this broken for long, and this looks reasonable to me, so... |
a is being used both as an immediate and as a register here. Since it's being used as a register, it must be loaded. Fixes an F-Zero GX regression from PR #11094.