summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver McFadden <z3ro.geek@gmail.com>2007-07-16 07:12:29 +0000
committerOliver McFadden <z3ro.geek@gmail.com>2007-07-16 07:12:29 +0000
commit72581241a85081d6103158c484c18d356935b46c (patch)
tree46ae055d5b0c133f5abe4d7f19c7a275b2fbf3ef
parent87855fb32cf7df0162720fc71976d3d23c0dbba6 (diff)
r300: Make sure the modified value of u_temp_i is respected.
-rw-r--r--src/mesa/drivers/dri/r300/r300_vertprog.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.c b/src/mesa/drivers/dri/r300/r300_vertprog.c
index d960419240..dfba747e72 100644
--- a/src/mesa/drivers/dri/r300/r300_vertprog.c
+++ b/src/mesa/drivers/dri/r300/r300_vertprog.c
@@ -655,13 +655,13 @@ static void t_opcode_abs(struct r300_vertex_program *vp,
static void t_opcode_flr(struct r300_vertex_program *vp,
struct prog_instruction *vpi,
struct r300_vertprog_instruction *o_inst,
- struct prog_src_register src[3], int u_temp_i)
+ struct prog_src_register src[3], int *u_temp_i)
{
/* FRC TMP 0.X Y Z W PARAM 0{} {X Y Z W}
ADD RESULT 1.X Y Z W PARAM 0{} {X Y Z W} TMP 0{X Y Z W } {X Y Z W} neg Xneg Yneg Zneg W */
o_inst->opcode =
- MAKE_VSF_OP(R300_VPI_OUT_OP_FRC, u_temp_i,
+ MAKE_VSF_OP(R300_VPI_OUT_OP_FRC, *u_temp_i,
t_dst_mask(vpi->DstReg.WriteMask),
VSF_OUT_CLASS_TMP);
@@ -677,7 +677,7 @@ static void t_opcode_flr(struct r300_vertex_program *vp,
o_inst->src[0] = t_src(vp, &src[0]);
o_inst->src[1] =
- MAKE_VSF_SOURCE(u_temp_i, VSF_IN_COMPONENT_X,
+ MAKE_VSF_SOURCE(*u_temp_i, VSF_IN_COMPONENT_X,
VSF_IN_COMPONENT_Y, VSF_IN_COMPONENT_Z,
VSF_IN_COMPONENT_W, VSF_IN_CLASS_TMP,
/* Not 100% sure about this */
@@ -686,7 +686,7 @@ static void t_opcode_flr(struct r300_vertex_program *vp,
/*VSF_FLAG_ALL */ );
o_inst->src[2] = ZERO_SRC_0;
- u_temp_i--;
+ (*u_temp_i)--;
}
static void t_opcode_lg2(struct r300_vertex_program *vp,
@@ -783,7 +783,7 @@ static void t_opcode_dph(struct r300_vertex_program *vp,
static void t_opcode_xpd(struct r300_vertex_program *vp,
struct prog_instruction *vpi,
struct r300_vertprog_instruction *o_inst,
- struct prog_src_register src[3], int u_temp_i)
+ struct prog_src_register src[3], int *u_temp_i)
{
/* mul r0, r1.yzxw, r2.zxyw
mad r0, -r2.yzxw, r1.zxyw, r0
@@ -791,7 +791,7 @@ static void t_opcode_xpd(struct r300_vertex_program *vp,
*/
o_inst->opcode =
- MAKE_VSF_OP(R300_VPI_OUT_OP_MAD, u_temp_i,
+ MAKE_VSF_OP(R300_VPI_OUT_OP_MAD, *u_temp_i,
t_dst_mask(vpi->DstReg.WriteMask),
VSF_OUT_CLASS_TMP);
@@ -817,7 +817,7 @@ static void t_opcode_xpd(struct r300_vertex_program *vp,
o_inst->src[2] = ZERO_SRC_1;
o_inst++;
- u_temp_i--;
+ (*u_temp_i)--;
o_inst->opcode =
MAKE_VSF_OP(R300_VPI_OUT_OP_MAD, t_dst_index(vp, &vpi->DstReg),
@@ -845,7 +845,7 @@ static void t_opcode_xpd(struct r300_vertex_program *vp,
RelAddr << 4);
o_inst->src[2] =
- MAKE_VSF_SOURCE(u_temp_i + 1, VSF_IN_COMPONENT_X,
+ MAKE_VSF_SOURCE(*u_temp_i + 1, VSF_IN_COMPONENT_X,
VSF_IN_COMPONENT_Y, VSF_IN_COMPONENT_Z,
VSF_IN_COMPONENT_W, VSF_IN_CLASS_TMP,
VSF_FLAG_NONE);
@@ -1093,8 +1093,8 @@ static void r300TranslateVertexShader(struct r300_vertex_program *vp,
t_opcode_abs(vp, vpi, o_inst, src);
break;
case OPCODE_FLR:
- t_opcode_flr(vp, vpi, o_inst, src, /* FIXME */
- u_temp_i);
+ /* FIXME */
+ t_opcode_flr(vp, vpi, o_inst, src, &u_temp_i);
break;
case OPCODE_LG2:
t_opcode_lg2(vp, vpi, o_inst, src);
@@ -1106,8 +1106,8 @@ static void r300TranslateVertexShader(struct r300_vertex_program *vp,
t_opcode_dph(vp, vpi, o_inst, src);
break;
case OPCODE_XPD:
- t_opcode_xpd(vp, vpi, o_inst, src, /* FIXME */
- u_temp_i);
+ /* FIXME */
+ t_opcode_xpd(vp, vpi, o_inst, src, &u_temp_i);
break;
case OPCODE_RCC:
t_opcode_rcc(vp, vpi, o_inst, src);