Mercurial > hg > graal-compiler
diff src/cpu/x86/vm/x86_64.ad @ 2262:6bbaedb03534
7016474: string compare intrinsic improvements
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 09 Feb 2011 15:02:23 -0800 |
parents | 2f644f85485d |
children | 41d4973cf100 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/x86_64.ad Tue Feb 15 22:18:33 2011 -0800 +++ b/src/cpu/x86/vm/x86_64.ad Wed Feb 09 15:02:23 2011 -0800 @@ -11583,17 +11583,17 @@ ins_pipe(pipe_slow); %} -instruct string_compare(rdi_RegP str1, rcx_RegI cnt1, rsi_RegP str2, rbx_RegI cnt2, - rax_RegI result, regD tmp1, regD tmp2, rFlagsReg cr) +instruct string_compare(rdi_RegP str1, rcx_RegI cnt1, rsi_RegP str2, rdx_RegI cnt2, + rax_RegI result, regD tmp1, rFlagsReg cr) %{ match(Set result (StrComp (Binary str1 cnt1) (Binary str2 cnt2))); - effect(TEMP tmp1, TEMP tmp2, USE_KILL str1, USE_KILL str2, USE_KILL cnt1, USE_KILL cnt2, KILL cr); - - format %{ "String Compare $str1,$cnt1,$str2,$cnt2 -> $result // KILL $tmp1, $tmp2" %} + effect(TEMP tmp1, USE_KILL str1, USE_KILL str2, USE_KILL cnt1, USE_KILL cnt2, KILL cr); + + format %{ "String Compare $str1,$cnt1,$str2,$cnt2 -> $result // KILL $tmp1" %} ins_encode %{ __ string_compare($str1$$Register, $str2$$Register, $cnt1$$Register, $cnt2$$Register, $result$$Register, - $tmp1$$XMMRegister, $tmp2$$XMMRegister); + $tmp1$$XMMRegister); %} ins_pipe( pipe_slow ); %}