--- old/src/cpu/x86/vm/templateInterpreter_x86_64.cpp 2011-10-19 08:37:06.151187267 -0700 +++ new/src/cpu/x86/vm/templateInterpreter_x86_64.cpp 2011-10-19 08:37:05.877607564 -0700 @@ -1622,6 +1622,12 @@ // sender_sp is fp+16 XXX intptr_t* locals = interpreter_frame->sender_sp() + max_locals - 1; +#ifdef ASSERT + if (caller->is_interpreted_frame()) { + assert(locals < caller->fp() + frame::interpreter_frame_initial_sp_offset, "bad placement"); + } +#endif + interpreter_frame->interpreter_frame_set_locals(locals); BasicObjectLock* montop = interpreter_frame->interpreter_frame_monitor_begin(); BasicObjectLock* monbot = montop - moncount;