Merge "Fix String Change baseline compiler errors."
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index 2a555e4..ffa4cc3 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -810,6 +810,7 @@
   // Add move-result for StringFactory method.
   if (is_string_init) {
     uint32_t orig_this_reg = is_range ? register_index : args[0];
+    UpdateLocal(orig_this_reg, invoke);
     const VerifiedMethod* verified_method =
         compiler_driver_->GetVerifiedMethod(dex_file_, dex_compilation_unit_->GetDexMethodIndex());
     if (verified_method == nullptr) {
@@ -823,10 +824,10 @@
     if (map_it != string_init_map.end()) {
       std::set<uint32_t> reg_set = map_it->second;
       for (auto set_it = reg_set.begin(); set_it != reg_set.end(); ++set_it) {
-        UpdateLocal(*set_it, invoke);
+        HInstruction* load_local = LoadLocal(orig_this_reg, Primitive::kPrimNot);
+        UpdateLocal(*set_it, load_local);
       }
     }
-    UpdateLocal(orig_this_reg, invoke);
   }
   return true;
 }