src/cpu/x86/vm/templateTable_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/templateTable_x86_64.cpp	Tue Oct  8 14:00:18 2013
--- new/src/cpu/x86/vm/templateTable_x86_64.cpp	Tue Oct  8 14:00:17 2013

*** 3024,3033 **** --- 3024,3034 ---- // It's final, need a null check here! __ null_check(recv); // profile this call __ profile_final_call(rax); + __ profile_arguments_type(rax, method, r13, true); __ jump_from_interpreted(method, rax); __ bind(notFinal);
*** 3038,3047 **** --- 3039,3049 ---- // profile this call __ profile_virtual_call(rax, r14, rdx); // get target Method* & entry point __ lookup_virtual_method(rax, index, method); + __ profile_arguments_type(rdx, method, r13, true); __ jump_from_interpreted(method, rdx); } void TemplateTable::invokevirtual(int byte_no) {
*** 3067,3086 **** --- 3069,3090 ---- rcx); // get receiver also for null check __ verify_oop(rcx); __ null_check(rcx); // do the call __ profile_call(rax); + __ profile_arguments_type(rax, rbx, r13, false); __ jump_from_interpreted(rbx, rax); } void TemplateTable::invokestatic(int byte_no) { transition(vtos, vtos); assert(byte_no == f1_byte, "use this argument"); prepare_invoke(byte_no, rbx); // get f1 Method* // do the call __ profile_call(rax); + __ profile_arguments_type(rax, rbx, r13, false); __ jump_from_interpreted(rbx, rax); } void TemplateTable::fast_invokevfinal(int byte_no) { transition(vtos, vtos);
*** 3134,3143 **** --- 3138,3149 ---- // interpreter entry point and a conditional jump to it in case of a null // method. __ testptr(rbx, rbx); __ jcc(Assembler::zero, no_such_method); + __ profile_arguments_type(rdx, rbx, r13, true); + // do the call // rcx: receiver // rbx,: Method* __ jump_from_interpreted(rbx, rdx); __ should_not_reach_here();
*** 3191,3200 **** --- 3197,3207 ---- // Note: rax_mtype is already pushed (if necessary) by prepare_invoke // FIXME: profile the LambdaForm also __ profile_final_call(rax); + __ profile_arguments_type(rdx, rbx_method, r13, true); __ jump_from_interpreted(rbx_method, rdx); }
*** 3224,3233 **** --- 3231,3241 ---- // Note: rax_callsite is already pushed by prepare_invoke // %%% should make a type profile for any invokedynamic that takes a ref argument // profile this call __ profile_call(r13); + __ profile_arguments_type(rdx, rbx_method, r13, false); __ verify_oop(rax_callsite); __ jump_from_interpreted(rbx_method, rdx); }

src/cpu/x86/vm/templateTable_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File