comparison src/share/vm/opto/matcher.cpp @ 10393:603ca7e51354

8010460: Interpreter on some platforms loads ConstMethod::_max_stack and misses extra stack slots for JSR 292 Summary: ConstMethod::max_stack() doesn't account for JSR 292 appendix. Reviewed-by: kvn
author roland
date Wed, 24 Apr 2013 11:49:38 +0200
parents b30b3c2a0cf2
children f2110083203d 693e4d04fd09
comparison
equal deleted inserted replaced
10392:c07dd9be16e8 10393:603ca7e51354
1278 } // End of for all arguments 1278 } // End of for all arguments
1279 1279
1280 // Compute number of stack slots needed to restore stack in case of 1280 // Compute number of stack slots needed to restore stack in case of
1281 // Pascal-style argument popping. 1281 // Pascal-style argument popping.
1282 mcall->_argsize = out_arg_limit_per_call - begin_out_arg_area; 1282 mcall->_argsize = out_arg_limit_per_call - begin_out_arg_area;
1283 }
1284
1285 if (is_method_handle_invoke) {
1286 // Kill some extra stack space in case method handles want to do
1287 // a little in-place argument insertion.
1288 // FIXME: Is this still necessary?
1289 int regs_per_word = NOT_LP64(1) LP64_ONLY(2); // %%% make a global const!
1290 out_arg_limit_per_call += Method::extra_stack_entries() * regs_per_word;
1291 // Do not update mcall->_argsize because (a) the extra space is not
1292 // pushed as arguments and (b) _argsize is dead (not used anywhere).
1293 } 1283 }
1294 1284
1295 // Compute the max stack slot killed by any call. These will not be 1285 // Compute the max stack slot killed by any call. These will not be
1296 // available for debug info, and will be used to adjust FIRST_STACK_mask 1286 // available for debug info, and will be used to adjust FIRST_STACK_mask
1297 // after all call sites have been visited. 1287 // after all call sites have been visited.