From: Brian Date: Tue, 27 Mar 2007 20:53:17 +0000 (-0600) Subject: fix some printing issues related to subroutines X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f407cada8aa0bfea1b8dfae766392162c702aaa4;p=mesa.git fix some printing issues related to subroutines --- diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c index 8fa7ef3d824..4ecdc82d156 100644 --- a/src/mesa/shader/prog_print.c +++ b/src/mesa/shader/prog_print.c @@ -567,17 +567,6 @@ _mesa_print_instruction_opt(const struct prog_instruction *inst, GLint indent, _mesa_swizzle_string(inst->DstReg.CondSwizzle, 0, GL_FALSE)); print_comment(inst); break; - case OPCODE_CAL: - _mesa_printf("CAL %u", inst->BranchTarget); - print_comment(inst); - break; - case OPCODE_RET: - _mesa_printf("RET (%s%s); # (goto %d)", - condcode_string(inst->DstReg.CondMask), - _mesa_swizzle_string(inst->DstReg.CondSwizzle, 0, GL_FALSE), - inst->BranchTarget); - print_comment(inst); - break; case OPCODE_IF: if (inst->SrcReg[0].File != PROGRAM_UNDEFINED) { /* Use ordinary register */ @@ -629,13 +618,38 @@ _mesa_print_instruction_opt(const struct prog_instruction *inst, GLint indent, break; case OPCODE_BGNSUB: - _mesa_printf("BGNSUB"); - print_comment(inst); - return indent + 3; + if (mode == PROG_PRINT_NV) { + _mesa_printf("%s:\n", inst->Comment); /* comment is label */ + return indent; + } + else { + _mesa_printf("BGNSUB"); + print_comment(inst); + return indent + 3; + } case OPCODE_ENDSUB: - _mesa_printf("ENDSUB"); + if (mode == PROG_PRINT_DEBUG) { + _mesa_printf("ENDSUB"); + print_comment(inst); + } + break; + case OPCODE_CAL: + if (mode == PROG_PRINT_NV) { + _mesa_printf("CAL %s;\n", inst->Comment); + } + else { + _mesa_printf("CAL %u", inst->BranchTarget); + print_comment(inst); + } + break; + case OPCODE_RET: + _mesa_printf("RET (%s%s); # (goto %d)", + condcode_string(inst->DstReg.CondMask), + _mesa_swizzle_string(inst->DstReg.CondSwizzle, 0, GL_FALSE), + inst->BranchTarget); print_comment(inst); break; + case OPCODE_END: _mesa_printf("END\n"); break;