Fix another poisoning problem.

We were using the wrong temp.

Change-Id: Id79d5079cc85f61eb1a45d741a67f24d33e8fa03
diff --git a/compiler/optimizing/code_generator_arm64.cc b/compiler/optimizing/code_generator_arm64.cc
index c081e11..78ecfde 100644
--- a/compiler/optimizing/code_generator_arm64.cc
+++ b/compiler/optimizing/code_generator_arm64.cc
@@ -1707,13 +1707,15 @@
         } else {
           __ B(ne, slow_path->GetEntryLabel());
         }
+        temps.Release(temp2);
       }
 
       if (kPoisonHeapReferences) {
+        Register temp2 = temps.AcquireSameSizeAs(array);
           DCHECK(value.IsW());
-        __ Mov(temp, value.W());
-        GetAssembler()->PoisonHeapReference(temp);
-        source = temp;
+        __ Mov(temp2, value.W());
+        GetAssembler()->PoisonHeapReference(temp2);
+        source = temp2;
       }
 
       if (!index.IsConstant()) {