158 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
160 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
161 );
162 }
163
164 { CodeletMark cm(_masm, "exception handling");
165 // (Note: this is not safepoint safe because thread may return to compiled code)
166 generate_throw_exception();
167 }
168
169 { CodeletMark cm(_masm, "throw exception entrypoints");
170 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
171 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException");
172 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
173 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
174 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException", nullptr);
175 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
176 }
177
178
179
180 #define method_entry(kind) \
181 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
182 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind, false); \
183 }
184
185 // all non-native method kinds
186 method_entry(zerolocals)
187 method_entry(zerolocals_synchronized)
188 method_entry(empty)
189 method_entry(getter)
190 method_entry(setter)
191 method_entry(abstract)
192 method_entry(java_lang_math_sin )
193 method_entry(java_lang_math_cos )
194 method_entry(java_lang_math_tan )
195 method_entry(java_lang_math_abs )
196 method_entry(java_lang_math_sqrt )
197 method_entry(java_lang_math_sqrt_strict)
198 method_entry(java_lang_math_log )
|
158 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
160 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
161 );
162 }
163
164 { CodeletMark cm(_masm, "exception handling");
165 // (Note: this is not safepoint safe because thread may return to compiled code)
166 generate_throw_exception();
167 }
168
169 { CodeletMark cm(_masm, "throw exception entrypoints");
170 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
171 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException");
172 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
173 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
174 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException", nullptr);
175 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
176 }
177
178 { CodeletMark cm(_masm, "preemption rerun adapter");
179 Interpreter::_cont_preempt_rerun_interpreter_adapter = generate_cont_preempt_rerun_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 )
195 method_entry(java_lang_math_cos )
196 method_entry(java_lang_math_tan )
197 method_entry(java_lang_math_abs )
198 method_entry(java_lang_math_sqrt )
199 method_entry(java_lang_math_sqrt_strict)
200 method_entry(java_lang_math_log )
|