diff options
author | Matt Turner <[email protected]> | 2015-11-20 21:18:26 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2015-11-24 09:58:33 -0800 |
commit | f093c842e65b251e24ea3a2d6daaa91326a4f862 (patch) | |
tree | a6537178d047859337223c0d699f6a1f0f81e27e | |
parent | 309a44d63c75a7d688157486b094e555f49c907d (diff) |
i965: Use implicit backend_reg copy-constructor.
In order to do this, we have to change the signature of the
backend_reg(brw_reg) constructor to take a reference to a brw_reg in
order to avoid unresolvable ambiguity about which constructor is
actually being called in the other modifications in this patch.
As far as I understand it, the rule in C++ is that if multiple
constructors are available for parent classes, the one closest to you in
the class heirarchy is closen, but if one of them didn't take a
reference, that screws things up.
Reviewed-by: Francisco Jerez <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4.cpp | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h index 718a22520de..abf04cfb89c 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.h +++ b/src/mesa/drivers/dri/i965/brw_shader.h @@ -42,7 +42,7 @@ struct backend_reg : public brw_reg { backend_reg() {} - backend_reg(struct brw_reg reg) : brw_reg(reg) {} + backend_reg(const struct brw_reg ®) : brw_reg(reg) {} bool equals(const backend_reg &r) const; diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index 9f748dcd1d8..9fc08573081 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -79,9 +79,8 @@ src_reg::src_reg(struct brw_reg reg) : } src_reg::src_reg(const dst_reg ®) : - backend_reg(static_cast<struct brw_reg>(reg)) + backend_reg(reg) { - this->reg_offset = reg.reg_offset; this->reladdr = reg.reladdr; this->swizzle = brw_swizzle_for_mask(reg.writemask); } @@ -137,9 +136,8 @@ dst_reg::dst_reg(struct brw_reg reg) : } dst_reg::dst_reg(const src_reg ®) : - backend_reg(static_cast<struct brw_reg>(reg)) + backend_reg(reg) { - this->reg_offset = reg.reg_offset; this->writemask = brw_mask_for_swizzle(reg.swizzle); this->reladdr = reg.reladdr; } |