RFR: 8261071: AArch64: Refactor interpreter native wrappers

Anton Kozlov akozlov at openjdk.java.net
Thu Feb 4 22:05:46 UTC 2021


Please review refactoring of interpreter signature handlers on aarch64. The main objective is to prepare for the new calling convention of macOS/AArch64, although this patch brings nothing from the new convention.

Tested with signature stress tests and tier1 on Linux/AArch64.

I have stared with a single function implementing SlowSignatureHandler (https://github.com/openjdk/jdk/commit/5ef1bd15c3bb174f4aed5e358d1ce2fff2846858#diff-1ff58ce70aeea7e9842d34e8d8fd9c94dd91182999d455618b2a171efd8f742cR164). The single function was compact but obscure. I was shuffling it until I eventually came to something similar of the initial approach with few pieces abstracted away.

The most notable changes in the final version should be
* we count only parameters passed in registers
* ldrw/strw are used to pass via stack in SignatureHandlerGenerator::pass_int

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

Commit messages:
 - Fix java stack access for int & float
 - Extract functions from SignatureHandlerGenerator
 - Finish SlowSignatureHandler
 - Simplify pass_fp/gp
 - Split load
 - Split SSh to pass_gp/fp
 - Single function for SlowSignatureHandler

Changes: https://git.openjdk.java.net/jdk/pull/2413/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2413&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261071
  Stats: 266 lines in 2 files changed: 39 ins; 147 del; 80 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2413.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2413/head:pull/2413

PR: https://git.openjdk.java.net/jdk/pull/2413


More information about the hotspot-dev mailing list