summaryrefslogtreecommitdiff
path: root/src/mesa/program
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-07-29 15:17:23 -0700
committerEric Anholt <eric@anholt.net>2010-07-29 15:19:37 -0700
commit806cb9f9528e3c55c157d7e8bbb751b769b6fcb7 (patch)
tree92c6c094cafd54eedf98744c91b888822d99550e /src/mesa/program
parent0e1992255837c88ba3c6631d5282fe944703ba56 (diff)
ir_to_mesa: Don't emit a duplicate return at the end of a function.
It was harmless, but ugly.
Diffstat (limited to 'src/mesa/program')
-rw-r--r--src/mesa/program/ir_to_mesa.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 3a28c566d4..b6dfde3783 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2350,8 +2350,12 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program,
visit_exec_list(&entry->sig->body, &v);
- entry->bgn_inst = v.ir_to_mesa_emit_op0(NULL, OPCODE_RET);
- entry->bgn_inst = v.ir_to_mesa_emit_op0(NULL, OPCODE_ENDSUB);
+ ir_to_mesa_instruction *last;
+ last = (ir_to_mesa_instruction *)v.instructions.get_tail();
+ if (last->op != OPCODE_RET)
+ v.ir_to_mesa_emit_op0(NULL, OPCODE_RET);
+
+ v.ir_to_mesa_emit_op0(NULL, OPCODE_ENDSUB);
progress = GL_TRUE;
}
}