i965: Add and use backend_reg::equals().
authorMatt Turner <mattst88@gmail.com>
Sun, 22 Nov 2015 21:25:05 +0000 (13:25 -0800)
committerMatt Turner <mattst88@gmail.com>
Tue, 24 Nov 2015 17:58:33 +0000 (09:58 -0800)
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_shader.h
src/mesa/drivers/dri/i965/brw_vec4.cpp

index 777cee5c8093b9238d8b0a75f84a107a3381039c..2e7b73f07c5d48557d8d6b84cb317957f81865de 100644 (file)
@@ -393,8 +393,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);
index cf0136ac86b73eda1ce57c87cf37ae2598c7ae76..810a36abe040f217215c11a34615154452ae7a65 100644 (file)
@@ -683,6 +683,13 @@ backend_shader::backend_shader(const struct brw_compiler *compiler,
    stage_abbrev = _mesa_shader_stage_to_abbrev(stage);
 }
 
+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
 {
index a4139cf3ddb09b18dba1e0c7733fcc713e0a7db3..718a22520de7f34c93c0183d9d4774f4418ee06a 100644 (file)
@@ -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;
index ae3cf728443ac5e7f39446e0a4bebaf56f0802d2..9f748dcd1d8b4b194c2a6cb6fdfede65272b2672 100644 (file)
@@ -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);
 }