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