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

Register to register spill may use AVX 512 move instruction on unsupported platform.

    Details

    • Subcomponent:
    • Introduced In Version:
    • Resolved In Build:
      b27
    • CPU:
      x86
    • Verification:
      Not verified

      Backports

        Description

        We noticed that the register to register moves in x86.ad file attempts to generate emovdqu when UseAVX==2.
        The instruction emovdquq is only supported on platforms where UseAVX > 2 (AVX 512).

        The following rules in x86.ad file need to be corrected:
        MoveVecX2Leg
        MoveLeg2VecX
        MoveVecY2Leg
        MoveLeg2VecY
        The above move rules when activated through register allocator and could result in illegal instruction exception.

        Also there is similar usage of (UseAVX < 2) in c1_LIRAssembler which could be written as (UseAVX <=2) for better code sequence.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  sviswanathan Sandhya Viswanathan
                  Reporter:
                  sviswanathan Sandhya Viswanathan
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: