[Mesa-dev] [PATCH 20/21] i965/fs: Add users of emit_mul_dw

Ben Widawsky benjamin.widawsky at intel.com
Mon Dec 22 19:29:30 PST 2014


I couldn't find any other callers which have a DW operand in a mul.

Signed-off-by: Ben Widawsky <ben at bwidawsk.net>

---
It would be good if someone else can take a look
---
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 29117d6..67675e5 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -275,7 +275,8 @@ fs_visitor::visit(ir_dereference_array *ir)
 
       fs_reg index_reg;
       index_reg = fs_reg(this, glsl_type::int_type);
-      emit(BRW_OPCODE_MUL, index_reg, this->result, fs_reg(element_size));
+      assert(element_size <= USHRT_MAX);
+      emit_mul_dw(index_reg, this->result, fs_reg(element_size), false, true);
 
       if (src.reladdr) {
          emit(BRW_OPCODE_ADD, index_reg, *src.reladdr, index_reg);
@@ -2805,7 +2806,8 @@ fs_visitor::visit_atomic_counter_intrinsic(ir_call *ir)
       deref_array->array_index->accept(this);
 
       fs_reg tmp(this, glsl_type::uint_type);
-      emit(MUL(tmp, this->result, fs_reg(ATOMIC_COUNTER_SIZE)));
+      STATIC_ASSERT(ATOMIC_COUNTER_SIZE <= USHRT_MAX);
+      emit_mul_dw(tmp, this->result, fs_reg(ATOMIC_COUNTER_SIZE), false, true);
       emit(ADD(offset, tmp, fs_reg(location->data.atomic.offset)));
    } else {
       offset = fs_reg(location->data.atomic.offset);
-- 
2.2.1



More information about the mesa-dev mailing list