Skip to content

Commit

Permalink
Merge pull request #18235 from unknownbrackets/ir-vdet
Browse files Browse the repository at this point in the history
irjit: Handle VDet
  • Loading branch information
hrydgard authored Sep 25, 2023
2 parents 5145698 + e104a28 commit 9f62a3f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
15 changes: 14 additions & 1 deletion Core/MIPS/IR/IRCompVFPU.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1771,7 +1771,20 @@ namespace MIPSComp {
// d[0] = s[0]*t[1] - s[1]*t[0]
// Note: this operates on two vectors, not a 2x2 matrix.

DISABLE;
VectorSize sz = GetVecSize(op);
if (sz != V_Pair)
DISABLE;

u8 sregs[4], dregs[4], tregs[4];
GetVectorRegsPrefixS(sregs, sz, _VS);
GetVectorRegsPrefixT(tregs, sz, _VT);
GetVectorRegsPrefixD(dregs, V_Single, _VD);

ir.Write(IROp::FMul, IRVTEMP_0, sregs[1], tregs[0]);
ir.Write(IROp::FMul, dregs[0], sregs[0], tregs[1]);
ir.Write(IROp::FSub, dregs[0], dregs[0], IRVTEMP_0);

ApplyPrefixD(dregs, V_Single, _VD);
}

void IRFrontend::Comp_Vi2x(MIPSOpcode op) {
Expand Down
2 changes: 1 addition & 1 deletion Core/MIPS/MIPSIntVFPU.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1446,7 +1446,7 @@ namespace MIPSInt
d[0] += s[2] * t[2] + s[3] * t[3];
}

ApplyPrefixD(d, sz);
ApplyPrefixD(d, V_Single);
WriteVector(d, V_Single, vd);
PC += 4;
EatPrefixes();
Expand Down

0 comments on commit 9f62a3f

Please sign in to comment.