< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page
@@ -728,11 +728,11 @@
    int framesize = C->output()->frame_size_in_bytes();
    int bangsize = C->output()->bang_size_in_bytes();
  
    if (C->clinit_barrier_on_entry()) {
      assert(VM_Version::supports_fast_class_init_checks(), "sanity");
-     assert(!C->method()->holder()->is_not_initialized(), "initialization should have been started");
+     assert(!C->method()->holder()->is_not_initialized() || C->do_clinit_barriers(), "initialization should have been started");
  
      Label L_skip_barrier;
      Register klass = rscratch1;
  
      __ mov_metadata(klass, C->method()->holder()->constant_encoding());

@@ -1754,11 +1754,16 @@
      assert(off1 - off0 == clear_avx_size(), "correct size prediction");
    %}
  
    enc_class Java_To_Runtime(method meth) %{
      // No relocation needed
-     __ mov64(r10, (int64_t) $meth$$method);
+     if (SCCache::is_on_for_write()) {
+       // Created runtime_call_type relocation when caching code
+       __ lea(r10, RuntimeAddress((address)$meth$$method));
+     } else {
+       __ mov64(r10, (int64_t) $meth$$method);
+     }
      __ call(r10);
      __ post_call_nop();
    %}
  
    enc_class Java_Static_Call(method meth)
< prev index next >