mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-10-30 07:11:38 +00:00
Implement subfme
This commit is contained in:
parent
4e77be82ce
commit
fd85a418a8
1 changed files with 10 additions and 0 deletions
|
|
@ -1744,6 +1744,16 @@ bool Recompiler::Recompile(
|
||||||
println("\t{}.s64 = {} - {}.s64;", r(insn.operands[0]), int32_t(insn.operands[2]), r(insn.operands[1]));
|
println("\t{}.s64 = {} - {}.s64;", r(insn.operands[0]), int32_t(insn.operands[2]), r(insn.operands[1]));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PPC_INST_SUBFME:
|
||||||
|
println("\t{}.u64 = ~{}.u64 + {}.ca - 1;", temp(), r(insn.operands[1]), xer());
|
||||||
|
println("\t{}.ca = ({}.u64 < ~{}.u64) || ({}.u64 == ~{}.u64 && {}.ca);", xer(),
|
||||||
|
temp(), r(insn.operands[1]), temp(), r(insn.operands[1]), xer());
|
||||||
|
println("\t{}.u64 = {}.u64;", r(insn.operands[0]), temp());
|
||||||
|
if (strchr(insn.opcode->name, '.'))
|
||||||
|
println("\t{}.compare<int32_t>({}.s32, 0, {});",
|
||||||
|
cr(0), r(insn.operands[0]), xer());
|
||||||
|
break;
|
||||||
|
|
||||||
case PPC_INST_SYNC:
|
case PPC_INST_SYNC:
|
||||||
// no op
|
// no op
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue