summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2012-04-14 04:44:28 +0200
committerChristoph Bumiller <[email protected]>2012-04-14 21:54:04 +0200
commit15ce0f76e2e014374a292550505f58da88333fb7 (patch)
treec179e0962a14b8cd3fac4af7961b92c3b5add4a3
parentce04221081cd145ac3fc8c053cc5ca0a8f05b7ef (diff)
nv50/ir: fix off-by-ones in CSE and nvc0 insnCanLoad
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp2
-rw-r--r--src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
index 29704c47f03..22a4f5a20a9 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
@@ -2073,7 +2073,7 @@ LocalCSE::visit(BasicBlock *bb)
// will need to know the order of instructions
int serial = 0;
- for (ir = bb->getEntry(); ir; ir = ir->next)
+ for (ir = bb->getFirst(); ir; ir = ir->next)
ir->serial = serial++;
for (ir = bb->getEntry(); ir; ir = next) {
diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
index 8f34cacd81b..04425623bdb 100644
--- a/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
+++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
@@ -394,7 +394,7 @@ TargetNVC0::insnCanLoad(const Instruction *i, int s,
if (sf == FILE_IMMEDIATE && ld->getSrc(0)->reg.data.u64 == 0)
return (!i->asTex() && i->op != OP_EXPORT && i->op != OP_STORE);
- if (s > opInfo[i->op].srcNr)
+ if (s >= opInfo[i->op].srcNr)
return false;
if (!(opInfo[i->op].srcFiles[s] & (1 << (int)sf)))
return false;