Another question about JEP 270: Reserved Stack Areas for Critical Sections

Frederic Parain frederic.parain at oracle.com
Mon Jan 9 15:31:14 UTC 2017


Hi Andrew,

I re-read this code a few days ago and I had the same question.
I believe it is a useless left over.
The throw_delayed_StackOverflowError entry has no additional argument,
and because it unconditionally starts the propagation of an exception,
the frame is destroyed and nobody can use this value on the stack.
I think it is safe to remove but I'll run some tests to double check.

Regards,

Fred

On 01/09/2017 10:16 AM, Andrew Haley wrote:
> In interp_masm_x86.cpp I see:
>
> void InterpreterMacroAssembler::remove_activation(
> 	...
>     cmpptr(rbx, Address(rthread, JavaThread::reserved_stack_activation_offset()));
>     jcc(Assembler::lessEqual, no_reserved_zone_enabling);
>
>     call_VM_leaf(
>       CAST_FROM_FN_PTR(address, SharedRuntime::enable_stack_reserved_zone), rthread);
>     push(rthread);
>     call_VM(noreg, CAST_FROM_FN_PTR(address,
>                    InterpreterRuntime::throw_delayed_StackOverflowError));
>     should_not_reach_here();
>
> What does push(rthread) do?
>
> Thanks,
>
> Andrew.
>


More information about the hotspot-runtime-dev mailing list