r600: quick hack to get KIL_NV working - does condition TR only for now

This commit is contained in:
Andre Maasikas 2009-12-04 12:58:36 +02:00
parent c1d79a4235
commit 323d1fb391

View file

@ -3554,7 +3554,10 @@ GLboolean assemble_FRC(r700_AssemblerBase *pAsm)
GLboolean assemble_KIL(r700_AssemblerBase *pAsm, GLuint opcode)
{
checkop2(pAsm);
struct prog_instruction *pILInst = &(pAsm->pILInst[pAsm->uiCurInst]);
if(pILInst->Opcode == OPCODE_KIL)
checkop1(pAsm);
pAsm->D.dst.opcode = opcode;
//pAsm->D.dst.math = 1;
@ -3573,16 +3576,23 @@ GLboolean assemble_KIL(r700_AssemblerBase *pAsm, GLuint opcode)
setswizzle_PVSSRC(&(pAsm->S[0].src), SQ_SEL_0);
noneg_PVSSRC(&(pAsm->S[0].src));
if( GL_FALSE == assemble_src(pAsm, 0, 1) )
if(pILInst->Opcode == OPCODE_KIL_NV)
{
return GL_FALSE;
setaddrmode_PVSSRC(&(pAsm->S[1].src), ADDR_ABSOLUTE);
pAsm->S[1].src.rtype = SRC_REG_TEMPORARY;
pAsm->S[1].src.reg = 0;
setswizzle_PVSSRC(&(pAsm->S[1].src), SQ_SEL_1);
neg_PVSSRC(&(pAsm->S[1].src));
}
else
{
if( GL_FALSE == assemble_src(pAsm, 0, 1) )
{
return GL_FALSE;
}
}
/*if( GL_FALSE == assemble_src(pAsm, 1, -1) )
{
return GL_FALSE;
}
*/
if ( GL_FALSE == next_ins(pAsm) )
{
return GL_FALSE;