Mesa (glsl2): ir_to_mesa: Add the function name as a comment to BGNSUB and ENDSUB.

Eric Anholt anholt at kemper.freedesktop.org
Fri Jul 30 21:58:10 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 40f57c2becbb2cee7cfb6d6ed49dc1db57987e9a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=40f57c2becbb2cee7cfb6d6ed49dc1db57987e9a

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 30 14:44:09 2010 -0700

ir_to_mesa: Add the function name as a comment to BGNSUB and ENDSUB.

---

 src/mesa/program/ir_to_mesa.cpp |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index b6dfde3..e62395a 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2355,7 +2355,10 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program,
 	    if (last->op != OPCODE_RET)
 	       v.ir_to_mesa_emit_op0(NULL, OPCODE_RET);
 
-	    v.ir_to_mesa_emit_op0(NULL, OPCODE_ENDSUB);
+	    ir_to_mesa_instruction *end;
+	    end = v.ir_to_mesa_emit_op0(NULL, OPCODE_ENDSUB);
+	    end->function = entry;
+
 	    progress = GL_TRUE;
 	 }
       }
@@ -2401,12 +2404,23 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program,
 	 shader_program->LinkStatus = false;
       }
 
-      if (mesa_inst->Opcode == OPCODE_BGNSUB)
+      switch (mesa_inst->Opcode) {
+      case OPCODE_BGNSUB:
 	 inst->function->inst = i;
-      else if (mesa_inst->Opcode == OPCODE_CAL)
+	 mesa_inst->Comment = strdup(inst->function->sig->function_name());
+	 break;
+      case OPCODE_ENDSUB:
+	 mesa_inst->Comment = strdup(inst->function->sig->function_name());
+	 break;
+      case OPCODE_CAL:
 	 mesa_inst->BranchTarget = inst->function->sig_id; /* rewritten later */
-      else if (mesa_inst->Opcode == OPCODE_ARL)
+	 break;
+      case OPCODE_ARL:
 	 prog->NumAddressRegs = 1;
+	 break;
+      default:
+	 break;
+      }
 
       mesa_inst++;
       i++;




More information about the mesa-commit mailing list