< prev index next >
src/cpu/aarch64/vm/aarch64.ad
Print this page
rev 10083 : 8149100: AArch64: "bad AD file" for LL enconding AryEq Node matching
Summary: add byte array equal support for aarch64
Reviewed-by: duke
*** 14926,14936 ****
$tmp$$Register);
%}
ins_pipe(pipe_class_memory);
%}
! instruct array_equals(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result,
iRegP_R10 tmp, rFlagsReg cr)
%{
predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::UU);
match(Set result (AryEq ary1 ary2));
effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr);
--- 14926,14951 ----
$tmp$$Register);
%}
ins_pipe(pipe_class_memory);
%}
! instruct array_equalsB(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result,
! iRegP_R10 tmp, rFlagsReg cr)
! %{
! predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::LL);
! match(Set result (AryEq ary1 ary2));
! effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr);
!
! format %{ "Array Equals $ary1,ary2 -> $result // KILL $tmp" %}
! ins_encode %{
! __ byte_arrays_equals($ary1$$Register, $ary2$$Register,
! $result$$Register, $tmp$$Register);
! %}
! ins_pipe(pipe_class_memory);
! %}
!
! instruct array_equalsC(iRegP_R1 ary1, iRegP_R2 ary2, iRegI_R0 result,
iRegP_R10 tmp, rFlagsReg cr)
%{
predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::UU);
match(Set result (AryEq ary1 ary2));
effect(KILL tmp, USE_KILL ary1, USE_KILL ary2, KILL cr);
< prev index next >