Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/templateTable_x86_64.cpp @ 3279:08ccee2c4dbf
6993078: JSR 292 too many pushes: Lesp points into register window
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Thu, 21 Apr 2011 00:25:40 -0700 |
parents | bbe95b4337f1 |
children | 286c498ae0d4 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateTable_x86_64.cpp Wed Apr 20 18:29:35 2011 -0700 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp Thu Apr 21 00:25:40 2011 -0700 @@ -3128,7 +3128,6 @@ return; } - assert(byte_no == f1_oop, "use this argument"); prepare_invoke(rax, rbx, byte_no); // rax: CallSite object (f1) @@ -3139,14 +3138,14 @@ Register rax_callsite = rax; Register rcx_method_handle = rcx; - if (ProfileInterpreter) { - // %%% should make a type profile for any invokedynamic that takes a ref argument - // profile this call - __ profile_call(r13); - } - - __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rcx))); + // %%% should make a type profile for any invokedynamic that takes a ref argument + // profile this call + __ profile_call(r13); + + __ verify_oop(rax_callsite); + __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rdx))); __ null_check(rcx_method_handle); + __ verify_oop(rcx_method_handle); __ prepare_to_jump_from_interpreted(); __ jump_to_method_handle_entry(rcx_method_handle, rdx); }