}
-static const char *
-condcode_string(GLuint condcode)
+const char *
+_mesa_condcode_string(GLuint condcode)
{
switch (condcode) {
case COND_GT: return "GT";
if (dstReg->CondMask != COND_TR) {
_mesa_printf(" (%s.%s)",
- condcode_string(dstReg->CondMask),
+ _mesa_condcode_string(dstReg->CondMask),
_mesa_swizzle_string(dstReg->CondSwizzle, GL_FALSE, GL_FALSE));
}
print_comment(inst);
break;
case OPCODE_BRA:
- _mesa_printf("BRA %u (%s%s)",
+ _mesa_printf("BRA %d (%s%s)",
inst->BranchTarget,
- condcode_string(inst->DstReg.CondMask),
+ _mesa_condcode_string(inst->DstReg.CondMask),
_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_IF:
if (inst->SrcReg[0].File != PROGRAM_UNDEFINED) {
/* Use ordinary register */
else {
/* Use cond codes */
_mesa_printf("IF (%s%s);",
- condcode_string(inst->DstReg.CondMask),
+ _mesa_condcode_string(inst->DstReg.CondMask),
_mesa_swizzle_string(inst->DstReg.CondSwizzle,
0, GL_FALSE));
}
_mesa_printf("ENDLOOP; # (goto %d)\n", inst->BranchTarget);
break;
case OPCODE_BRK:
- _mesa_printf("BRK (%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_CONT:
- _mesa_printf("CONT (%s%s); #(goto %d)",
- condcode_string(inst->DstReg.CondMask),
+ _mesa_printf("%s (%s%s); # (goto %d)",
+ _mesa_opcode_string(inst->Opcode),
+ _mesa_condcode_string(inst->DstReg.CondMask),
_mesa_swizzle_string(inst->DstReg.CondSwizzle, 0, GL_FALSE),
inst->BranchTarget);
print_comment(inst);
break;
- case OPCODE_BRK0:
- case OPCODE_BRK1:
- case OPCODE_CONT0:
- case OPCODE_CONT1:
- _mesa_printf("%s ", _mesa_opcode_string(inst->Opcode));
- print_src_reg(&inst->SrcReg[0], mode, prog);
- _mesa_printf("; ");
- _mesa_printf(" # (goto %d)", inst->BranchTarget);
- print_comment(inst);
- break;
-
case OPCODE_BGNSUB:
- _mesa_printf("SUB");
- 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; # (goto %d)\n", inst->Comment, inst->BranchTarget);
+ }
+ else {
+ _mesa_printf("CAL %u", inst->BranchTarget);
+ print_comment(inst);
+ }
+ break;
+ case OPCODE_RET:
+ _mesa_printf("RET (%s%s)",
+ _mesa_condcode_string(inst->DstReg.CondMask),
+ _mesa_swizzle_string(inst->DstReg.CondSwizzle, 0, GL_FALSE));
print_comment(inst);
break;
+
case OPCODE_END:
_mesa_printf("END\n");
break;