src/hotspot/cpu/sparc/templateTable_sparc.cpp
changeset 49816 a3e79f97e86b
parent 49748 6a880e576856
child 49987 e4b3cc56e2b2
child 56458 7d42ec654589
--- a/src/hotspot/cpu/sparc/templateTable_sparc.cpp	Wed Apr 18 15:57:19 2018 +0200
+++ b/src/hotspot/cpu/sparc/templateTable_sparc.cpp	Wed Apr 18 10:39:40 2018 -0400
@@ -326,7 +326,7 @@
   // non-null object (CallSite, etc.)
   assert_different_registers(Otos_i, G3_scratch);
   __ get_cache_index_at_bcp(Otos_i, G3_scratch, 1, index_size);  // load index => G3_scratch
-  __ load_resolved_reference_at_index(Otos_i, G3_scratch);
+  __ load_resolved_reference_at_index(Otos_i, G3_scratch, Lscratch);
   __ tst(Otos_i);
   __ br(Assembler::notEqual, false, Assembler::pt, resolved);
   __ delayed()->set((int)bytecode(), O1);
@@ -2016,7 +2016,7 @@
                                               Register Roffset,
                                               Register Rflags,
                                               bool is_static) {
-  assert_different_registers(Rcache, Rflags, Roffset);
+  assert_different_registers(Rcache, Rflags, Roffset, Lscratch);
 
   ByteSize cp_base_offset = ConstantPoolCache::base_offset();
 
@@ -2026,7 +2026,7 @@
     __ ld_ptr(Rcache, cp_base_offset + ConstantPoolCacheEntry::f1_offset(), Robj);
     const int mirror_offset = in_bytes(Klass::java_mirror_offset());
     __ ld_ptr( Robj, mirror_offset, Robj);
-    __ resolve_oop_handle(Robj);
+    __ resolve_oop_handle(Robj, Lscratch);
   }
 }
 
@@ -2847,7 +2847,7 @@
     // This must be done before we get the receiver,
     // since the parameter_size includes it.
     assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "appendix expected at index+0");
-    __ load_resolved_reference_at_index(temp, index);
+    __ load_resolved_reference_at_index(temp, index, /*tmp*/recv);
     __ verify_oop(temp);
     __ push_ptr(temp);  // push appendix (MethodType, CallSite, etc.)
     __ bind(L_no_push);