hotspot/src/share/vm/opto/matcher.cpp
changeset 13728 882756847a04
parent 13391 30245956af37
child 13886 8d82c4dfa722
equal deleted inserted replaced
13727:caf5eb7dd4a7 13728:882756847a04
   196   // Map a Java-signature return type into return register-value
   196   // Map a Java-signature return type into return register-value
   197   // machine registers for 0, 1 and 2 returned values.
   197   // machine registers for 0, 1 and 2 returned values.
   198   const TypeTuple *range = C->tf()->range();
   198   const TypeTuple *range = C->tf()->range();
   199   if( range->cnt() > TypeFunc::Parms ) { // If not a void function
   199   if( range->cnt() > TypeFunc::Parms ) { // If not a void function
   200     // Get ideal-register return type
   200     // Get ideal-register return type
   201     int ireg = base2reg[range->field_at(TypeFunc::Parms)->base()];
   201     int ireg = range->field_at(TypeFunc::Parms)->ideal_reg();
   202     // Get machine return register
   202     // Get machine return register
   203     uint sop = C->start()->Opcode();
   203     uint sop = C->start()->Opcode();
   204     OptoRegPair regs = return_value(ireg, false);
   204     OptoRegPair regs = return_value(ireg, false);
   205 
   205 
   206     // And mask for same
   206     // And mask for same
  1283   if (is_method_handle_invoke) {
  1283   if (is_method_handle_invoke) {
  1284     // Kill some extra stack space in case method handles want to do
  1284     // Kill some extra stack space in case method handles want to do
  1285     // a little in-place argument insertion.
  1285     // a little in-place argument insertion.
  1286     // FIXME: Is this still necessary?
  1286     // FIXME: Is this still necessary?
  1287     int regs_per_word  = NOT_LP64(1) LP64_ONLY(2); // %%% make a global const!
  1287     int regs_per_word  = NOT_LP64(1) LP64_ONLY(2); // %%% make a global const!
  1288     out_arg_limit_per_call += methodOopDesc::extra_stack_entries() * regs_per_word;
  1288     out_arg_limit_per_call += Method::extra_stack_entries() * regs_per_word;
  1289     // Do not update mcall->_argsize because (a) the extra space is not
  1289     // Do not update mcall->_argsize because (a) the extra space is not
  1290     // pushed as arguments and (b) _argsize is dead (not used anywhere).
  1290     // pushed as arguments and (b) _argsize is dead (not used anywhere).
  1291   }
  1291   }
  1292 
  1292 
  1293   // Compute the max stack slot killed by any call.  These will not be
  1293   // Compute the max stack slot killed by any call.  These will not be