i965: Define method to check whether a backend_reg is inside a given range.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 18 Mar 2015 17:35:31 +0000 (19:35 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 23 Mar 2015 12:12:36 +0000 (14:12 +0200)
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_shader.h

index 780be80e6a7be97c98c98fe32c7f3467f90ba3bb..a57f501a37e2b1ed17a62ed37e96ba7e9482ef16 100644 (file)
@@ -487,10 +487,7 @@ fs_inst::equals(fs_inst *inst) const
 bool
 fs_inst::overwrites_reg(const fs_reg &reg) const
 {
-   return (reg.file == dst.file &&
-           reg.reg == dst.reg &&
-           reg.reg_offset >= dst.reg_offset  &&
-           reg.reg_offset < dst.reg_offset + regs_written);
+   return reg.in_range(dst, regs_written);
 }
 
 bool
index 51c965c4e77697d0b8452bfc4d333415ad3925c3..0dda9bb823d471698bac2709e3cdc26b1c55bf9f 100644 (file)
@@ -768,6 +768,15 @@ backend_reg::is_accumulator() const
           fixed_hw_reg.nr == BRW_ARF_ACCUMULATOR;
 }
 
+bool
+backend_reg::in_range(const backend_reg &r, unsigned n) const
+{
+   return (file == r.file &&
+           reg == r.reg &&
+           reg_offset >= r.reg_offset &&
+           reg_offset < r.reg_offset + n);
+}
+
 bool
 backend_instruction::is_commutative() const
 {
index 944a8701aa30632da83a4812a46a00f2153e43af..8a3263e573d2a2559a18e75c73248b7baf246800 100644 (file)
@@ -54,6 +54,7 @@ struct backend_reg
    bool is_negative_one() const;
    bool is_null() const;
    bool is_accumulator() const;
+   bool in_range(const backend_reg &r, unsigned n) const;
 #endif
 
    enum register_file file; /**< Register file: GRF, MRF, IMM. */