< prev index next >

src/hotspot/cpu/x86/interp_masm_x86.cpp

Print this page
@@ -38,10 +38,11 @@
  #include "prims/jvmtiExport.hpp"
  #include "prims/jvmtiThreadState.hpp"
  #include "runtime/basicLock.hpp"
  #include "runtime/frame.inline.hpp"
  #include "runtime/javaThread.hpp"
+ #include "runtime/runtimeUpcalls.hpp"
  #include "runtime/safepointMechanism.hpp"
  #include "runtime/sharedRuntime.hpp"
  #include "utilities/powerOfTwo.hpp"
  
  // Implementation of InterpreterMacroAssembler

@@ -1987,10 +1988,21 @@
    if (where != nullptr) {
      jcc(Assembler::zero, *where);
    }
  }
  
+ void InterpreterMacroAssembler::generate_runtime_upcalls_on_method_entry()
+ {
+   address upcall = RuntimeUpcalls::on_method_entry_upcall_address();
+   if (RuntimeUpcalls::does_upcall_need_method_parameter(upcall)) {
+     get_method(c_rarg1);
+     call_VM(noreg,upcall, c_rarg1);
+   } else {
+     call_VM(noreg,upcall);
+   }
+ }
+ 
  void InterpreterMacroAssembler::notify_method_entry() {
    // Whenever JVMTI is interp_only_mode, method entry/exit events are sent to
    // track stack depth.  If it is possible to enter interp_only_mode we add
    // the code to check if the event should be sent.
    Register rthread = LP64_ONLY(r15_thread) NOT_LP64(rcx);
< prev index next >