diff options
author | Matt Turner <[email protected]> | 2014-06-29 15:35:58 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2014-07-05 22:42:30 -0700 |
commit | 34ef6a7651d6651e0bca77c4d4b890af582ad360 (patch) | |
tree | ae9e3edd395c3e887bf819a59e9ae97480d10575 /src | |
parent | c019105f3742b39ba6913235f85ddfb327a39d12 (diff) |
i965: Move is_zero/one/null/accumulator into backend_reg.
Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 36 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.h | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.cpp | 37 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.h | 7 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4.cpp | 47 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4.h | 6 |
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; |