JDK-8236944 : The legVecZ operand should be limited to zmm0-zmm15 registers
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,14,15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • CPU: x86
  • Submitted: 2020-01-10
  • Updated: 2020-10-06
  • Resolved: 2020-01-13
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.
JDK 11 JDK 14 JDK 15
11.0.10-oracleFixed 14 b32Fixed 15Fixed
Related Reports
Relates :  
Description
Currently legVecZ operand is defined as follows:
operand legVecZ() %{
  constraint(ALLOC_IN_RC(vectorz_reg_vl));
  match(VecZ);

  format %{ %}
  interface(REG_INTER);
%}
This allows legVecZ to be zmm0-zmm31 on platforms supporting AVX 512 vl.

The legVecZ should instead be defined as:
operand legVecZ() %{
  constraint(ALLOC_IN_RC(vectorz_reg_legacy));
  match(VecZ);

  format %{ %}
  interface(REG_INTER);
%}

Comments
Fix request (11u) -- will label after testing completed. I would like to downport this for parity with 11.0.10-oracle. Applies clean.
05-10-2020

URL: https://hg.openjdk.java.net/jdk/jdk14/rev/641736f3fe11 User: sviswanathan Date: 2020-01-13 16:28:17 +0000
13-01-2020

ILW = MMH = P3
13-01-2020