diff src/cpu/sparc/vm/templateTable_sparc.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 38fea01eb669
children 286c498ae0d4
line wrap: on
line diff
--- a/src/cpu/sparc/vm/templateTable_sparc.cpp	Wed Apr 20 18:29:35 2011 -0700
+++ b/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Apr 21 00:25:40 2011 -0700
@@ -3289,8 +3289,6 @@
                              /*virtual*/ false, /*vfinal*/ false, /*indy*/ true);
   __ mov(SP, O5_savedSP);  // record SP that we wanted the callee to restore
 
-  __ verify_oop(G5_callsite);
-
   // profile this call
   __ profile_call(O4);
 
@@ -3303,8 +3301,10 @@
   __ sll(Rret, LogBytesPerWord, Rret);
   __ ld_ptr(Rtemp, Rret, Rret);  // get return address
 
+  __ verify_oop(G5_callsite);
   __ load_heap_oop(G5_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
   __ null_check(G3_method_handle);
+  __ verify_oop(G3_method_handle);
 
   // Adjust Rret first so Llast_SP can be same as Rret
   __ add(Rret, -frame::pc_return_offset, O7);