< 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,23 +3318,23 @@
 //
 // Input:
 //   - byte_no
 //
 // Output:
-//   - Rmethod:        The method to invoke next.
+//   - Rmethod:        The method to invoke next or i-klass (invokeinterface).
 //   - Rret_addr:      The return address to return to.
-//   - Rindex:         MethodType (invokehandle) or CallSite obj (invokedynamic)
+//   - 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, etc.
+                                   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,13 +3616,13 @@
   // do the call
 
   Register Rscratch = Rflags; // Rflags is dead now.
 
   __ profile_final_call(Rscratch1, Rscratch);
-  __ profile_arguments_type(Rindex, Rscratch, Rrecv_klass /* scratch */, true);
+  __ profile_arguments_type(Rmethod, Rscratch, Rrecv_klass /* scratch */, true);
 
-  __ call_from_interpreter(Rindex, Rret_addr, Rscratch, Rrecv_klass /* scratch */);
+  __ 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 >