< prev index next >

src/hotspot/share/oops/method.cpp

Print this page

@@ -1216,17 +1216,27 @@
     methodHandle mh(THREAD, this);
     link_method(mh, CHECK);
   }
 }
 
-address Method::from_compiled_entry_no_trampoline() const {
+address Method::from_compiled_entry_no_trampoline(bool caller_is_c1) const {
   CompiledMethod *code = OrderAccess::load_acquire(&_code);
+  if (caller_is_c1) {
+    // C1 - value arguments are passed as objects
+    if (code) {
+      return code->verified_value_entry_point();
+    } else {
+      return adapter()->get_c2i_value_entry();
+    }
+  } else {
+    // C2 - value arguments may be passed as unpacked fields
   if (code) {
     return code->verified_entry_point();
   } else {
     return adapter()->get_c2i_entry();
   }
+  }
 }
 
 // The verified_code_entry() must be called when a invoke is resolved
 // on this method.
 
< prev index next >