Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/deoptimization.cpp @ 4055:e342a5110bed
7106774: JSR 292: nightly test inlineMHTarget fails with wrong result
Reviewed-by: kvn
author | twisti |
---|---|
date | Thu, 03 Nov 2011 01:43:26 -0700 |
parents | b20d64f83668 |
children | 04b9a2566eec e9a5e0a812c8 |
comparison
equal
deleted
inserted
replaced
4054:71699e9d8673 | 4055:e342a5110bed |
---|---|
386 // value so that the proper amount of space can be added to it's | 386 // value so that the proper amount of space can be added to it's |
387 // frame. | 387 // frame. |
388 bool caller_was_method_handle = false; | 388 bool caller_was_method_handle = false; |
389 if (deopt_sender.is_interpreted_frame()) { | 389 if (deopt_sender.is_interpreted_frame()) { |
390 methodHandle method = deopt_sender.interpreter_frame_method(); | 390 methodHandle method = deopt_sender.interpreter_frame_method(); |
391 Bytecode_invoke cur = Bytecode_invoke_check(method, | 391 Bytecode_invoke cur = Bytecode_invoke_check(method, deopt_sender.interpreter_frame_bci()); |
392 deopt_sender.interpreter_frame_bci()); | 392 if (cur.is_method_handle_invoke()) { |
393 if (cur.code() == Bytecodes::_invokedynamic || | |
394 (cur.code() == Bytecodes::_invokevirtual && | |
395 method->constants()->klass_ref_at_noresolve(cur.index()) == vmSymbols::java_lang_invoke_MethodHandle() && | |
396 methodOopDesc::is_method_handle_invoke_name(cur.name()))) { | |
397 // Method handle invokes may involve fairly arbitrary chains of | 393 // Method handle invokes may involve fairly arbitrary chains of |
398 // calls so it's impossible to know how much actual space the | 394 // calls so it's impossible to know how much actual space the |
399 // caller has for locals. | 395 // caller has for locals. |
400 caller_was_method_handle = true; | 396 caller_was_method_handle = true; |
401 } | 397 } |