r600: disallow negative offsets for relative addressing for now

otherwise for example const[ADDR-3] gets us 253 - ALU_SRC_LITERAL which
expects immediate floats to follow and hangs
This commit is contained in:
Andre Maasikas 2009-12-21 11:47:12 +02:00
parent 3d3480abbc
commit 69728a2ae2

View file

@ -1262,7 +1262,15 @@ GLboolean assemble_src(r700_AssemblerBase *pAsm,
}
pAsm->S[fld].src.rtype = SRC_REG_CONSTANT;
pAsm->S[fld].src.reg = pILInst->SrcReg[src].Index;
if(pILInst->SrcReg[src].Index < 0)
{
WARN_ONCE("Negative register offsets not supported yet!\n");
pAsm->S[fld].src.reg = 0;
}
else
{
pAsm->S[fld].src.reg = pILInst->SrcReg[src].Index;
}
break;
case PROGRAM_INPUT:
setaddrmode_PVSSRC(&(pAsm->S[fld].src), ADDR_ABSOLUTE);