aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2015-11-20 21:18:26 -0800
committerMatt Turner <[email protected]>2015-11-24 09:58:33 -0800
commitf093c842e65b251e24ea3a2d6daaa91326a4f862 (patch)
treea6537178d047859337223c0d699f6a1f0f81e27e
parent309a44d63c75a7d688157486b094e555f49c907d (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.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.cpp6
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 &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 &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 &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;
}