mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-10 03:06:27 +00:00
ir: Implement GetGEFlags, SetGEFlags
This commit is contained in:
@@ -30,6 +30,7 @@ void GetSetElimination(IR::Block& block) {
|
||||
RegisterInfo z;
|
||||
RegisterInfo c;
|
||||
RegisterInfo v;
|
||||
RegisterInfo ge;
|
||||
} cpsr_info;
|
||||
|
||||
const auto do_set = [&block](RegisterInfo& info, IR::Value value, Iterator set_inst) {
|
||||
@@ -146,6 +147,14 @@ void GetSetElimination(IR::Block& block) {
|
||||
do_get(cpsr_info.v, inst);
|
||||
break;
|
||||
}
|
||||
case IR::Opcode::SetGEFlags: {
|
||||
do_set(cpsr_info.ge, inst->GetArg(0), inst);
|
||||
break;
|
||||
}
|
||||
case IR::Opcode::GetGEFlags: {
|
||||
do_get(cpsr_info.ge, inst);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
if (inst->ReadsFromCPSR() || inst->WritesToCPSR()) {
|
||||
cpsr_info = {};
|
||||
|
||||
Reference in New Issue
Block a user