Mesa (master): mesa: when printing src regs, use |reg| for absolute value
Brian Paul
brianp at kemper.freedesktop.org
Fri Mar 6 00:29:52 UTC 2009
Module: Mesa
Branch: master
Commit: f787baff80235e8f90a72d43d4372b1ac977f161
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f787baff80235e8f90a72d43d4372b1ac977f161
Author: Brian Paul <brianp at vmware.com>
Date: Thu Mar 5 17:14:05 2009 -0700
mesa: when printing src regs, use |reg| for absolute value
And check opcode number to avoid crashing on driver-private opcodes.
---
src/mesa/shader/prog_print.c | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c
index 2747480..6988e9c 100644
--- a/src/mesa/shader/prog_print.c
+++ b/src/mesa/shader/prog_print.c
@@ -458,11 +458,15 @@ fprint_src_reg(FILE *f,
gl_prog_print_mode mode,
const struct gl_program *prog)
{
- _mesa_fprintf(f, "%s%s",
+ const char *abs = srcReg->Abs ? "|" : "";
+
+ _mesa_fprintf(f, "%s%s%s%s",
+ abs,
reg_string((enum register_file) srcReg->File,
srcReg->Index, mode, srcReg->RelAddr, prog),
_mesa_swizzle_string(srcReg->Swizzle,
- srcReg->NegateBase, GL_FALSE));
+ srcReg->NegateBase, GL_FALSE),
+ abs);
#if 0
_mesa_fprintf(f, "%s[%d]%s",
file_string((enum register_file) srcReg->File, mode),
@@ -724,11 +728,16 @@ _mesa_fprint_instruction_opt(FILE *f,
break;
/* XXX may need other special-case instructions */
default:
- /* typical alu instruction */
- fprint_alu_instruction(f, inst,
- _mesa_opcode_string(inst->Opcode),
- _mesa_num_inst_src_regs(inst->Opcode),
- mode, prog);
+ if (inst->Opcode < MAX_OPCODE) {
+ /* typical alu instruction */
+ fprint_alu_instruction(f, inst,
+ _mesa_opcode_string(inst->Opcode),
+ _mesa_num_inst_src_regs(inst->Opcode),
+ mode, prog);
+ }
+ else {
+ _mesa_fprintf(f, "Other opcode %d\n", inst->Opcode);
+ }
break;
}
return indent;
More information about the mesa-commit
mailing list