diff -r aba91a731143 -r 1d7922586cf6 src/share/vm/opto/matcher.cpp --- a/src/share/vm/opto/matcher.cpp Mon Jul 23 13:04:59 2012 -0700 +++ b/src/share/vm/opto/matcher.cpp Tue Jul 24 10:51:00 2012 -0700 @@ -1283,8 +1283,9 @@ if (is_method_handle_invoke) { // Kill some extra stack space in case method handles want to do // a little in-place argument insertion. + // FIXME: Is this still necessary? int regs_per_word = NOT_LP64(1) LP64_ONLY(2); // %%% make a global const! - out_arg_limit_per_call += MethodHandlePushLimit * regs_per_word; + out_arg_limit_per_call += methodOopDesc::extra_stack_entries() * regs_per_word; // Do not update mcall->_argsize because (a) the extra space is not // pushed as arguments and (b) _argsize is dead (not used anywhere). }