RFR: 8287071: Loom: Cleanup x86_64 gen_continuation_enter

Aleksey Shipilev shade at openjdk.java.net
Fri May 20 16:40:26 UTC 2022


During x86_32 porting, I ended up rewriting the copy of x86_64 gen_continuation_enter significantly to make it more streamlined. The original x86_64 gen_continuation_enter should enjoy the similar streamlining, since it would likely to be the template for many other architectures.

There might be more things to do, I would not know until x86_32 fully works. Therefore, you might treat this PR as work in progress. You might want to take a look meanwhile.

Brief tour of changes:
 - Check the incoming registers explicitly
 - Pass explicit argument registers to `fill_continuation_entry`
 - Use the usual `NativeCall` alignment code to produce a patchable call
 - Check that static stub is emitted, fail hard otherwise
 - Handle register shuffling for `exception_handler_for_return_address` the similar way we do it in `StubGenerator`

Additional testing:
 - [x] Linux x86_64 fastdebug, prospective `jdk_loom hotspot_loom`

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

Commit messages:
 - Revert test groups
 - Fix

Changes: https://git.openjdk.java.net/jdk/pull/8802/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8802&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8287071
  Stats: 99 lines in 2 files changed: 43 ins; 13 del; 43 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8802.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8802/head:pull/8802

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


More information about the hotspot-dev mailing list