hotspot/src/cpu/aarch64/vm/aarch64.ad
changeset 35842 1d34635308b0
parent 35605 34daf4d92515
child 36308 a49f85edc43f
equal deleted inserted replaced
35841:39f8dc1df42b 35842:1d34635308b0
 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);