Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8187224

aarch64: some inconsistency between aarch64_ad.m4 and aarch64.ad

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P4
    • Resolution: Duplicate
    • Affects Version/s: 9, 10
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Introduced In Version:
      9
    • CPU:
      aarch64
    • OS:
      linux

      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)

        Issue Links

          Activity

          Hide
          thartmann Tobias Hartmann added a comment -
          Isn't this a duplicate of JDK-8185656?
          Show
          thartmann Tobias Hartmann added a comment - Isn't this a duplicate of JDK-8185656 ?
          Hide
          fyang Felix Yang added a comment -
          Yes. Thanks for finding this.
          Show
          fyang Felix Yang added a comment - Yes. Thanks for finding this.

            People

            • Assignee:
              fyang Felix Yang
              Reporter:
              fyang Felix Yang
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: