Skip to content

Commit bea2b02

Browse files
committed
8360219: [AIX] assert(locals_base >= l2) failed: bad placement
Reviewed-by: dlong, mdoerr
1 parent 051f39e commit bea2b02

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/hotspot/cpu/ppc/abstractInterpreter_ppc.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ int AbstractInterpreter::size_activation(int max_stack,
100100
// It is also guaranteed to be walkable even though it is in a skeletal state
101101
//
102102
// is_top_frame == true:
103-
// We're processing the *oldest* interpreter frame!
103+
// We're processing the *youngest* interpreter frame on top of stack!
104104
//
105105
// pop_frame_extra_args:
106106
// If this is != 0 we are returning to a deoptimized frame by popping
@@ -131,8 +131,9 @@ void AbstractInterpreter::layout_activation(Method* method,
131131
#ifdef ASSERT
132132
if (caller->is_interpreted_frame()) {
133133
assert(locals_base <= caller->interpreter_frame_expression_stack(), "bad placement");
134-
const int caller_abi_bytesize = (is_bottom_frame ? frame::top_ijava_frame_abi_size : frame::parent_ijava_frame_abi_size);
135-
intptr_t* l2 = caller->sp() + method->max_locals() - 1 + (caller_abi_bytesize / Interpreter::stackElementSize);
134+
// If the bottom frame's caller was thawed then it has frame::java_abi (aka parent_ijava_frame_abi).
135+
// With an ordinary i2c call it would keep the larger frame::top_ijava_frame_abi
136+
intptr_t* l2 = caller->sp() + method->max_locals() - 1 + (frame::parent_ijava_frame_abi_size / Interpreter::stackElementSize);
136137
assert(locals_base >= l2, "bad placement");
137138
}
138139
#endif

0 commit comments

Comments
 (0)