< 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 >