mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 02:24:40 +02:00
8277602: Deopt code does not extend the stack enough if the caller is an optimize entry blob
Reviewed-by: dlong, thartmann
This commit is contained in:
parent
915084041f
commit
98a9f03739
6 changed files with 153 additions and 8 deletions
|
@ -337,6 +337,7 @@ void vframeArrayElement::unpack_on_stack(int caller_actual_parameters,
|
|||
for(i = 0; i < expressions()->size(); i++) {
|
||||
StackValue *value = expressions()->at(i);
|
||||
intptr_t* addr = iframe()->interpreter_frame_expression_stack_at(i);
|
||||
assert(!is_bottom_frame || !(caller->is_compiled_caller() && addr >= caller->unextended_sp()), "overwriting caller frame!");
|
||||
switch(value->type()) {
|
||||
case T_INT:
|
||||
*addr = value->get_int();
|
||||
|
@ -375,6 +376,7 @@ void vframeArrayElement::unpack_on_stack(int caller_actual_parameters,
|
|||
for(i = 0; i < locals()->size(); i++) {
|
||||
StackValue *value = locals()->at(i);
|
||||
intptr_t* addr = iframe()->interpreter_frame_local_at(i);
|
||||
assert(!is_bottom_frame || !(caller->is_compiled_caller() && addr >= caller->unextended_sp()), "overwriting caller frame!");
|
||||
switch(value->type()) {
|
||||
case T_INT:
|
||||
*addr = value->get_int();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue