mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-16 07:10:20 +01:00
r600: fix XPD with writemask
same variable used for 2 different temp registers fixes e.g. glsl/bump
This commit is contained in:
parent
e3257912e0
commit
0dab80fbfb
1 changed files with 8 additions and 7 deletions
|
|
@ -4164,20 +4164,21 @@ GLboolean assemble_TEX(r700_AssemblerBase *pAsm)
|
|||
|
||||
GLboolean assemble_XPD(r700_AssemblerBase *pAsm)
|
||||
{
|
||||
BITS tmp;
|
||||
BITS tmp1;
|
||||
BITS tmp2 = 0;
|
||||
|
||||
if( GL_FALSE == checkop2(pAsm) )
|
||||
{
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
tmp = gethelpr(pAsm);
|
||||
tmp1 = gethelpr(pAsm);
|
||||
|
||||
pAsm->D.dst.opcode = SQ_OP2_INST_MUL;
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
pAsm->D.dst.rtype = DST_REG_TEMPORARY;
|
||||
pAsm->D.dst.reg = tmp;
|
||||
pAsm->D.dst.reg = tmp1;
|
||||
nomask_PVSDST(&(pAsm->D.dst));
|
||||
|
||||
if( GL_FALSE == assemble_src(pAsm, 0, -1) )
|
||||
|
|
@ -4203,11 +4204,11 @@ GLboolean assemble_XPD(r700_AssemblerBase *pAsm)
|
|||
|
||||
if(0xF != pAsm->pILInst[pAsm->uiCurInst].DstReg.WriteMask)
|
||||
{
|
||||
tmp = gethelpr(pAsm);
|
||||
tmp2 = gethelpr(pAsm);
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
pAsm->D.dst.rtype = DST_REG_TEMPORARY;
|
||||
pAsm->D.dst.reg = tmp;
|
||||
pAsm->D.dst.reg = tmp2;
|
||||
|
||||
nomask_PVSDST(&(pAsm->D.dst));
|
||||
}
|
||||
|
|
@ -4235,7 +4236,7 @@ GLboolean assemble_XPD(r700_AssemblerBase *pAsm)
|
|||
// result1 + (neg) result0
|
||||
setaddrmode_PVSSRC(&(pAsm->S[2].src),ADDR_ABSOLUTE);
|
||||
pAsm->S[2].src.rtype = SRC_REG_TEMPORARY;
|
||||
pAsm->S[2].src.reg = tmp;
|
||||
pAsm->S[2].src.reg = tmp1;
|
||||
|
||||
neg_PVSSRC(&(pAsm->S[2].src));
|
||||
noswizzle_PVSSRC(&(pAsm->S[2].src));
|
||||
|
|
@ -4258,7 +4259,7 @@ GLboolean assemble_XPD(r700_AssemblerBase *pAsm)
|
|||
// Use tmp as source
|
||||
setaddrmode_PVSSRC(&(pAsm->S[0].src), ADDR_ABSOLUTE);
|
||||
pAsm->S[0].src.rtype = SRC_REG_TEMPORARY;
|
||||
pAsm->S[0].src.reg = tmp;
|
||||
pAsm->S[0].src.reg = tmp2;
|
||||
|
||||
noneg_PVSSRC(&(pAsm->S[0].src));
|
||||
noswizzle_PVSSRC(&(pAsm->S[0].src));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue