diff options
author | Eric Anholt <eric@anholt.net> | 2010-09-03 13:21:51 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-09-07 10:34:09 -0700 |
commit | 42fc60cadcea920e9d67581de133a47effcc8441 (patch) | |
tree | 09110878563cb4d5d670f5855174d117064d7d0b /src/mesa/drivers | |
parent | b157113e7333e9dad1c994902e10faedc45bd5e7 (diff) |
i965: Clean up fs_reg setup by using a helper for constructors.
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 34c5d5262f..5b2b0e6ec4 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -202,63 +202,56 @@ public: return node; } - /** Generic unset register constructor. */ - fs_reg() + void init() { - this->file = BAD_FILE; this->reg = 0; this->reg_offset = 0; - this->hw_reg = -1; this->negate = 0; this->abs = 0; + this->hw_reg = -1; + } + + /** Generic unset register constructor. */ + fs_reg() + { + init(); + this->file = BAD_FILE; } /** Immediate value constructor. */ fs_reg(float f) { + init(); this->file = IMM; - this->reg = 0; - this->hw_reg = 0; this->type = BRW_REGISTER_TYPE_F; this->imm.f = f; - this->negate = 0; - this->abs = 0; } /** Immediate value constructor. */ fs_reg(int32_t i) { + init(); this->file = IMM; - this->reg = 0; - this->hw_reg = 0; this->type = BRW_REGISTER_TYPE_D; this->imm.i = i; - this->negate = 0; - this->abs = 0; } /** Immediate value constructor. */ fs_reg(uint32_t u) { + init(); this->file = IMM; - this->reg = 0; - this->hw_reg = 0; this->type = BRW_REGISTER_TYPE_UD; this->imm.u = u; - this->negate = 0; - this->abs = 0; } /** Fixed brw_reg Immediate value constructor. */ fs_reg(struct brw_reg fixed_hw_reg) { + init(); this->file = FIXED_HW_REG; this->fixed_hw_reg = fixed_hw_reg; - this->reg = 0; - this->hw_reg = 0; this->type = fixed_hw_reg.type; - this->negate = 0; - this->abs = 0; } fs_reg(enum register_file file, int hw_reg); @@ -482,25 +475,21 @@ public: /** Fixed HW reg constructor. */ fs_reg::fs_reg(enum register_file file, int hw_reg) { + init(); this->file = file; - this->reg = 0; - this->reg_offset = 0; this->hw_reg = hw_reg; this->type = BRW_REGISTER_TYPE_F; - this->negate = 0; - this->abs = 0; } /** Automatic reg constructor. */ fs_reg::fs_reg(class fs_visitor *v, const struct glsl_type *type) { + init(); + this->file = GRF; this->reg = v->next_abstract_grf; this->reg_offset = 0; v->next_abstract_grf += type_size(type); - this->hw_reg = -1; - this->negate = 0; - this->abs = 0; switch (type->base_type) { case GLSL_TYPE_FLOAT: |