Mesa (master): i965: Add non-mutating helper functions to modify the register offset.

Francisco Jerez currojerez at kemper.freedesktop.org
Wed Feb 19 15:57:29 UTC 2014


Module: Mesa
Branch: master
Commit: 2337820d49149126991d0814b225db7b57789016
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2337820d49149126991d0814b225db7b57789016

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Feb 19 15:19:10 2014 +0100

i965: Add non-mutating helper functions to modify the register offset.

Yes, we could avoid having four copies of essentially the same code by
using templates here.

Reviewed-by: Paul Berry <stereotype441 at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_fs.h   |    8 ++++++++
 src/mesa/drivers/dri/i965/brw_vec4.h |   16 ++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 914ace6..ce5050b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -130,6 +130,14 @@ public:
 };
 
 static inline fs_reg
+offset(fs_reg reg, unsigned delta)
+{
+   assert(delta == 0 || (reg.file != HW_REG && reg.file != IMM));
+   reg.reg_offset += delta;
+   return reg;
+}
+
+static inline fs_reg
 byte_offset(fs_reg reg, unsigned delta)
 {
    assert(delta == 0 || (reg.file != HW_REG && reg.file != IMM));
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index ecb1649..3be17d8 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -140,6 +140,14 @@ public:
    src_reg *reladdr;
 };
 
+static inline src_reg
+offset(src_reg reg, unsigned delta)
+{
+   assert(delta == 0 || (reg.file != HW_REG && reg.file != IMM));
+   reg.reg_offset += delta;
+   return reg;
+}
+
 class dst_reg : public reg
 {
 public:
@@ -160,6 +168,14 @@ public:
    src_reg *reladdr;
 };
 
+static inline dst_reg
+offset(dst_reg reg, unsigned delta)
+{
+   assert(delta == 0 || (reg.file != HW_REG && reg.file != IMM));
+   reg.reg_offset += delta;
+   return reg;
+}
+
 dst_reg
 with_writemask(dst_reg const &r, int mask);
 




More information about the mesa-commit mailing list