gsdx sw: vinsert128 opcode require an XMM register

Reported as an error on lastest Xbyak
This commit is contained in:
Gregory Hainaut 2016-11-20 20:17:47 +01:00
parent e674518c4e
commit 923c297dfc
1 changed files with 7 additions and 7 deletions

View File

@ -2701,7 +2701,7 @@ void GSDrawScanlineCodeGenerator::ReadPixel(const Ymm& dst, const Ymm& temp, con
vmovhps(Xmm(dst.getIdx()), qword[addr * 2 + (size_t)m_local.gd->vm + 8 * 2]);
vmovq(Xmm(temp.getIdx()), qword[addr * 2 + (size_t)m_local.gd->vm + 16 * 2]);
vmovhps(Xmm(temp.getIdx()), qword[addr * 2 + (size_t)m_local.gd->vm + 24 * 2]);
vinserti128(dst, dst, temp, 1);
vinserti128(dst, dst, Xmm(temp.getIdx()), 1);
/*
vmovdqu(dst, ptr[addr * 2 + (size_t)m_local.gd->vm]);
vmovdqu(temp, ptr[addr * 2 + (size_t)m_local.gd->vm + 16 * 2]);
@ -2888,7 +2888,7 @@ void GSDrawScanlineCodeGenerator::ReadTexel(int pixels, int mip_offset)
ReadTexel(t2, t1, j);
}
vinserti128(dst, dst, t2, 1);
vinserti128(dst, dst, Xmm(t2.getIdx()), 1);
}
}
else
@ -2924,7 +2924,7 @@ void GSDrawScanlineCodeGenerator::ReadTexel(int pixels, int mip_offset)
ReadTexel(t2, t1, j);
}
vinserti128(dst, dst, t2, 1);
vinserti128(dst, dst, Xmm(t2.getIdx()), 1);
/*
vpcmpeqd(t1, t1);
vpgatherdd(t2, ptr[ebx + src * 1], t1); // either this 1x scale, or the latency of two dependendent gathers are too slow