[Mesa-dev] [PATCH 1/3] i965: Add and use backend_reg::equals().

Matt Turner mattst88 at gmail.com
Sun Nov 22 22:08:31 PST 2015


---
 src/mesa/drivers/dri/i965/brw_fs.cpp     | 3 +--
 src/mesa/drivers/dri/i965/brw_shader.cpp | 7 +++++++
 src/mesa/drivers/dri/i965/brw_shader.h   | 2 ++
 src/mesa/drivers/dri/i965/brw_vec4.cpp   | 6 ++----
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index e9c990d..241753e 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -392,8 +392,7 @@ fs_reg::fs_reg(struct brw_reg reg) :
 bool
 fs_reg::equals(const fs_reg &r) const
 {
-   return (memcmp((brw_reg *)this, (brw_reg *)&r, sizeof(brw_reg)) == 0 &&
-           reg_offset == r.reg_offset &&
+   return (this->backend_reg::equals(r) &&
            subreg_offset == r.subreg_offset &&
            !reladdr && !r.reladdr &&
            stride == r.stride);
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 7a236cd..6040c88 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -683,6 +683,13 @@ backend_shader::backend_shader(const struct brw_compiler *compiler,
 }
 
 bool
+backend_reg::equals(const backend_reg &r) const
+{
+   return memcmp((brw_reg *)this, (brw_reg *)&r, sizeof(brw_reg)) == 0 &&
+          reg_offset == r.reg_offset;
+}
+
+bool
 backend_reg::is_zero() const
 {
    if (file != IMM)
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index a4139cf..718a225 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -44,6 +44,8 @@ struct backend_reg : public brw_reg
    backend_reg() {}
    backend_reg(struct brw_reg reg) : brw_reg(reg) {}
 
+   bool equals(const backend_reg &r) const;
+
    bool is_zero() const;
    bool is_one() const;
    bool is_negative_one() const;
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 44893e3..a23fd82 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -147,8 +147,7 @@ dst_reg::dst_reg(const src_reg &reg) :
 bool
 dst_reg::equals(const dst_reg &r) const
 {
-   return (memcmp((brw_reg *)this, (brw_reg *)&r, sizeof(brw_reg)) == 0 &&
-           reg_offset == r.reg_offset &&
+   return (this->backend_reg::equals(r) &&
            (reladdr == r.reladdr ||
             (reladdr && r.reladdr && reladdr->equals(*r.reladdr))));
 }
@@ -285,8 +284,7 @@ vec4_visitor::implied_mrf_writes(vec4_instruction *inst)
 bool
 src_reg::equals(const src_reg &r) const
 {
-   return (memcmp((brw_reg *)this, (brw_reg *)&r, sizeof(brw_reg)) == 0 &&
-	   reg_offset == r.reg_offset &&
+   return (this->backend_reg::equals(r) &&
 	   !reladdr && !r.reladdr);
 }
 
-- 
2.4.9



More information about the mesa-dev mailing list