static void translate_insn(struct brw_wm_compile *c, const struct prog_instruction *inst) { struct brw_wm_instruction *out = get_instruction(c); GLuint writemask = inst->DstReg.WriteMask; GLuint nr_args = brw_wm_nr_args(inst->Opcode); GLuint i, j; /* Copy some data out of the instruction */ out->opcode = inst->Opcode; out->saturate = (inst->SaturateMode != SATURATE_OFF); out->tex_unit = inst->TexSrcUnit; out->tex_idx = inst->TexSrcTarget; out->tex_shadow = inst->TexShadow; out->eot = inst->Aux & INST_AUX_EOT; out->target = INST_AUX_GET_TARGET(inst->Aux); /* Args: */ for (i = 0; i < nr_args; i++) { for (j = 0; j < 4; j++) { out->src[i][j] = get_new_ref(c, inst->SrcReg[i], j, out); } } /* Dst: */ pass0_set_dst(c, out, inst, writemask); }
static struct brw_wm_instruction *translate_insn( struct brw_wm_compile *c, const struct prog_instruction *inst ) { struct brw_wm_instruction *out = get_instruction(c); GLuint writemask = inst->DstReg.WriteMask; GLuint nr_args = brw_wm_nr_args(inst->Opcode); GLuint i, j; /* Copy some data out of the instruction */ out->opcode = inst->Opcode; out->saturate = (inst->SaturateMode != SATURATE_OFF); out->tex_unit = inst->TexSrcUnit; out->tex_idx = inst->TexSrcTarget; /* Args: */ for (i = 0; i < nr_args; i++) { for (j = 0; j < 4; j++) { out->src[i][j] = get_new_ref(c, inst->SrcReg[i], j, out); } } /* Dst: */ if (brw_wm_is_scalar_result(out->opcode)) pass0_set_dst_scalar(c, out, inst, writemask); else pass0_set_dst(c, out, inst, writemask); return out; }