comparison 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
comparison
equal deleted inserted replaced
985:685e959d09ea 986:62001a362ce9
2204 2204
2205 // sign extend as need a l to ptr sized element 2205 // sign extend as need a l to ptr sized element
2206 void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); } 2206 void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); }
2207 void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); } 2207 void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
2208 2208
2209 // IndexOf strings.
2210 void string_indexof(Register str1, Register str2,
2211 Register cnt1, Register cnt2, Register result,
2212 XMMRegister vec, Register tmp);
2213
2214 // Compare strings.
2215 void string_compare(Register str1, Register str2,
2216 Register cnt1, Register cnt2, Register result,
2217 XMMRegister vec1, XMMRegister vec2);
2218
2219 // Compare char[] arrays.
2220 void char_arrays_equals(bool is_array_equ, Register ary1, Register ary2,
2221 Register limit, Register result, Register chr,
2222 XMMRegister vec1, XMMRegister vec2);
2209 2223
2210 #undef VIRTUAL 2224 #undef VIRTUAL
2211 2225
2212 }; 2226 };
2213 2227