< prev index next >

src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp

Print this page
@@ -42,10 +42,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"
  
  void InterpreterMacroAssembler::narrow(Register result) {

@@ -1396,10 +1397,20 @@
    }
  }
  
  void InterpreterMacroAssembler::verify_FPU(int stack_depth, TosState state) { ; }
  
+ 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.

@@ -1417,11 +1428,12 @@
      call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry),
                   rthread, c_rarg1);
    }
  
    // RedefineClasses() tracing support for obsolete method entry
-   if (log_is_enabled(Trace, redefine, class, obsolete)) {
+   if (log_is_enabled(Trace, redefine, class, obsolete) ||
+       log_is_enabled(Trace, interpreter, bytecode)) {
      get_method(c_rarg1);
      call_VM_leaf(
        CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry),
        rthread, c_rarg1);
    }
< prev index next >