Some comments from aph about the issue:
(http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2017-July/004760.html)
I'm looking at the webrev in
http://cr.openjdk.java.net/~roland/8154537/webrev.00/ and I see the
the changes were made to aarch64.ad but not to ad_aarch64.m4. This is
problematic because some .m4 files are used to generate the .ad file,
and if anyone regenerates the .ad file the bug will regress.
I think this is the change we need to make. It won't affect generated
code at all, but it is something of a ticking bomb.
diff -r 214a94e9366c src/cpu/aarch64/vm/aarch64_ad.m4
--- a/src/cpu/aarch64/vm/aarch64_ad.m4 Mon Jul 17 12:11:32 2017 +0000
+++ b/src/cpu/aarch64/vm/aarch64_ad.m4 Fri Jul 28 18:57:25 2017 +0100
@@ -268,21 +268,21 @@
ins_pipe(ialu_reg_reg_vshift);
%}')dnl
define(ROL_INSN, `
-instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2 c$2, rFlagsReg cr)
+instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift, immI$2 c$2, rFlagsReg cr)
%{
match(Set dst (Or$1 (LShift$1 src shift) (URShift$1 src (SubI c$2 shift))));
expand %{
- $3L_rReg(dst, src, shift, cr);
+ $3$1_rReg(dst, src, shift, cr);
%}
%}')dnl
define(ROR_INSN, `
-instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2 c$2, rFlagsReg cr)
+instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift, immI$2 c$2, rFlagsReg cr)
%{
match(Set dst (Or$1 (URShift$1 src shift) (LShift$1 src (SubI c$2 shift))));
expand %{
- $3L_rReg(dst, src, shift, cr);
+ $3$1_rReg(dst, src, shift, cr);
%}
%}')dnl
ROL_EXPAND(L, rol, rorv)