mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 06:21:26 +12:00
SPU Disasm: fix absolute addressing in some instructions.
STQA, LQA, BRA, BRASL instructions.
This commit is contained in:
parent
a921af1e96
commit
b138d25b97
1 changed files with 5 additions and 5 deletions
|
@ -724,7 +724,7 @@ public:
|
||||||
}
|
}
|
||||||
void STQA(spu_opcode_t op)
|
void STQA(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
DisAsm("stqa", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16));
|
DisAsm("stqa", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16 - dump_pc / 4));
|
||||||
}
|
}
|
||||||
void BRNZ(spu_opcode_t op)
|
void BRNZ(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
|
@ -744,15 +744,15 @@ public:
|
||||||
}
|
}
|
||||||
void BRA(spu_opcode_t op)
|
void BRA(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
DisAsm("bra", DisAsmBranchTarget(op.i16));
|
DisAsm("bra", DisAsmBranchTarget(op.i16 - dump_pc / 4));
|
||||||
}
|
}
|
||||||
void LQA(spu_opcode_t op)
|
void LQA(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
DisAsm("lqa", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16));
|
DisAsm("lqa", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16 - dump_pc / 4));
|
||||||
}
|
}
|
||||||
void BRASL(spu_opcode_t op)
|
void BRASL(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
DisAsm("brasl", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16));
|
DisAsm("brasl", spu_reg_name[op.rt], DisAsmBranchTarget(op.i16 - dump_pc / 4));
|
||||||
}
|
}
|
||||||
void BR(spu_opcode_t op)
|
void BR(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
|
@ -908,7 +908,7 @@ public:
|
||||||
//0 - 6
|
//0 - 6
|
||||||
void HBRA(spu_opcode_t op)
|
void HBRA(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
DisAsm("hbra", DisAsmBranchTarget((op.r0h << 7) | op.rt), DisAsmBranchTarget(op.i16));
|
DisAsm("hbra", DisAsmBranchTarget((op.r0h << 7) | op.rt), DisAsmBranchTarget(op.i16 - dump_pc / 4));
|
||||||
}
|
}
|
||||||
void HBRR(spu_opcode_t op)
|
void HBRR(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue