PICA: Fix MAD/MADI encoding

This commit is contained in:
Jannik Vogel
2016-03-09 14:48:45 +01:00
parent 0cdf8ff102
commit 9aad2f29bb
3 changed files with 43 additions and 31 deletions

View File

@ -413,9 +413,12 @@ void RunInterpreter(UnitState<Debug>& state) {
bool is_inverted = (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI);
const int address_offset = (instr.mad.address_register_index == 0)
? 0 : state.address_registers[instr.mad.address_register_index - 1];
const float24* src1_ = LookupSourceRegister(instr.mad.GetSrc1(is_inverted));
const float24* src2_ = LookupSourceRegister(instr.mad.GetSrc2(is_inverted));
const float24* src3_ = LookupSourceRegister(instr.mad.GetSrc3(is_inverted));
const float24* src2_ = LookupSourceRegister(instr.mad.GetSrc2(is_inverted) + (!is_inverted * address_offset));
const float24* src3_ = LookupSourceRegister(instr.mad.GetSrc3(is_inverted) + ( is_inverted * address_offset));
const bool negate_src1 = ((bool)swizzle.negate_src1 != false);
const bool negate_src2 = ((bool)swizzle.negate_src2 != false);