66 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size);
67 static void multianewarray(JavaThread* thread, jint* first_size_address);
68 static void register_finalizer(JavaThread* thread, oopDesc* obj);
69
70 // Quicken instance-of and check-cast bytecodes
71 static void quicken_io_cc(JavaThread* thread);
72
73 // Exceptions thrown by the interpreter
74 static void throw_AbstractMethodError(JavaThread* thread);
75 static void throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* oop);
76 static void throw_AbstractMethodErrorVerbose(JavaThread* thread,
77 Klass* recvKlass,
78 Method* missingMethod);
79
80 static void throw_IncompatibleClassChangeError(JavaThread* thread);
81 static void throw_IncompatibleClassChangeErrorVerbose(JavaThread* thread,
82 Klass* resc,
83 Klass* interfaceKlass);
84 static void throw_StackOverflowError(JavaThread* thread);
85 static void throw_delayed_StackOverflowError(JavaThread* thread);
86 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, char* name, jint index);
87 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj);
88 static void create_exception(JavaThread* thread, char* name, char* message);
89 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj);
90 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception);
91 #if INCLUDE_JVMTI
92 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp);
93 #endif
94 static void throw_pending_exception(JavaThread* thread);
95
96 #ifdef CC_INTERP
97 // Profile traps in C++ interpreter.
98 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci);
99 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci);
100 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci);
101 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci);
102 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci);
103 // A dummy for macros that shall not profile traps.
104 static void note_no_trap(JavaThread* thread, Method *method, int trap_bci) {}
105 #endif // CC_INTERP
106
|
66 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size);
67 static void multianewarray(JavaThread* thread, jint* first_size_address);
68 static void register_finalizer(JavaThread* thread, oopDesc* obj);
69
70 // Quicken instance-of and check-cast bytecodes
71 static void quicken_io_cc(JavaThread* thread);
72
73 // Exceptions thrown by the interpreter
74 static void throw_AbstractMethodError(JavaThread* thread);
75 static void throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* oop);
76 static void throw_AbstractMethodErrorVerbose(JavaThread* thread,
77 Klass* recvKlass,
78 Method* missingMethod);
79
80 static void throw_IncompatibleClassChangeError(JavaThread* thread);
81 static void throw_IncompatibleClassChangeErrorVerbose(JavaThread* thread,
82 Klass* resc,
83 Klass* interfaceKlass);
84 static void throw_StackOverflowError(JavaThread* thread);
85 static void throw_delayed_StackOverflowError(JavaThread* thread);
86 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, arrayOopDesc* a, jint index);
87 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj);
88 static void create_exception(JavaThread* thread, char* name, char* message);
89 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj);
90 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception);
91 #if INCLUDE_JVMTI
92 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp);
93 #endif
94 static void throw_pending_exception(JavaThread* thread);
95
96 #ifdef CC_INTERP
97 // Profile traps in C++ interpreter.
98 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci);
99 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci);
100 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci);
101 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci);
102 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci);
103 // A dummy for macros that shall not profile traps.
104 static void note_no_trap(JavaThread* thread, Method *method, int trap_bci) {}
105 #endif // CC_INTERP
106
|