|
@@ -1538,7 +1538,9 @@ private:
|
|
|
Expression target;
|
|
Expression target;
|
|
|
if (const auto gpr = std::get_if<GprNode>(&*dest)) {
|
|
if (const auto gpr = std::get_if<GprNode>(&*dest)) {
|
|
|
if (gpr->GetIndex() == Register::ZeroIndex) {
|
|
if (gpr->GetIndex() == Register::ZeroIndex) {
|
|
|
- // Writing to Register::ZeroIndex is a no op
|
|
|
|
|
|
|
+ // Writing to Register::ZeroIndex is a no op but we still have to visit the source
|
|
|
|
|
+ // as it might have side effects.
|
|
|
|
|
+ code.AddLine("{};", Visit(src).GetCode());
|
|
|
return {};
|
|
return {};
|
|
|
}
|
|
}
|
|
|
target = {GetRegister(gpr->GetIndex()), Type::Float};
|
|
target = {GetRegister(gpr->GetIndex()), Type::Float};
|