115 static void create_exception(JavaThread* thread, char* name, char* message); 116 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj); 117 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception); 118 #if INCLUDE_JVMTI 119 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp); 120 #endif 121 static void throw_pending_exception(JavaThread* thread); 122 123 #ifdef CC_INTERP 124 // Profile traps in C++ interpreter. 125 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci); 126 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci); 127 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci); 128 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci); 129 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci); 130 // A dummy for macros that shall not profile traps. 131 static void note_no_trap(JavaThread* thread, Method *method, int trap_bci) {} 132 #endif // CC_INTERP 133 134 static void resolve_from_cache(JavaThread* thread, Bytecodes::Code bytecode); 135 private: 136 // Statics & fields 137 static void resolve_get_put(JavaThread* thread, Bytecodes::Code bytecode); 138 139 // Calls 140 static void resolve_invoke(JavaThread* thread, Bytecodes::Code bytecode); 141 static void resolve_invokehandle (JavaThread* thread); 142 static void resolve_invokedynamic(JavaThread* thread); 143 144 public: 145 // Synchronization 146 static void monitorenter(JavaThread* thread, BasicObjectLock* elem); 147 static void monitorexit (JavaThread* thread, BasicObjectLock* elem); 148 149 static void throw_illegal_monitor_state_exception(JavaThread* thread); 150 static void new_illegal_monitor_state_exception(JavaThread* thread); 151 152 // Breakpoints 153 static void _breakpoint(JavaThread* thread, Method* method, address bcp); 154 static Bytecodes::Code get_original_bytecode_at(JavaThread* thread, Method* method, address bcp); | 115 static void create_exception(JavaThread* thread, char* name, char* message); 116 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj); 117 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception); 118 #if INCLUDE_JVMTI 119 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp); 120 #endif 121 static void throw_pending_exception(JavaThread* thread); 122 123 #ifdef CC_INTERP 124 // Profile traps in C++ interpreter. 125 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci); 126 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci); 127 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci); 128 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci); 129 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci); 130 // A dummy for macros that shall not profile traps. 131 static void note_no_trap(JavaThread* thread, Method *method, int trap_bci) {} 132 #endif // CC_INTERP 133 134 static void resolve_from_cache(JavaThread* thread, Bytecodes::Code bytecode); 135 136 #ifndef CC_INTERP 137 static address entry_for_typed_bytecode(JavaThread* thread); 138 #endif 139 140 private: 141 // Statics & fields 142 static void resolve_get_put(JavaThread* thread, Bytecodes::Code bytecode); 143 144 // Calls 145 static void resolve_invoke(JavaThread* thread, Bytecodes::Code bytecode); 146 static void resolve_invokehandle (JavaThread* thread); 147 static void resolve_invokedynamic(JavaThread* thread); 148 149 public: 150 // Synchronization 151 static void monitorenter(JavaThread* thread, BasicObjectLock* elem); 152 static void monitorexit (JavaThread* thread, BasicObjectLock* elem); 153 154 static void throw_illegal_monitor_state_exception(JavaThread* thread); 155 static void new_illegal_monitor_state_exception(JavaThread* thread); 156 157 // Breakpoints 158 static void _breakpoint(JavaThread* thread, Method* method, address bcp); 159 static Bytecodes::Code get_original_bytecode_at(JavaThread* thread, Method* method, address bcp); |