Mercurial > hg > graal-compiler
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(); |