Fixed x86 art_quick_string_compareto asm code.

Change-Id: Icdca857776cb541c3db9ad6aeceaa882193edd9f
diff --git a/runtime/arch/x86/quick_entrypoints_x86.S b/runtime/arch/x86/quick_entrypoints_x86.S
index 6a10755..9b7a20b 100644
--- a/runtime/arch/x86/quick_entrypoints_x86.S
+++ b/runtime/arch/x86/quick_entrypoints_x86.S
@@ -1310,7 +1310,7 @@
 END_FUNCTION art_quick_deoptimize
 
     /*
-     * String's compareTo.
+     * Strin's compareTo.
      *
      * On entry:
      *    eax:   this string object (known non-null)
@@ -1319,15 +1319,15 @@
 DEFINE_FUNCTION art_quick_string_compareto
     PUSH esi                    // push callee save reg
     PUSH edi                    // push callee save reg
-    mov STRING_COUNT_OFFSET(%eax), %edx
-    mov STRING_COUNT_OFFSET(%ecx), %ebx
+
     mov STRING_VALUE_OFFSET(%eax), %esi
     mov STRING_VALUE_OFFSET(%ecx), %edi
-    mov STRING_OFFSET_OFFSET(%eax), %eax
-    mov STRING_OFFSET_OFFSET(%ecx), %ecx
+    mov ARRAY_LENGTH_OFFSET(%esi), %edx
+    mov ARRAY_LENGTH_OFFSET(%edi), %ebx
+
     /* Build pointers to the start of string data */
-    lea  STRING_DATA_OFFSET(%esi, %eax, 2), %esi
-    lea  STRING_DATA_OFFSET(%edi, %ecx, 2), %edi
+    addl LITERAL(OBJECT_ARRAY_DATA_OFFSET), %esi
+    addl LITERAL(OBJECT_ARRAY_DATA_OFFSET), %edi
     /* Calculate min length and count diff */
     mov   %edx, %ecx
     mov   %edx, %eax