mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-05 22:18:16 +01:00
emit_x64_data_processing: EmitSub: Use cmp where possible
This commit is contained in:
parent
e926f0b393
commit
8c4463a0c1
2 changed files with 17 additions and 7 deletions
|
|
@ -27,7 +27,7 @@ bool TranslatorVisitor::CCMP_reg(bool sf, Reg Rm, Cond cond, Reg Rn, Imm<4> nzcv
|
|||
const IR::U32U64 operand1 = X(datasize, Rn);
|
||||
const IR::U32U64 operand2 = X(datasize, Rm);
|
||||
|
||||
const IR::NZCV then_flags = ir.NZCVFrom(ir.AddWithCarry(operand1, ir.Not(operand2), ir.Imm1(1)));
|
||||
const IR::NZCV then_flags = ir.NZCVFrom(ir.SubWithCarry(operand1, operand2, ir.Imm1(1)));
|
||||
const IR::NZCV else_flags = ir.NZCVFromPackedFlags(ir.Imm32(flags));
|
||||
ir.SetNZCV(ir.ConditionalSelect(cond, then_flags, else_flags));
|
||||
return true;
|
||||
|
|
@ -53,7 +53,7 @@ bool TranslatorVisitor::CCMP_imm(bool sf, Imm<5> imm5, Cond cond, Reg Rn, Imm<4>
|
|||
const IR::U32U64 operand1 = X(datasize, Rn);
|
||||
const IR::U32U64 operand2 = I(datasize, imm5.ZeroExtend<u32>());
|
||||
|
||||
const IR::NZCV then_flags = ir.NZCVFrom(ir.AddWithCarry(operand1, ir.Not(operand2), ir.Imm1(1)));
|
||||
const IR::NZCV then_flags = ir.NZCVFrom(ir.SubWithCarry(operand1, operand2, ir.Imm1(1)));
|
||||
const IR::NZCV else_flags = ir.NZCVFromPackedFlags(ir.Imm32(flags));
|
||||
ir.SetNZCV(ir.ConditionalSelect(cond, then_flags, else_flags));
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue