r600c: fix some opcodes on evergreen
There were a few places where we were using the wrong opcodes on evergreen. arl still needs to be fixed on evergreen; see r600g for reference. NOTE: This is a candidate for the 7.9 branch. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
This commit is contained in:
@@ -3334,7 +3334,14 @@ GLboolean assemble_CMP(r700_AssemblerBase *pAsm)
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGE;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_CNDGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGE;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
tmp = (-1);
|
||||
@@ -3416,8 +3423,14 @@ GLboolean assemble_TRIG(r700_AssemblerBase *pAsm, BITS opcode)
|
||||
checkop1(pAsm);
|
||||
|
||||
tmp = gethelpr(pAsm);
|
||||
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_MULADD;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
@@ -3457,7 +3470,14 @@ GLboolean assemble_TRIG(r700_AssemblerBase *pAsm, BITS opcode)
|
||||
{
|
||||
return GL_FALSE;
|
||||
}
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_MULADD;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
@@ -4742,7 +4762,14 @@ GLboolean assemble_SCS(r700_AssemblerBase *pAsm)
|
||||
|
||||
tmp = gethelpr(pAsm);
|
||||
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_MULADD;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
@@ -4782,7 +4809,14 @@ GLboolean assemble_SCS(r700_AssemblerBase *pAsm)
|
||||
{
|
||||
return GL_FALSE;
|
||||
}
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_MULADD;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_MULADD;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
|
||||
@@ -5010,7 +5044,14 @@ GLboolean assemble_SSG(r700_AssemblerBase *pAsm)
|
||||
|
||||
GLuint tmp = gethelpr(pAsm);
|
||||
/* tmp = (src > 0 ? 1 : src) */
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGT;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_CNDGT;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGT;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
pAsm->D.dst.rtype = DST_REG_TEMPORARY;
|
||||
pAsm->D.dst.reg = tmp;
|
||||
@@ -5033,7 +5074,14 @@ GLboolean assemble_SSG(r700_AssemblerBase *pAsm)
|
||||
}
|
||||
|
||||
/* dst = (-tmp > 0 ? -1 : tmp) */
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGT;
|
||||
if(8 == pAsm->unAsic)
|
||||
{
|
||||
pAsm->D.dst.opcode = EG_OP3_INST_CNDGT;
|
||||
}
|
||||
else
|
||||
{
|
||||
pAsm->D.dst.opcode = SQ_OP3_INST_CNDGT;
|
||||
}
|
||||
pAsm->D.dst.op3 = 1;
|
||||
|
||||
if( GL_FALSE == assemble_dst(pAsm) )
|
||||
|
||||
Reference in New Issue
Block a user