< prev index next > src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp
Print this page
#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) {
}
}
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.
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 >