comparison src/share/vm/opto/callnode.cpp @ 6266:1d7922586cf6

7023639: JSR 292 method handle invocation needs a fast path for compiled code 6984705: JSR 292 method handle creation should not go through JNI Summary: remove assembly code for JDK 7 chained method handles Reviewed-by: jrose, twisti, kvn, mhaupt Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author twisti
date Tue, 24 Jul 2012 10:51:00 -0700
parents ee138854b3a6
children da91efe96a93
comparison
equal deleted inserted replaced
6241:aba91a731143 6266:1d7922586cf6
229 uint TailJumpNode::match_edge(uint idx) const { 229 uint TailJumpNode::match_edge(uint idx) const {
230 return TypeFunc::Parms <= idx && idx <= TypeFunc::Parms+1; 230 return TypeFunc::Parms <= idx && idx <= TypeFunc::Parms+1;
231 } 231 }
232 232
233 //============================================================================= 233 //=============================================================================
234 JVMState::JVMState(ciMethod* method, JVMState* caller) { 234 JVMState::JVMState(ciMethod* method, JVMState* caller) :
235 _method(method) {
235 assert(method != NULL, "must be valid call site"); 236 assert(method != NULL, "must be valid call site");
236 _method = method;
237 _reexecute = Reexecute_Undefined; 237 _reexecute = Reexecute_Undefined;
238 debug_only(_bci = -99); // random garbage value 238 debug_only(_bci = -99); // random garbage value
239 debug_only(_map = (SafePointNode*)-1); 239 debug_only(_map = (SafePointNode*)-1);
240 _caller = caller; 240 _caller = caller;
241 _depth = 1 + (caller == NULL ? 0 : caller->depth()); 241 _depth = 1 + (caller == NULL ? 0 : caller->depth());
244 _monoff = _stkoff + _method->max_stack(); 244 _monoff = _stkoff + _method->max_stack();
245 _scloff = _monoff; 245 _scloff = _monoff;
246 _endoff = _monoff; 246 _endoff = _monoff;
247 _sp = 0; 247 _sp = 0;
248 } 248 }
249 JVMState::JVMState(int stack_size) { 249 JVMState::JVMState(int stack_size) :
250 _method = NULL; 250 _method(NULL) {
251 _bci = InvocationEntryBci; 251 _bci = InvocationEntryBci;
252 _reexecute = Reexecute_Undefined; 252 _reexecute = Reexecute_Undefined;
253 debug_only(_map = (SafePointNode*)-1); 253 debug_only(_map = (SafePointNode*)-1);
254 _caller = NULL; 254 _caller = NULL;
255 _depth = 1; 255 _depth = 1;
524 ex->dump(1); 524 ex->dump(1);
525 } 525 }
526 } 526 }
527 _map->dump(2); 527 _map->dump(2);
528 } 528 }
529 st->print("JVMS depth=%d loc=%d stk=%d mon=%d scalar=%d end=%d mondepth=%d sp=%d bci=%d reexecute=%s method=", 529 st->print("JVMS depth=%d loc=%d stk=%d arg=%d mon=%d scalar=%d end=%d mondepth=%d sp=%d bci=%d reexecute=%s method=",
530 depth(), locoff(), stkoff(), monoff(), scloff(), endoff(), monitor_depth(), sp(), bci(), should_reexecute()?"true":"false"); 530 depth(), locoff(), stkoff(), argoff(), monoff(), scloff(), endoff(), monitor_depth(), sp(), bci(), should_reexecute()?"true":"false");
531 if (_method == NULL) { 531 if (_method == NULL) {
532 st->print_cr("(none)"); 532 st->print_cr("(none)");
533 } else { 533 } else {
534 _method->print_name(st); 534 _method->print_name(st);
535 st->cr(); 535 st->cr();