RFR: 8293654: Improve SharedRuntime handling of continuation helper out-arguments
Dean Long
dlong at openjdk.org
Tue Sep 13 06:38:40 UTC 2022
On Mon, 12 Sep 2022 16:59:45 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> (Found this while adapting current mainline to x86_32 port)
>
> After [JDK-8292584](https://bugs.openjdk.org/browse/JDK-8292584), we have `gen_continuation_yield()` that generates compiled entry, and implicitly uses the defaults for other ones (interpreter, exception). We should be more explicit about these, and verify the generators properly initialized all out-parameters.
>
> I think we are only using interpreter/exception entry in `enterContinuation`, but not in `yield`. Notably, `exception_offset` should be `-1` for `nmethod::new_native_nmethod` to treat it as "no exception handlers".
>
> There a many ways to strengthen this, this PR is the one I like. I can do the symmetric change in aarch64, once we are agree on x86_64 version.
>
> Additional testing:
> - [x] Linux x86_64 fastdebug, `hotspot_loom jdk_loom`
> - [x] Linux x86_64 fastdebug, `tier1`
Marked as reviewed by dlong (Reviewer).
src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp line 1611:
> 1609: }
> 1610:
> 1611: if (method->is_continuation_enter_intrinsic()) {
I suggest putting these if's inside an #ifdef ASSERT. Or if you don't mind breaking up the asserts, move them up into the if's above.
-------------
PR: https://git.openjdk.org/jdk/pull/10241
More information about the hotspot-compiler-dev
mailing list