Correct free-ing of temp register.

Bug 11199874.
The card mark was potentially using a register freed just before. Make the
free-ing of temps strongly correspond to their allocation.

Change-Id: I3d1e8c923b7fd8b3666e841d3ff9a46e6eb58318
diff --git a/compiler/dex/quick/x86/int_x86.cc b/compiler/dex/quick/x86/int_x86.cc
index 14f5348..a9f2c59 100644
--- a/compiler/dex/quick/x86/int_x86.cc
+++ b/compiler/dex/quick/x86/int_x86.cc
@@ -503,7 +503,8 @@
                          rl_src.high_reg, size, INVALID_SREG);
   }
   if (card_mark) {
-    FreeTemp(rl_index.low_reg);  // Ensure there are 2 free regs for card mark.
+    // Free rl_index if its a temp. Ensures there are 2 free regs for card mark.
+    FreeTemp(rl_index.low_reg);
     MarkGCCard(rl_src.low_reg, rl_array.low_reg);
   }
 }