comparison src/share/vm/opto/matcher.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 1d7922586cf6
children 7eca5de9e0b6
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
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