diff options
author | Ilia Mirkin <[email protected]> | 2014-07-16 23:20:57 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2014-07-24 08:26:41 -0400 |
commit | 32702cceed6d6e0a83cb21821ee571e02d1d24fd (patch) | |
tree | 5b2b6334db6ad92aba251d85737598cecc0b9ffe /src/gallium/drivers | |
parent | 3f6b34baccac562f640126660d65285649a3d550 (diff) |
nv50/ir: fix hard-coded TYPE_U32 sized register
Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index 6c83a608234..242af4e073c 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -389,11 +389,12 @@ RegAlloc::PhiMovesPass::visit(BasicBlock *bb) pb->insertTail(new_FlowInstruction(func, OP_BRA, bb)); for (phi = bb->getPhi(); phi && phi->op == OP_PHI; phi = phi->next) { - mov = new_Instruction(func, OP_MOV, TYPE_U32); + LValue *tmp = new_LValue(func, phi->getDef(0)->asLValue()); + mov = new_Instruction(func, OP_MOV, typeOfSize(tmp->reg.size)); mov->setSrc(0, phi->getSrc(j)); - mov->setDef(0, new_LValue(func, phi->getDef(0)->asLValue())); - phi->setSrc(j, mov->getDef(0)); + mov->setDef(0, tmp); + phi->setSrc(j, tmp); pb->insertBefore(pb->getExit(), mov); } |