< prev index next >
src/share/vm/runtime/sharedRuntime.hpp
Print this page
@@ -197,10 +197,13 @@
static void throw_NullPointerException_at_call(JavaThread* thread);
static void throw_StackOverflowError(JavaThread* thread);
static address continuation_for_implicit_exception(JavaThread* thread,
address faulting_pc,
ImplicitExceptionKind exception_kind);
+#if INCLUDE_JVMCI
+ static address deoptimize_for_implicit_exception(JavaThread* thread, address pc, nmethod* nm, int deopt_reason);
+#endif
// Shared stub locations
static address get_poll_stub(address pc);
static address get_ic_miss_stub() {
@@ -415,10 +418,16 @@
int max_arg,
const BasicType *sig_bt,
const VMRegPair *regs,
AdapterFingerPrint* fingerprint);
+ static void gen_i2c_adapter(MacroAssembler *_masm,
+ int total_args_passed,
+ int comp_args_on_stack,
+ const BasicType *sig_bt,
+ const VMRegPair *regs);
+
// OSR support
// OSR_migration_begin will extract the jvm state from an interpreter
// frame (locals, monitors) and store the data in a piece of C heap
// storage. This then allows the interpreter frame to be removed from the
@@ -473,10 +482,11 @@
static void block_for_jni_critical(JavaThread* thread);
// A compiled caller has just called the interpreter, but compiled code
// exists. Patch the caller so he no longer calls into the interpreter.
static void fixup_callers_callsite(Method* moop, address ret_pc);
+ static bool should_fixup_call_destination(address destination, address entry_point, address caller_pc, Method* moop, CodeBlob* cb);
// Slow-path Locking and Unlocking
static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
@@ -671,13 +681,13 @@
static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint,
address i2c_entry, address c2i_entry, address c2i_unverified_entry);
static void create_native_wrapper(methodHandle method);
static AdapterHandlerEntry* get_adapter(methodHandle method);
- static void print_handler(CodeBlob* b) { print_handler_on(tty, b); }
- static void print_handler_on(outputStream* st, CodeBlob* b);
- static bool contains(CodeBlob* b);
+ static void print_handler(const CodeBlob* b) { print_handler_on(tty, b); }
+ static void print_handler_on(outputStream* st, const CodeBlob* b);
+ static bool contains(const CodeBlob* b);
#ifndef PRODUCT
static void print_statistics();
#endif // PRODUCT
};
< prev index next >