aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c')
-rw-r--r--src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c b/src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c
index 2bc0a87eed8..a41559c8fde 100644
--- a/src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c
+++ b/src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c
@@ -190,16 +190,25 @@ void r300_vertex_program_dump(struct radeon_compiler *compiler, void *user)
fprintf(stderr, "Flow Control Ops: 0x%08x\n",vs->fc_ops);
for(i = 0; i < vs->num_fc_ops; i++) {
+ unsigned is_loop = 0;
switch((vs->fc_ops >> (i * 2)) & 0x3 ) {
case 0: fprintf(stderr, "NOP"); break;
case 1: fprintf(stderr, "JUMP"); break;
- case 2: fprintf(stderr, "LOOP"); break;
+ case 2: fprintf(stderr, "LOOP"); is_loop = 1; break;
case 3: fprintf(stderr, "JSR"); break;
}
if (c->Base.is_r500) {
- fprintf(stderr,": uw-> 0x%08x lw-> 0x%08x\n",
+ fprintf(stderr,": uw-> 0x%08x lw-> 0x%08x "
+ "loop data->0x%08x\n",
vs->fc_op_addrs.r500[i].uw,
- vs->fc_op_addrs.r500[i].lw);
+ vs->fc_op_addrs.r500[i].lw,
+ vs->fc_loop_index[i]);
+ if (is_loop) {
+ fprintf(stderr, "Before = %u First = %u Last = %u\n",
+ vs->fc_op_addrs.r500[i].lw & 0xffff,
+ (vs->fc_op_addrs.r500[i].uw >> 16) & 0xffff,
+ vs->fc_op_addrs.r500[i].uw & 0xffff);
+ }
} else {
fprintf(stderr,": 0x%08x\n", vs->fc_op_addrs.r300[i]);
}