1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-25 20:22:30 +01:00

PPU DisAsm: Fixup conditional indirect branches disasm

This commit is contained in:
Eladash 2024-03-18 14:55:43 +02:00 committed by Elad.Ash
parent 77485747f1
commit 1ca83bc629
2 changed files with 12 additions and 8 deletions

View File

@ -241,28 +241,32 @@ protected:
{
fmt::append(last_opcode, "%-*s cr%d,cr%d", PadOp(), op, cr0, cr1);
}
void DisAsm_INT3(std::string_view op, const int i0, const int i1, const int i2)
void DisAsm_INT3(std::string_view op, s32 i0, s32 i1, s32 i2)
{
fmt::append(last_opcode, "%-*s %d,%d,%d", PadOp(), op, i0, i1, i2);
}
void DisAsm_INT1(std::string_view op, const int i0)
void DisAsm_INT1(std::string_view op, s32 i0)
{
fmt::append(last_opcode, "%-*s %d", PadOp(), op, i0);
}
void DisAsm_BRANCH(std::string_view op, const int pc)
void DisAsm_BRANCH(std::string_view op, s32 pc)
{
fmt::append(last_opcode, "%-*s 0x%x", PadOp(), op, DisAsmBranchTarget(pc));
}
void DisAsm_BRANCH_A(std::string_view op, const int pc)
void DisAsm_BRANCH_A(std::string_view op, s32 pc)
{
fmt::append(last_opcode, "%-*s 0x%x", PadOp(), op, pc);
}
void DisAsm_B2_BRANCH(std::string_view op, u32 b0, u32 b1, const int pc)
void DisAsm_B2_BRANCH(std::string_view op, u32 b0, u32 b1, s32 pc)
{
fmt::append(last_opcode, "%-*s %d,%d,0x%x ", PadOp(), op, b0, b1, DisAsmBranchTarget(pc));
}
void DisAsm_CR_BRANCH(std::string_view op, u32 cr, const int pc)
void DisAsm_CR_BRANCH(std::string_view op, u32 cr, s32 pc)
{
fmt::append(last_opcode, "%-*s cr%d,0x%x ", PadOp(), op, cr, DisAsmBranchTarget(pc));
}
void DisAsm_CR_BRANCH_HINT(std::string_view op, u32 cr, u32 bh)
{
fmt::append(last_opcode, "%-*s cr%d,0x%x ", PadOp(), op, cr, bh);
}
};

View File

@ -1488,7 +1488,7 @@ void PPUDisAsm::BCLR(ppu_opcode_t op)
return;
}
DisAsm_CR_BRANCH(final, bi / 4, bh);
DisAsm_CR_BRANCH_HINT(final, bi / 4, bh);
}
void PPUDisAsm::CRNOR(ppu_opcode_t op)
@ -1586,7 +1586,7 @@ void PPUDisAsm::BCCTR(ppu_opcode_t op)
final += lk ? "ctrl"sv : "ctr"sv;
if (sign) final += sign;
DisAsm_CR_BRANCH(final, bi / 4, bh);
DisAsm_CR_BRANCH_HINT(final, bi / 4, bh);
}
void PPUDisAsm::RLWIMI(ppu_opcode_t op)