diff --git a/PowerRecomp/main.cpp b/PowerRecomp/main.cpp index 3ddbbf3..687e54e 100644 --- a/PowerRecomp/main.cpp +++ b/PowerRecomp/main.cpp @@ -626,12 +626,12 @@ int main() case PPC_INST_MULHW: // TODO: might be having 32 bit truncation here - std::println(f, "\tctx.r{}.s64 = (ctx.r{}.s32 * ctx.r{}.s32) << 32;", insn.operands[0], insn.operands[1], insn.operands[2]); + std::println(f, "\tctx.r{}.s64 = int64_t(ctx.r{}.s32 * ctx.r{}.s32) << 32;", insn.operands[0], insn.operands[1], insn.operands[2]); break; case PPC_INST_MULHWU: // TODO: might be having 32 bit truncation here - std::println(f, "\tctx.r{}.u64 = (ctx.r{}.u32 * ctx.r{}.u32) << 32;", insn.operands[0], insn.operands[1], insn.operands[2]); + std::println(f, "\tctx.r{}.u64 = uint64_t(ctx.r{}.u32 * ctx.r{}.u32) << 32;", insn.operands[0], insn.operands[1], insn.operands[2]); break; case PPC_INST_MULLD: @@ -687,7 +687,7 @@ int main() break; case PPC_INST_ORIS: - std::println(f, "\tctx.r{}.u64 = ctx.r{}.u64 | {}", insn.operands[0], insn.operands[1], insn.operands[2] << 16); + std::println(f, "\tctx.r{}.u64 = ctx.r{}.u64 | {};", insn.operands[0], insn.operands[1], insn.operands[2] << 16); break; case PPC_INST_RLDICL: