r300: handle ARB_vertex_program specific instructions in NQSSADCE

This commit is contained in:
Maciej Cencora
2009-07-04 15:22:22 +02:00
parent e43cc28c1b
commit 96b2eb18c5
@@ -188,6 +188,8 @@ static void process_instruction(struct nqssadce_state* s)
case OPCODE_MAX:
case OPCODE_MIN:
case OPCODE_MUL:
case OPCODE_SGE:
case OPCODE_SLT:
inst = track_used_srcreg(s, inst, 0, inst->DstReg.WriteMask);
inst = track_used_srcreg(s, inst, 1, inst->DstReg.WriteMask);
break;
@@ -219,6 +221,18 @@ static void process_instruction(struct nqssadce_state* s)
case OPCODE_TXP:
inst = track_used_srcreg(s, inst, 0, 0xf);
break;
case OPCODE_DST:
inst = track_used_srcreg(s, inst, 0, 0x6);
inst = track_used_srcreg(s, inst, 1, 0xa);
break;
case OPCODE_EXP:
case OPCODE_LOG:
case OPCODE_POW:
inst = track_used_srcreg(s, inst, 0, 0x3);
break;
case OPCODE_LIT:
inst = track_used_srcreg(s, inst, 0, 0xb);
break;
default:
_mesa_problem(s->Ctx, "NqssaDce: Unknown opcode %d\n", inst->Opcode);
return;