Skip to content

Commit 7ef5da6

Browse files
committed
Fix indexing on certain instructions
1 parent 8c02961 commit 7ef5da6

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

PowerRecomp/recompiler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2204,13 +2204,13 @@ bool Recompiler::Recompile(
22042204
case PPC_INST_VSRAB:
22052205
// TODO: vectorize, ensure endianness is correct
22062206
for (size_t i = 0; i < 16; i++)
2207-
println("\t{}.s8[{}] = {}.s8[{}] >> ({}.u8[{}] & 0x7);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i * 4);
2207+
println("\t{}.s8[{}] = {}.s8[{}] >> ({}.u8[{}] & 0x7);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i);
22082208
break;
22092209

22102210
case PPC_INST_VSRAH:
22112211
// TODO: vectorize, ensure endianness is correct
22122212
for (size_t i = 0; i < 8; i++)
2213-
println("\t{}.s16[{}] = {}.s16[{}] >> ({}.u8[{}] & 0xF);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i * 4);
2213+
println("\t{}.s16[{}] = {}.s16[{}] >> ({}.u8[{}] & 0xF);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i * 2);
22142214
break;
22152215

22162216
case PPC_INST_VSRAW:
@@ -2223,7 +2223,7 @@ bool Recompiler::Recompile(
22232223
case PPC_INST_VSRH:
22242224
// TODO: vectorize, ensure endianness is correct
22252225
for (size_t i = 0; i < 8; i++)
2226-
println("\t{}.u16[{}] = {}.u16[{}] >> ({}.u8[{}] & 0xF);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i * 4);
2226+
println("\t{}.u16[{}] = {}.u16[{}] >> ({}.u8[{}] & 0xF);", v(insn.operands[0]), i, v(insn.operands[1]), i, v(insn.operands[2]), i * 2);
22272227
break;
22282228

22292229
case PPC_INST_VSRW:

0 commit comments

Comments
 (0)