156 EntryPoint(
157 generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
158 generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
160 generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
161 generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
162 generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
163 generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
164 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
165 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
166 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
167 );
168 }
169
170 { CodeletMark cm(_masm, "exception handling");
171 // (Note: this is not safepoint safe because thread may return to compiled code)
172 generate_throw_exception();
173 }
174
175 { CodeletMark cm(_masm, "throw exception entrypoints");
176 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException");
177 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException" );
178 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException" , "/ by zero");
179 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
180 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException" , NULL );
181 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
182 }
183
184
185
186 #define method_entry(kind) \
187 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
188 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
189 Interpreter::update_cds_entry_table(Interpreter::kind); \
190 }
191
192 // all non-native method kinds
193 method_entry(zerolocals)
194 method_entry(zerolocals_synchronized)
195 method_entry(empty)
196 method_entry(accessor)
197 method_entry(abstract)
198 method_entry(java_lang_math_sin )
199 method_entry(java_lang_math_cos )
200 method_entry(java_lang_math_tan )
|
156 EntryPoint(
157 generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
158 generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
159 generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
160 generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
161 generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
162 generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
163 generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
164 generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
165 generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
166 generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
167 );
168 }
169
170 { CodeletMark cm(_masm, "exception handling");
171 // (Note: this is not safepoint safe because thread may return to compiled code)
172 generate_throw_exception();
173 }
174
175 { CodeletMark cm(_masm, "throw exception entrypoints");
176 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
177 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException");
178 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
179 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
180 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException", NULL);
181 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
182 }
183
184
185
186 #define method_entry(kind) \
187 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
188 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
189 Interpreter::update_cds_entry_table(Interpreter::kind); \
190 }
191
192 // all non-native method kinds
193 method_entry(zerolocals)
194 method_entry(zerolocals_synchronized)
195 method_entry(empty)
196 method_entry(accessor)
197 method_entry(abstract)
198 method_entry(java_lang_math_sin )
199 method_entry(java_lang_math_cos )
200 method_entry(java_lang_math_tan )
|