14926 $tmp$$Register); |
14926 $tmp$$Register); |
14927 %} |
14927 %} |
14928 ins_pipe(pipe_class_memory); |
14928 ins_pipe(pipe_class_memory); |
14929 %} |
14929 %} |
14930 |
14930 |
14931 instruct array_equals(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result, |
14931 instruct array_equalsB(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result, |
|
14932 iRegP_R10 tmp, rFlagsReg cr) |
|
14933 %{ |
|
14934 predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::LL); |
|
14935 match(Set result (AryEq ary1 ary2)); |
|
14936 effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr); |
|
14937 |
|
14938 format %{ "Array Equals $ary1,ary2 -> $result // KILL $tmp" %} |
|
14939 ins_encode %{ |
|
14940 __ byte_arrays_equals($ary1$$Register, $ary2$$Register, |
|
14941 $result$$Register, $tmp$$Register); |
|
14942 %} |
|
14943 ins_pipe(pipe_class_memory); |
|
14944 %} |
|
14945 |
|
14946 instruct array_equalsC(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result, |
14932 iRegP_R10 tmp, rFlagsReg cr) |
14947 iRegP_R10 tmp, rFlagsReg cr) |
14933 %{ |
14948 %{ |
14934 predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::UU); |
14949 predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::UU); |
14935 match(Set result (AryEq ary1 ary2)); |
14950 match(Set result (AryEq ary1 ary2)); |
14936 effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr); |
14951 effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr); |