--- old/src/hotspot/share/oops/method.cpp 2019-06-25 22:41:25.810942801 -0700 +++ new/src/hotspot/share/oops/method.cpp 2019-06-25 22:41:25.486930931 -0700 @@ -1218,12 +1218,22 @@ } } -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 (code) { - return code->verified_entry_point(); + 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 { - return adapter()->get_c2i_entry(); + // C2 - value arguments may be passed as unpacked fields + if (code) { + return code->verified_entry_point(); + } else { + return adapter()->get_c2i_entry(); + } } }