mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-08 15:38:19 +01:00
A64/translate/branch: bug: Read-after-write error in BLR
This commit is contained in:
parent
9f57283a30
commit
19da68568e
3 changed files with 18 additions and 7 deletions
|
|
@ -347,10 +347,18 @@ void A64EmitX64::EmitTerminalImpl(IR::Term::PopRSBHint, IR::LocationDescriptor i
|
|||
}
|
||||
|
||||
void A64EmitX64::EmitTerminalImpl(IR::Term::If terminal, IR::LocationDescriptor initial_location) {
|
||||
Xbyak::Label pass = EmitCond(terminal.if_);
|
||||
EmitTerminal(terminal.else_, initial_location);
|
||||
code->L(pass);
|
||||
EmitTerminal(terminal.then_, initial_location);
|
||||
switch (terminal.if_) {
|
||||
case IR::Cond::AL:
|
||||
case IR::Cond::NV:
|
||||
EmitTerminal(terminal.then_, initial_location);
|
||||
break;
|
||||
default:
|
||||
Xbyak::Label pass = EmitCond(terminal.if_);
|
||||
EmitTerminal(terminal.else_, initial_location);
|
||||
code->L(pass);
|
||||
EmitTerminal(terminal.then_, initial_location);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitTerminalImpl(IR::Term::CheckBit terminal, IR::LocationDescriptor initial_location) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue