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. |