On 1/30/19 21:24, David Holmes wrote:
On 31/01/2019 3:18 pm, dean.l...@oracle.com wrote:
On 1/30/19 8:59 PM, serguei.spit...@oracle.com wrote:
So, the fix needs to be more like this:
+ // Workaround for 8195635:
+ // disable pop_frame and force_early_return capabilities with Graal
+ #if INCLUDE_JVMCI
+ if (!(EnableJVMCI && UseJVMCICompiler)) {
jc.can_pop_frame = 1;
jc.can_force_early_return = 1;
+ } + #endif Not sure, if the check for EnableJVMCI can be removed
above.
We still need it to work when INCLUDE_JVMCI is not defined.
How about
JVMCI_ONLY(if (UseJVMCICompiler)) {
...
}
or
if (JVMCI_ONLY(UseJVMCICompiler) NOT_JVMCI(true)) {
...
}
Or just turn them on unconditionally first and turn off explicitly for
JVMCI:
jc.can_pop_frame = 1;
jc.can_force_early_return = 1;
+ #if INCLUDE_JVMCI
+ // Workaround for 8195635:
+ // disable pop_frame and force_early_return capabilities with Graal
+ if (EnableJVMCI && UseJVMCICompiler) {
+ jc.can_pop_frame = 0;
+ jc.can_force_early_return = 0;
+ }
+ #endif
Oh, Dean is right.
We need these caps initialized even if the macro INCLUDE_JVMCI is undefined.
Then I like variant from David above.
Thanks,
Serguei
David
dl