RFR: 8328998: Encoding support for Intel APX extended general-purpose registers [v13]

Steve Dohrmann duke at openjdk.org
Thu May 2 20:31:17 UTC 2024


> Add instruction encoding support for Intel APX extended general-purpose registers:
> 
> Intel Advanced Performance Extensions (APX) doubles the number of general-purpose registers, from 16 to 32. For more information about APX, see https://www.intel.com/content/www/us/en/developer/articles/technical/advanced-performance-extensions-apx.html.
> 
> By specification, instruction encoding remains unchanged for instructions using only the lower 16 GPRs. For cases where one or more instruction operands reference extended GPRs (Egprs), encoding targets either REX2, an extension of REX encoding, or an extended version of EVEX encoding. These new encoding schemes extend or modify existing instruction prefixes only when Egprs are used.

Steve Dohrmann has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 20 additional commits since the last revision:

 - update for egpr use: bzhil(R,R,R), btq(R,R), btq(R,imm)
 - Merge branch 'master' into apx-encoding-pr
 - Update full name
 - simplification and fix asserts in ldmxcsr, stmxcsr, and emit_prefix_and_int8
 - remove is_map1 comment for addb, andb, movb, orb, testb, xchgb, xorb
 - fix stmxcrs REX2 branch, add asserts to SHA instructions
 - fixes: pp bits in crc32, REX2 branch in ldmxcsr
 - add egpr support for popcntq(R,A), cvttsd2siq(R,A), popq(R)
 - fix 4 more src_is_gpr = true cases, add asserts to check for UseAPX
 - fix is_gpr arg on two functions with reversed src / dst operands
 - ... and 10 more: https://git.openjdk.org/jdk/compare/27262415...7b3e8ec7

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18476/files
  - new: https://git.openjdk.org/jdk/pull/18476/files/46eb6b42..7b3e8ec7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18476&range=12
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18476&range=11-12

  Stats: 117386 lines in 3057 files changed: 52969 ins; 48551 del; 15866 mod
  Patch: https://git.openjdk.org/jdk/pull/18476.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18476/head:pull/18476

PR: https://git.openjdk.org/jdk/pull/18476


More information about the hotspot-compiler-dev mailing list