< prev index next >
src/hotspot/cpu/ppc/templateTable_ppc_64.cpp
Print this page
rev 50788 : 8205609: [PPC64] Fix PPC64 part of 8010319 and TLH without UseSIGTRAP on AIX
Reviewed-by: dholmes
*** 3318,3340 ****
//
// Input:
// - byte_no
//
// Output:
! // - Rmethod: The method to invoke next.
// - Rret_addr: The return address to return to.
! // - Rindex: MethodType (invokehandle) or CallSite obj (invokedynamic)
// - Rrecv: Cache for "this" pointer, might be noreg if static call.
// - Rflags: Method flags from const pool cache.
//
// Kills:
// - Rscratch1
//
void TemplateTable::prepare_invoke(int byte_no,
Register Rmethod, // linked method (or i-klass)
Register Rret_addr,// return address
! Register Rindex, // itable index, MethodType, etc.
Register Rrecv, // If caller wants to see it.
Register Rflags, // If caller wants to test it.
Register Rscratch
) {
// Determine flags.
--- 3318,3340 ----
//
// Input:
// - byte_no
//
// Output:
! // - Rmethod: The method to invoke next or i-klass (invokeinterface).
// - Rret_addr: The return address to return to.
! // - Rindex: MethodType (invokehandle), CallSite obj (invokedynamic) or Method (invokeinterface)
// - Rrecv: Cache for "this" pointer, might be noreg if static call.
// - Rflags: Method flags from const pool cache.
//
// Kills:
// - Rscratch1
//
void TemplateTable::prepare_invoke(int byte_no,
Register Rmethod, // linked method (or i-klass)
Register Rret_addr,// return address
! Register Rindex, // itable index, MethodType, Method, etc.
Register Rrecv, // If caller wants to see it.
Register Rflags, // If caller wants to test it.
Register Rscratch
) {
// Determine flags.
*** 3616,3628 ****
// do the call
Register Rscratch = Rflags; // Rflags is dead now.
__ profile_final_call(Rscratch1, Rscratch);
! __ profile_arguments_type(Rindex, Rscratch, Rrecv_klass /* scratch */, true);
! __ call_from_interpreter(Rindex, Rret_addr, Rscratch, Rrecv_klass /* scratch */);
__ bind(LnotVFinal);
__ lookup_interface_method(Rrecv_klass, Rinterface_klass, noreg, noreg, Rscratch1, Rscratch2,
L_no_such_interface, /*return_method=*/false);
--- 3616,3628 ----
// do the call
Register Rscratch = Rflags; // Rflags is dead now.
__ profile_final_call(Rscratch1, Rscratch);
! __ profile_arguments_type(Rmethod, Rscratch, Rrecv_klass /* scratch */, true);
! __ call_from_interpreter(Rmethod, Rret_addr, Rscratch, Rrecv_klass /* scratch */);
__ bind(LnotVFinal);
__ lookup_interface_method(Rrecv_klass, Rinterface_klass, noreg, noreg, Rscratch1, Rscratch2,
L_no_such_interface, /*return_method=*/false);
< prev index next >