< 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 >