r300-gallium: vs: Add MAD.

This commit is contained in:
Corbin Simpson 2009-04-06 23:36:34 -07:00
parent 00bb3deed2
commit 799f43f2e0
2 changed files with 9 additions and 0 deletions

View file

@ -121,6 +121,8 @@ static uint32_t r300_vs_op(unsigned op)
case TGSI_OPCODE_MOV:
case TGSI_OPCODE_SWZ:
return R300_VE_ADD;
case TGSI_OPCODE_MAD:
return R300_PVS_DST_MACRO_INST | R300_PVS_MACRO_OP_2CLK_MADD;
default:
break;
}
@ -198,6 +200,11 @@ static void r300_vs_instruction(struct r300_vertex_shader* vs,
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
2);
break;
case TGSI_OPCODE_MAD:
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
3);
break;
case TGSI_OPCODE_END:
break;
default:

View file

@ -34,6 +34,8 @@
#define R300_PVS_DST_OPCODE(x) ((x) << 0)
# define R300_VE_MULTIPLY 2
# define R300_VE_ADD 3
#define R300_PVS_DST_MACRO_INST (1 << 7)
# define R300_PVS_MACRO_OP_2CLK_MADD 0
#define R300_PVS_DST_REG_TYPE(x) ((x) << 8)
# define R300_PVS_DST_REG_TEMPORARY 0
# define R300_PVS_DST_REG_A0 1