summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_pc_print.c
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-07-27 17:56:13 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-07-31 18:32:35 +0200
commit5de5e4fd5c7c6d55e9b3aadbaae0ca34e2662e2c (patch)
tree509b8b9d78783c3e41a14ef2a68ed88283f4c6ff /src/gallium/drivers/nv50/nv50_pc_print.c
parent582311ca979ac2316807cdffb15e7a25000693f4 (diff)
nv50: insert MOVs also for PHI sources from dominating block
Otherwise we get live range conflicts for operands that are written only in e.g. an ELSE block but not the IF block.
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_pc_print.c')
-rw-r--r--src/gallium/drivers/nv50/nv50_pc_print.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc_print.c b/src/gallium/drivers/nv50/nv50_pc_print.c
index c2c3eb25bc..c812dbd066 100644
--- a/src/gallium/drivers/nv50/nv50_pc_print.c
+++ b/src/gallium/drivers/nv50/nv50_pc_print.c
@@ -181,9 +181,11 @@ nv_print_address(const char c, int buf, struct nv_value *a, int offset)
static INLINE void
nv_print_cond(struct nv_instruction *nvi)
{
- PRINT("%s%s %s$c%i ",
+ char pfx = nv_value_allocated(nvi->flags_src->value->join) ? '$' : '%';
+
+ PRINT("%s%s %s%cc%i ",
gree, nv_cond_name(nvi->cc),
- mgta, nv_value_id(nvi->flags_src->value));
+ mgta, pfx, nv_value_id(nvi->flags_src->value));
}
static INLINE void
@@ -197,8 +199,8 @@ nv_print_value(struct nv_value *value, struct nv_value *ind, ubyte type)
if (value->reg.file != NV_FILE_FLAGS)
PRINT(" %s%s", gree, nv_type_name(type));
- if (!nv_value_allocated(value))
- reg_pfx = nv_value_allocated(value->join) ? '&' : '%';
+ if (!nv_value_allocated(value->join))
+ reg_pfx = '%';
switch (value->reg.file) {
case NV_FILE_GPR:
@@ -301,7 +303,7 @@ nv_print_instruction(struct nv_instruction *i)
continue;
if (i->src[j]->mod)
- PRINT(" %s", nv_modifier_string(i->src[j]->mod));
+ PRINT(" %s%s", gree, nv_modifier_string(i->src[j]->mod));
nv_print_ref(i->src[j],
(j == nv50_indirect_opnd(i)) ?