summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2015-02-04 18:08:21 -0800
committerMatt Turner <mattst88@gmail.com>2015-02-15 12:24:10 -0800
commite8a6f2ad65b03eac7c030b2cd4955a162739870b (patch)
tree44016d0434857474bc4ae0dbbe150506a38d9a28 /src
parent72b9f8db2a035b52dbd59af0d2a6441cbde11a4c (diff)
downloadexternal_mesa3d-e8a6f2ad65b03eac7c030b2cd4955a162739870b.zip
external_mesa3d-e8a6f2ad65b03eac7c030b2cd4955a162739870b.tar.gz
external_mesa3d-e8a6f2ad65b03eac7c030b2cd4955a162739870b.tar.bz2
i965: Add an is_negative_one() method.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_shader.cpp16
-rw-r--r--src/mesa/drivers/dri/i965/brw_shader.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index ad2e22a..f876932 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -732,6 +732,22 @@ backend_reg::is_one() const
}
bool
+backend_reg::is_negative_one() const
+{
+ if (file != IMM)
+ return false;
+
+ switch (type) {
+ case BRW_REGISTER_TYPE_F:
+ return fixed_hw_reg.dw1.f == -1.0;
+ case BRW_REGISTER_TYPE_D:
+ return fixed_hw_reg.dw1.d == -1;
+ default:
+ return false;
+ }
+}
+
+bool
backend_reg::is_null() const
{
return file == HW_REG &&
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index 4b5c573..7bff186 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -51,6 +51,7 @@ struct backend_reg
#ifdef __cplusplus
bool is_zero() const;
bool is_one() const;
+ bool is_negative_one() const;
bool is_null() const;
bool is_accumulator() const;
#endif