From 34ef6a7651d6651e0bca77c4d4b890af582ad360 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Sun, 29 Jun 2014 15:35:58 -0700 Subject: [PATCH] i965: Move is_zero/one/null/accumulator into backend_reg. Reviewed-by: Topi Pohjolainen --- src/mesa/drivers/dri/i965/brw_fs.cpp | 36 ------------------ src/mesa/drivers/dri/i965/brw_fs.h | 4 -- src/mesa/drivers/dri/i965/brw_shader.cpp | 37 +++++++++++++++++++ src/mesa/drivers/dri/i965/brw_shader.h | 7 ++++ src/mesa/drivers/dri/i965/brw_vec4.cpp | 47 ------------------------ 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 @@ -479,48 +479,12 @@ fs_reg::is_contiguous() const return stride == 1; } -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 @@ -553,6 +553,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 { 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() { @@ -221,22 +212,6 @@ dst_reg::dst_reg(src_reg reg) this->fixed_hw_reg = reg.fixed_hw_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() { @@ -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;