mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
8024468: PPC64 (part 201): cppInterpreter: implement bytecode profiling
Implement profiling for c2 jit compilation. Also enable new cppInterpreter features. Reviewed-by: kvn
This commit is contained in:
parent
34c8023949
commit
0732a739b3
11 changed files with 790 additions and 103 deletions
|
@ -66,9 +66,15 @@ class InterpreterRuntime: AllStatic {
|
|||
|
||||
static ConstantPoolCacheEntry* cache_entry_at(JavaThread *thread, int i) { return method(thread)->constants()->cache()->entry_at(i); }
|
||||
static ConstantPoolCacheEntry* cache_entry(JavaThread *thread) { return cache_entry_at(thread, Bytes::get_native_u2(bcp(thread) + 1)); }
|
||||
static void note_trap_inner(JavaThread* thread, int reason,
|
||||
methodHandle trap_method, int trap_bci, TRAPS);
|
||||
static void note_trap(JavaThread *thread, int reason, TRAPS);
|
||||
#ifdef CC_INTERP
|
||||
// Profile traps in C++ interpreter.
|
||||
static void note_trap(JavaThread* thread, int reason, Method *method, int trap_bci);
|
||||
#endif // CC_INTERP
|
||||
|
||||
// Inner work method for Interpreter's frequency counter overflow
|
||||
// Inner work method for Interpreter's frequency counter overflow.
|
||||
static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp);
|
||||
|
||||
public:
|
||||
|
@ -100,6 +106,17 @@ class InterpreterRuntime: AllStatic {
|
|||
#endif
|
||||
static void throw_pending_exception(JavaThread* thread);
|
||||
|
||||
#ifdef CC_INTERP
|
||||
// Profile traps in C++ interpreter.
|
||||
static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci);
|
||||
static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci);
|
||||
static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci);
|
||||
static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci);
|
||||
static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci);
|
||||
// A dummy for makros that shall not profile traps.
|
||||
static void note_no_trap(JavaThread* thread, Method *method, int trap_bci) {}
|
||||
#endif // CC_INTERP
|
||||
|
||||
// Statics & fields
|
||||
static void resolve_get_put(JavaThread* thread, Bytecodes::Code bytecode);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue