Mercurial > hg > graal-compiler
diff src/cpu/x86/vm/assembler_x86.hpp @ 986:62001a362ce9
6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2
Summary: Modify String intrinsic methods to pass char[] pointers instead of string oops.
Reviewed-by: never
author | kvn |
---|---|
date | Mon, 14 Sep 2009 12:14:20 -0700 |
parents | 93c14e5562c4 |
children | beb8f45ee9f0 323bd24c6520 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/assembler_x86.hpp Mon Sep 14 09:49:54 2009 -0700 +++ b/src/cpu/x86/vm/assembler_x86.hpp Mon Sep 14 12:14:20 2009 -0700 @@ -2206,6 +2206,20 @@ void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); } void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); } + // IndexOf strings. + void string_indexof(Register str1, Register str2, + Register cnt1, Register cnt2, Register result, + XMMRegister vec, Register tmp); + + // Compare strings. + void string_compare(Register str1, Register str2, + Register cnt1, Register cnt2, Register result, + XMMRegister vec1, XMMRegister vec2); + + // Compare char[] arrays. + void char_arrays_equals(bool is_array_equ, Register ary1, Register ary2, + Register limit, Register result, Register chr, + XMMRegister vec1, XMMRegister vec2); #undef VIRTUAL