diff options
author | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2011-10-06 14:32:58 +0200 |
---|---|---|
committer | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2011-10-21 23:00:38 +0200 |
commit | 7920c3c192bbccdc48823b02f00d2e1b39f1a9bf (patch) | |
tree | b71817828e5c0edc5c19170d3af320952b568597 | |
parent | 37a08ddce54d28f90dc8db8e10792d0759938590 (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.cpp | 5 |
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; |