summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2009-07-22 12:29:48 -0700
committerIan Romanick <ian.d.romanick@intel.com>2009-07-22 12:29:48 -0700
commitaec429170681567414de70814f69244758323e75 (patch)
tree6b4e03c405d8e547327adcddf5c0dd243ebb51ab /src/mesa
parent69d3d19b54c46cb7b0e05c04a5304830a1ee2691 (diff)
parser: Initialize unused instruction source registers
The 965 driver expects unused source registers (e.g., SrcReg[2] of a DP3 instruction) to have a register file of PROGRAM_UNDEFINED. Initializing these source registers ensures that this happens.
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/shader/program_parse.tab.c4
-rw-r--r--src/mesa/shader/program_parse.y4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c
index bf48b9752fd..cb5fa7cd71c 100644
--- a/src/mesa/shader/program_parse.tab.c
+++ b/src/mesa/shader/program_parse.tab.c
@@ -4558,11 +4558,15 @@ asm_instruction_ctor(gl_inst_opcode op,
if (src1 != NULL) {
inst->Base.SrcReg[1] = src1->Base;
inst->SrcReg[1] = *src1;
+ } else {
+ init_src_reg(& inst->SrcReg[1]);
}
if (src2 != NULL) {
inst->Base.SrcReg[2] = src2->Base;
inst->SrcReg[2] = *src2;
+ } else {
+ init_src_reg(& inst->SrcReg[2]);
}
}
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index 0260196210a..fe9022b1218 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -1774,11 +1774,15 @@ asm_instruction_ctor(gl_inst_opcode op,
if (src1 != NULL) {
inst->Base.SrcReg[1] = src1->Base;
inst->SrcReg[1] = *src1;
+ } else {
+ init_src_reg(& inst->SrcReg[1]);
}
if (src2 != NULL) {
inst->Base.SrcReg[2] = src2->Base;
inst->SrcReg[2] = *src2;
+ } else {
+ init_src_reg(& inst->SrcReg[2]);
}
}