JDK-8187224 : aarch64: some inconsistency between aarch64_ad.m4 and aarch64.ad
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: aarch64
  • Submitted: 2017-09-05
  • Updated: 2021-02-02
  • Resolved: 2017-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
openjdk8u292 b01Resolved
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description
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)
Comments
URL: https://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/rev/f57189b7648d User: andrew Date: 2021-02-02 05:24:08 +0000
02-02-2021

URL: https://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/f57189b7648d User: andrew Date: 2021-02-01 20:00:27 +0000
01-02-2021

Yes. Thanks for finding this.
06-09-2017

Isn't this a duplicate of JDK-8185656?
05-09-2017