101 // Inner work method for Interpreter's frequency counter overflow.
102 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp);
103
104 public:
105 // Constants
106 static void ldc (JavaThread* thread, bool wide);
107 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode);
108
109 // Allocation
110 static void _new (JavaThread* thread, ConstantPool* pool, int index);
111 static void newarray (JavaThread* thread, BasicType type, jint size);
112 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size);
113 static void multianewarray(JavaThread* thread, jint* first_size_address);
114 static void register_finalizer(JavaThread* thread, oopDesc* obj);
115
116 // Quicken instance-of and check-cast bytecodes
117 static void quicken_io_cc(JavaThread* thread);
118
119 // Exceptions thrown by the interpreter
120 static void throw_AbstractMethodError(JavaThread* thread);
121 static void throw_IncompatibleClassChangeError(JavaThread* thread);
122 static void throw_StackOverflowError(JavaThread* thread);
123 static void throw_delayed_StackOverflowError(JavaThread* thread);
124 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, char* name, jint index);
125 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj);
126 static void create_exception(JavaThread* thread, char* name, char* message);
127 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj);
128 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception);
129 #if INCLUDE_JVMTI
130 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp);
131 #endif
132 static void throw_pending_exception(JavaThread* thread);
133
134 #ifdef CC_INTERP
135 // Profile traps in C++ interpreter.
136 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci);
137 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci);
138 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci);
139 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci);
140 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci);
141 // A dummy for macros that shall not profile traps.
|
101 // Inner work method for Interpreter's frequency counter overflow.
102 static nmethod* frequency_counter_overflow_inner(JavaThread* thread, address branch_bcp);
103
104 public:
105 // Constants
106 static void ldc (JavaThread* thread, bool wide);
107 static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode);
108
109 // Allocation
110 static void _new (JavaThread* thread, ConstantPool* pool, int index);
111 static void newarray (JavaThread* thread, BasicType type, jint size);
112 static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size);
113 static void multianewarray(JavaThread* thread, jint* first_size_address);
114 static void register_finalizer(JavaThread* thread, oopDesc* obj);
115
116 // Quicken instance-of and check-cast bytecodes
117 static void quicken_io_cc(JavaThread* thread);
118
119 // Exceptions thrown by the interpreter
120 static void throw_AbstractMethodError(JavaThread* thread);
121 static void throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* oop);
122 static void throw_AbstractMethodErrorVerbose(JavaThread* thread,
123 Klass* recvKlass,
124 Method* missingMethod);
125
126 static void throw_IncompatibleClassChangeError(JavaThread* thread);
127 static void throw_IncompatibleClassChangeErrorVerbose(JavaThread* thread,
128 Klass* resc,
129 Klass* interfaceKlass);
130 static void throw_StackOverflowError(JavaThread* thread);
131 static void throw_delayed_StackOverflowError(JavaThread* thread);
132 static void throw_ArrayIndexOutOfBoundsException(JavaThread* thread, char* name, jint index);
133 static void throw_ClassCastException(JavaThread* thread, oopDesc* obj);
134 static void create_exception(JavaThread* thread, char* name, char* message);
135 static void create_klass_exception(JavaThread* thread, char* name, oopDesc* obj);
136 static address exception_handler_for_exception(JavaThread* thread, oopDesc* exception);
137 #if INCLUDE_JVMTI
138 static void member_name_arg_or_null(JavaThread* thread, address dmh, Method* m, address bcp);
139 #endif
140 static void throw_pending_exception(JavaThread* thread);
141
142 #ifdef CC_INTERP
143 // Profile traps in C++ interpreter.
144 static void note_nullCheck_trap (JavaThread* thread, Method *method, int trap_bci);
145 static void note_div0Check_trap (JavaThread* thread, Method *method, int trap_bci);
146 static void note_rangeCheck_trap(JavaThread* thread, Method *method, int trap_bci);
147 static void note_classCheck_trap(JavaThread* thread, Method *method, int trap_bci);
148 static void note_arrayCheck_trap(JavaThread* thread, Method *method, int trap_bci);
149 // A dummy for macros that shall not profile traps.
|