[jdk17] RFR: 8269828: corrections in some instruction patterns for KNL x86 platform

Jatin Bhateja jbhateja at openjdk.java.net
Wed Jul 7 16:16:16 UTC 2021


Currently a temporary operand with register class regD is used in rep_stos_evex and rep_stos_large_evex instruction patterns,  whose encoding blocks calls xmm_clear_mem routine which has a VEX encoded instruction in the control path.
Thus regD class should be changed to legRegD on AVX512 platforms so that operand is always allocated from lower register bank (0-15).

There is one more issue related to usage of regD operand which is a scalar operand in a vector instruction, usually such cases may result into problems during spilling/restoration since only a scalar value is dumped and restored back, but in current context its a temporary operand may never get spilled.

-------------

Commit messages:
 - 8269828: corrections in some instruction patterns for KNL x86 platform

Changes: https://git.openjdk.java.net/jdk17/pull/225/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk17&pr=225&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8269828
  Stats: 4 lines in 2 files changed: 0 ins; 0 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk17/pull/225.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/225/head:pull/225

PR: https://git.openjdk.java.net/jdk17/pull/225


More information about the hotspot-compiler-dev mailing list