summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2014-06-29 15:35:58 -0700
committerMatt Turner <[email protected]>2014-07-05 22:42:30 -0700
commit34ef6a7651d6651e0bca77c4d4b890af582ad360 (patch)
treeae9e3edd395c3e887bf819a59e9ae97480d10575 /src/mesa
parentc019105f3742b39ba6913235f85ddfb327a39d12 (diff)
i965: Move is_zero/one/null/accumulator into backend_reg.
Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp36
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.h4
-rw-r--r--src/mesa/drivers/dri/i965/brw_shader.cpp37
-rw-r--r--src/mesa/drivers/dri/i965/brw_shader.h7
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.cpp47
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.h6
6 files changed, 44 insertions, 93 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 8a4a8346056..3d10799ae83 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -480,47 +480,11 @@ fs_reg::is_contiguous() const
}
bool
-fs_reg::is_zero() const
-{
- if (file != IMM)
- return false;
-
- return fixed_hw_reg.dw1.d == 0;
-}
-
-bool
-fs_reg::is_one() const
-{
- if (file != IMM)
- return false;
-
- return type == BRW_REGISTER_TYPE_F
- ? fixed_hw_reg.dw1.f == 1.0
- : fixed_hw_reg.dw1.d == 1;
-}
-
-bool
-fs_reg::is_null() const
-{
- return file == HW_REG &&
- fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- fixed_hw_reg.nr == BRW_ARF_NULL;
-}
-
-bool
fs_reg::is_valid_3src() const
{
return file == GRF || file == UNIFORM;
}
-bool
-fs_reg::is_accumulator() const
-{
- return file == HW_REG &&
- fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- fixed_hw_reg.nr == BRW_ARF_ACCUMULATOR;
-}
-
int
fs_visitor::type_size(const struct glsl_type *type)
{
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index b6a57174e50..530e54b7f27 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -79,12 +79,8 @@ public:
fs_reg(class fs_visitor *v, const struct glsl_type *type);
bool equals(const fs_reg &r) const;
- bool is_zero() const;
- bool is_one() const;
- bool is_null() const;
bool is_valid_3src() const;
bool is_contiguous() const;
- bool is_accumulator() const;
fs_reg &apply_stride(unsigned stride);
/** Smear a channel of the reg to all channels. */
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 787eb87399d..fa427334317 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -554,6 +554,43 @@ backend_visitor::backend_visitor(struct brw_context *brw,
}
bool
+backend_reg::is_zero() const
+{
+ if (file != IMM)
+ return false;
+
+ return fixed_hw_reg.dw1.d == 0;
+}
+
+bool
+backend_reg::is_one() const
+{
+ if (file != IMM)
+ return false;
+
+ return type == BRW_REGISTER_TYPE_F
+ ? fixed_hw_reg.dw1.f == 1.0
+ : fixed_hw_reg.dw1.d == 1;
+}
+
+bool
+backend_reg::is_null() const
+{
+ return file == HW_REG &&
+ fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
+ fixed_hw_reg.nr == BRW_ARF_NULL;
+}
+
+
+bool
+backend_reg::is_accumulator() const
+{
+ return file == HW_REG &&
+ fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
+ fixed_hw_reg.nr == BRW_ARF_ACCUMULATOR;
+}
+
+bool
backend_instruction::is_tex() const
{
return (opcode == SHADER_OPCODE_TEX ||
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index 389644215e4..b0908a3c1d1 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -42,6 +42,13 @@ enum PACKED register_file {
struct backend_reg
{
+#ifdef __cplusplus
+ bool is_zero() const;
+ bool is_one() const;
+ bool is_null() const;
+ bool is_accumulator() const;
+#endif
+
enum register_file file; /**< Register file: GRF, MRF, IMM. */
uint8_t type; /**< Register type: BRW_REGISTER_TYPE_* */
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 3b518758367..5ba7d9cb741 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -151,15 +151,6 @@ src_reg::src_reg(dst_reg reg)
swizzles[2], swizzles[3]);
}
-bool
-src_reg::is_accumulator() const
-{
- return file == HW_REG &&
- fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- fixed_hw_reg.nr == BRW_ARF_ACCUMULATOR;
-}
-
-
void
dst_reg::init()
{
@@ -222,22 +213,6 @@ dst_reg::dst_reg(src_reg reg)
}
bool
-dst_reg::is_null() const
-{
- return file == HW_REG &&
- fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- fixed_hw_reg.nr == BRW_ARF_NULL;
-}
-
-bool
-dst_reg::is_accumulator() const
-{
- return file == HW_REG &&
- fixed_hw_reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- fixed_hw_reg.nr == BRW_ARF_ACCUMULATOR;
-}
-
-bool
vec4_instruction::is_send_from_grf()
{
switch (opcode) {
@@ -601,28 +576,6 @@ vec4_visitor::pack_uniform_registers()
}
}
-bool
-src_reg::is_zero() const
-{
- if (file != IMM)
- return false;
-
- return fixed_hw_reg.dw1.d == 0;
-}
-
-bool
-src_reg::is_one() const
-{
- if (file != IMM)
- return false;
-
- if (type == BRW_REGISTER_TYPE_F) {
- return fixed_hw_reg.dw1.f == 1.0;
- } else {
- return fixed_hw_reg.dw1.d == 1;
- }
-}
-
/**
* Does algebraic optimizations (0 * a = 0, 1 * a = a, a + 0 = a).
*
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index 9fd14f86d9a..331b9b5eaa7 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -106,9 +106,6 @@ public:
src_reg(struct brw_reg reg);
bool equals(const src_reg &r) const;
- bool is_zero() const;
- bool is_one() const;
- bool is_accumulator() const;
src_reg(class vec4_visitor *v, const struct glsl_type *type);
@@ -173,9 +170,6 @@ public:
explicit dst_reg(src_reg reg);
- bool is_null() const;
- bool is_accumulator() const;
-
int writemask; /**< Bitfield of WRITEMASK_[XYZW] */
src_reg *reladdr;