Fixes PPU disasm for branch opcodes

This commit is contained in:
TGEnigma 2018-04-16 14:43:45 +02:00 committed by Ivan
parent da6f98f310
commit 6baf675205
2 changed files with 8 additions and 7 deletions

View file

@ -905,13 +905,13 @@ void PPUDisAsm::SC(ppu_opcode_t op)
void PPUDisAsm::B(ppu_opcode_t op) void PPUDisAsm::B(ppu_opcode_t op)
{ {
const u32 ll = op.ll; const u32 li = op.li;
const u32 aa = op.aa; const u32 aa = op.aa;
const u32 lk = op.lk; const u32 lk = op.lk;
if (m_mode == CPUDisAsm_CompilerElfMode) if (m_mode == CPUDisAsm_CompilerElfMode)
{ {
Write(fmt::format("b 0x%x, %d, %d", ll, aa, lk)); Write(fmt::format("b 0x%x, %d, %d", li, aa, lk));
return; return;
} }
@ -920,16 +920,16 @@ void PPUDisAsm::B(ppu_opcode_t op)
case 0: case 0:
switch (aa) switch (aa)
{ {
case 0: DisAsm_BRANCH("b", ll); break; case 0: DisAsm_BRANCH("b", li); break;
case 1: DisAsm_BRANCH_A("ba", ll); break; case 1: DisAsm_BRANCH_A("ba", li); break;
} }
break; break;
case 1: case 1:
switch (aa) switch (aa)
{ {
case 0: DisAsm_BRANCH("bl", ll); break; case 0: DisAsm_BRANCH("bl", li); break;
case 1: DisAsm_BRANCH_A("bla", ll); break; case 1: DisAsm_BRANCH_A("bla", li); break;
} }
break; break;
} }

View file

@ -32,6 +32,7 @@ union ppu_opcode_t
ppu_bf_t<s32, 16, 14> ds; // 16..29, signed ppu_bf_t<s32, 16, 14> ds; // 16..29, signed
ppu_bf_t<s32, 11, 5> vsimm; // 11..15, signed ppu_bf_t<s32, 11, 5> vsimm; // 11..15, signed
ppu_bf_t<s32, 6, 26> ll; // 6..31, signed ppu_bf_t<s32, 6, 26> ll; // 6..31, signed
ppu_bf_t<s32, 6, 24> li; // 6..29, signed
ppu_bf_t<u32, 20, 7> lev; // 20..26 ppu_bf_t<u32, 20, 7> lev; // 20..26
ppu_bf_t<u32, 16, 4> i; // 16..19 ppu_bf_t<u32, 16, 4> i; // 16..19
ppu_bf_t<u32, 11, 3> crfs; // 11..13 ppu_bf_t<u32, 11, 3> crfs; // 11..13