Correct prefix handling in vf2h/vh2f.

This commit is contained in:
Unknown W. Brackets 2013-02-23 11:34:32 -08:00
parent 42c2313893
commit 6c6bd0bd9c

View File

@ -707,6 +707,7 @@ namespace MIPSInt
int vs = _VS; int vs = _VS;
VectorSize sz = GetVecSize(op); VectorSize sz = GetVecSize(op);
ReadVector((float*)&s[0], sz, vs); ReadVector((float*)&s[0], sz, vs);
ApplySwizzleS((float*)&s[0], sz);
VectorSize outsize = V_Pair; VectorSize outsize = V_Pair;
switch (sz) { switch (sz) {
@ -727,7 +728,7 @@ namespace MIPSInt
_dbg_assert_msg_(CPU, 0, "Trying to interpret Int_Vh2f instruction that can't be interpreted"); _dbg_assert_msg_(CPU, 0, "Trying to interpret Int_Vh2f instruction that can't be interpreted");
break; break;
} }
ApplyPrefixD(d, outsize); //TODO: and the mask to kill everything but mask ApplyPrefixD(d, outsize);
WriteVector(d, outsize, vd); WriteVector(d, outsize, vd);
PC += 4; PC += 4;
EatPrefixes(); EatPrefixes();
@ -741,6 +742,7 @@ namespace MIPSInt
int vs = _VS; int vs = _VS;
VectorSize sz = GetVecSize(op); VectorSize sz = GetVecSize(op);
ReadVector(s, sz, vs); ReadVector(s, sz, vs);
ApplySwizzleS(s, sz);
VectorSize outsize = V_Single; VectorSize outsize = V_Single;
switch (sz) { switch (sz) {
@ -758,7 +760,7 @@ namespace MIPSInt
_dbg_assert_msg_(CPU, 0, "Trying to interpret Int_Vf2h instruction that can't be interpreted"); _dbg_assert_msg_(CPU, 0, "Trying to interpret Int_Vf2h instruction that can't be interpreted");
break; break;
} }
ApplyPrefixD((float*)&d[0], outsize); //TODO: and the mask to kill everything but mask ApplyPrefixD((float*)&d[0], outsize);
WriteVector((float*)&d[0], outsize, vd); WriteVector((float*)&d[0], outsize, vd);
PC += 4; PC += 4;
EatPrefixes(); EatPrefixes();