154 generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
155 generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
156 generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
157 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
158 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
160 );
161 }
162
163 { CodeletMark cm(_masm, "exception handling");
164 // (Note: this is not safepoint safe because thread may return to compiled code)
165 generate_throw_exception();
166 }
167
168 { CodeletMark cm(_masm, "throw exception entrypoints");
169 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
170 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException");
171 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
172 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
173 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException", nullptr);
174 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
175 }
176
177 { CodeletMark cm(_masm, "preemption resume adapter");
178 Interpreter::_cont_resume_interpreter_adapter = generate_cont_resume_interpreter_adapter();
179 }
180
181 #define method_entry(kind) \
182 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
183 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind, false); \
184 }
185
186 // all non-native method kinds
187 method_entry(zerolocals)
188 method_entry(zerolocals_synchronized)
189 method_entry(empty)
190 method_entry(getter)
191 method_entry(setter)
192 method_entry(abstract)
193 method_entry(java_lang_math_sin )
|
154 generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
155 generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
156 generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
157 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
158 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
160 );
161 }
162
163 { CodeletMark cm(_masm, "exception handling");
164 // (Note: this is not safepoint safe because thread may return to compiled code)
165 generate_throw_exception();
166 }
167
168 { CodeletMark cm(_masm, "throw exception entrypoints");
169 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
170 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException");
171 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
172 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
173 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException", nullptr);
174 Interpreter::_throw_NPE_UninitializedField_entry = generate_exception_handler("java/lang/NullPointerException", "Uninitialized null-restricted field");
175 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
176 }
177
178 { CodeletMark cm(_masm, "preemption resume adapter");
179 Interpreter::_cont_resume_interpreter_adapter = generate_cont_resume_interpreter_adapter();
180 }
181
182 #define method_entry(kind) \
183 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
184 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind, false); \
185 }
186
187 // all non-native method kinds
188 method_entry(zerolocals)
189 method_entry(zerolocals_synchronized)
190 method_entry(empty)
191 method_entry(getter)
192 method_entry(setter)
193 method_entry(abstract)
194 method_entry(java_lang_math_sin )
|