summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2011-11-15 17:24:18 +0100
committerChristoph Bumiller <[email protected]>2012-04-14 21:54:02 +0200
commita5397851870d3a9969b2b864c849ba209ef9b0f7 (patch)
tree3f786ca731ad676c97208374bb71d6de85b39d0d
parent530ff61ba77f940f6f4093956b99221ab62ab430 (diff)
nv50/ir/ra: Allocate registers for function arguments.
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
index 3f825461956..f13335f7d28 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
@@ -664,6 +664,12 @@ checkList(DLList &list)
void
RegAlloc::collectLValues(DLList &list, bool assignedOnly)
{
+ for (std::deque<ValueDef>::iterator it = func->ins.begin();
+ it != func->ins.end(); ++it) {
+ if (!assignedOnly || it->get()->reg.data.id >= 0)
+ insertOrderedTail(list, it->get());
+ }
+
for (int n = 0; n < insns.getSize(); ++n) {
Instruction *i = insnBySerial(n);