< prev index next >

src/hotspot/share/c1/c1_GraphBuilder.cpp

Print this page
@@ -40,10 +40,11 @@
  #include "compiler/compilerEvent.hpp"
  #include "interpreter/bytecode.hpp"
  #include "jfr/jfrEvents.hpp"
  #include "memory/resourceArea.hpp"
  #include "oops/oop.inline.hpp"
+ #include "runtime/runtimeUpcalls.hpp"
  #include "runtime/sharedRuntime.hpp"
  #include "runtime/vm_version.hpp"
  #include "utilities/bitMap.inline.hpp"
  #include "utilities/checkedCast.hpp"
  #include "utilities/powerOfTwo.hpp"

@@ -4077,10 +4078,18 @@
      Values* args = new Values(1);
      args->push(append(new Constant(new MethodConstant(method()))));
      append(new RuntimeCall(voidType, "dtrace_method_entry", CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), args));
    }
  
+   MethodDetails method_details(callee);
+   RuntimeUpcallInfo* upcall = RuntimeUpcalls::get_first_upcall(RuntimeUpcallType::onMethodEntry, method_details);
+   while (upcall != nullptr) {
+     Values* args = new Values(0);
+     append(new RuntimeCall(voidType, upcall->upcall_name(), upcall->upcall_address(), args));
+     upcall = RuntimeUpcalls::get_next_upcall(RuntimeUpcallType::onMethodEntry, method_details, upcall);
+   }
+ 
    if (profile_inlined_calls()) {
      profile_invocation(callee, copy_state_before_with_bci(SynchronizationEntryBCI));
    }
  
    BlockBegin* callee_start_block = block_at(0);
< prev index next >