[dynarmic] write inline better flag seq
This commit is contained in:
parent
b12989c077
commit
43f717be5d
1 changed files with 4 additions and 7 deletions
|
@ -514,24 +514,21 @@ void AxxEmitX64::EmitExclusiveWriteMemoryInline(AxxEmitContext& ctx, IR::Inst* i
|
||||||
conf.recompile_on_exclusive_fastmem_failure,
|
conf.recompile_on_exclusive_fastmem_failure,
|
||||||
});
|
});
|
||||||
|
|
||||||
code.cmp(al, 0);
|
code.xor_(status.cvt32(), status.cvt32()); //dep-break
|
||||||
|
code.test(code.al, code.al);
|
||||||
code.setz(status.cvt8());
|
code.setz(status.cvt8());
|
||||||
code.movzx(status.cvt32(), status.cvt8());
|
|
||||||
code.jmp(*end, code.T_NEAR);
|
code.jmp(*end, code.T_NEAR);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
code.call(wrapped_fn);
|
code.call(wrapped_fn);
|
||||||
code.cmp(al, 0);
|
code.xor_(status.cvt32(), status.cvt32()); //dep-break
|
||||||
|
code.test(code.al, code.al);
|
||||||
code.setz(status.cvt8());
|
code.setz(status.cvt8());
|
||||||
code.movzx(status.cvt32(), status.cvt8());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
code.L(*end);
|
code.L(*end);
|
||||||
|
|
||||||
EmitExclusiveUnlock(code, conf, tmp, eax);
|
EmitExclusiveUnlock(code, conf, tmp, eax);
|
||||||
|
|
||||||
ctx.reg_alloc.DefineValue(inst, status);
|
ctx.reg_alloc.DefineValue(inst, status);
|
||||||
|
|
||||||
EmitCheckMemoryAbort(ctx, inst);
|
EmitCheckMemoryAbort(ctx, inst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue