Mercurial > hg > truffle
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 |