187 188 // exception handling and implicit exceptions 189 static address compute_compiled_exc_handler(CompiledMethod* nm, address ret_pc, Handle& exception, 190 bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred); 191 enum ImplicitExceptionKind { 192 IMPLICIT_NULL, 193 IMPLICIT_DIVIDE_BY_ZERO, 194 STACK_OVERFLOW 195 }; 196 static void throw_AbstractMethodError(JavaThread* thread); 197 static void throw_IncompatibleClassChangeError(JavaThread* thread); 198 static void throw_ArithmeticException(JavaThread* thread); 199 static void throw_NullPointerException(JavaThread* thread); 200 static void throw_NullPointerException_at_call(JavaThread* thread); 201 static void throw_StackOverflowError(JavaThread* thread); 202 static void throw_delayed_StackOverflowError(JavaThread* thread); 203 static void throw_StackOverflowError_common(JavaThread* thread, bool delayed); 204 static address continuation_for_implicit_exception(JavaThread* thread, 205 address faulting_pc, 206 ImplicitExceptionKind exception_kind); 207 #if INCLUDE_JVMCI 208 static address deoptimize_for_implicit_exception(JavaThread* thread, address pc, CompiledMethod* nm, int deopt_reason); 209 #endif 210 211 // Post-slow-path-allocation, pre-initializing-stores step for 212 // implementing e.g. ReduceInitialCardMarks 213 static void on_slowpath_allocation_exit(JavaThread* thread); 214 215 static void enable_stack_reserved_zone(JavaThread* thread); 216 static frame look_for_reserved_stack_annotated_method(JavaThread* thread, frame fr); 217 218 // Shared stub locations 219 static address get_poll_stub(address pc); 220 221 static address get_ic_miss_stub() { 222 assert(_ic_miss_blob!= NULL, "oops"); 223 return _ic_miss_blob->entry_point(); 224 } 225 226 static address get_handle_wrong_method_stub() { 227 assert(_wrong_method_blob!= NULL, "oops"); 228 return _wrong_method_blob->entry_point(); 229 } | 187 188 // exception handling and implicit exceptions 189 static address compute_compiled_exc_handler(CompiledMethod* nm, address ret_pc, Handle& exception, 190 bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred); 191 enum ImplicitExceptionKind { 192 IMPLICIT_NULL, 193 IMPLICIT_DIVIDE_BY_ZERO, 194 STACK_OVERFLOW 195 }; 196 static void throw_AbstractMethodError(JavaThread* thread); 197 static void throw_IncompatibleClassChangeError(JavaThread* thread); 198 static void throw_ArithmeticException(JavaThread* thread); 199 static void throw_NullPointerException(JavaThread* thread); 200 static void throw_NullPointerException_at_call(JavaThread* thread); 201 static void throw_StackOverflowError(JavaThread* thread); 202 static void throw_delayed_StackOverflowError(JavaThread* thread); 203 static void throw_StackOverflowError_common(JavaThread* thread, bool delayed); 204 static address continuation_for_implicit_exception(JavaThread* thread, 205 address faulting_pc, 206 ImplicitExceptionKind exception_kind); 207 208 // Post-slow-path-allocation, pre-initializing-stores step for 209 // implementing e.g. ReduceInitialCardMarks 210 static void on_slowpath_allocation_exit(JavaThread* thread); 211 212 static void enable_stack_reserved_zone(JavaThread* thread); 213 static frame look_for_reserved_stack_annotated_method(JavaThread* thread, frame fr); 214 215 // Shared stub locations 216 static address get_poll_stub(address pc); 217 218 static address get_ic_miss_stub() { 219 assert(_ic_miss_blob!= NULL, "oops"); 220 return _ic_miss_blob->entry_point(); 221 } 222 223 static address get_handle_wrong_method_stub() { 224 assert(_wrong_method_blob!= NULL, "oops"); 225 return _wrong_method_blob->entry_point(); 226 } |