summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2011-10-06 14:32:58 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2011-10-21 23:00:38 +0200
commit7920c3c192bbccdc48823b02f00d2e1b39f1a9bf (patch)
treeb71817828e5c0edc5c19170d3af320952b568597
parent37a08ddce54d28f90dc8db8e10792d0759938590 (diff)
nvc0/ir: fix emission of cvt when register and type size differ
-rw-r--r--src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
index bf597538bb3..6bcbd625600 100644
--- a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
+++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
@@ -785,8 +785,9 @@ CodeEmitterNVC0::emitCVT(Instruction *i)
roundMode_C(i);
- code[0] |= util_logbase2(i->def[0].getSize()) << 20;
- code[0] |= util_logbase2(i->src[0].getSize()) << 23;
+ // cvt u16 f32 sets high bits to 0, so we don't have to use Value::Size()
+ code[0] |= util_logbase2(typeSizeof(i->dType)) << 20;
+ code[0] |= util_logbase2(typeSizeof(i->sType)) << 23;
if (sat)
code[0] |= 0x20;