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