158 static int fcmpg(float x, float y);
159 static int dcmpl(double x, double y);
160 static int dcmpg(double x, double y);
161
162 static int unordered_fcmplt(float x, float y);
163 static int unordered_dcmplt(double x, double y);
164 static int unordered_fcmple(float x, float y);
165 static int unordered_dcmple(double x, double y);
166 static int unordered_fcmpge(float x, float y);
167 static int unordered_dcmpge(double x, double y);
168 static int unordered_fcmpgt(float x, float y);
169 static int unordered_dcmpgt(double x, double y);
170
171 static float fneg(float f);
172 static double dneg(double f);
173 #endif
174
175 // exception handling across interpreter/compiler boundaries
176 static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
177 static address exception_handler_for_return_address(JavaThread* thread, address return_address);
178
179 #if INCLUDE_ALL_GCS
180 // G1 write barriers
181 static void g1_wb_pre(oopDesc* orig, JavaThread *thread);
182 static void g1_wb_post(void* card_addr, JavaThread* thread);
183 #endif // INCLUDE_ALL_GCS
184
185 // exception handling and implicit exceptions
186 static address compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
187 bool force_unwind, bool top_frame_only);
188 enum ImplicitExceptionKind {
189 IMPLICIT_NULL,
190 IMPLICIT_DIVIDE_BY_ZERO,
191 STACK_OVERFLOW
192 };
193 static void throw_AbstractMethodError(JavaThread* thread);
194 static void throw_IncompatibleClassChangeError(JavaThread* thread);
195 static void throw_ArithmeticException(JavaThread* thread);
196 static void throw_NullPointerException(JavaThread* thread);
197 static void throw_NullPointerException_at_call(JavaThread* thread);
|
158 static int fcmpg(float x, float y);
159 static int dcmpl(double x, double y);
160 static int dcmpg(double x, double y);
161
162 static int unordered_fcmplt(float x, float y);
163 static int unordered_dcmplt(double x, double y);
164 static int unordered_fcmple(float x, float y);
165 static int unordered_dcmple(double x, double y);
166 static int unordered_fcmpge(float x, float y);
167 static int unordered_dcmpge(double x, double y);
168 static int unordered_fcmpgt(float x, float y);
169 static int unordered_dcmpgt(double x, double y);
170
171 static float fneg(float f);
172 static double dneg(double f);
173 #endif
174
175 // exception handling across interpreter/compiler boundaries
176 static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
177 static address exception_handler_for_return_address(JavaThread* thread, address return_address);
178 static void thread_local_safepoint(JavaThread *thread);
179
180 #if INCLUDE_ALL_GCS
181 // G1 write barriers
182 static void g1_wb_pre(oopDesc* orig, JavaThread *thread);
183 static void g1_wb_post(void* card_addr, JavaThread* thread);
184 #endif // INCLUDE_ALL_GCS
185
186 // exception handling and implicit exceptions
187 static address compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
188 bool force_unwind, bool top_frame_only);
189 enum ImplicitExceptionKind {
190 IMPLICIT_NULL,
191 IMPLICIT_DIVIDE_BY_ZERO,
192 STACK_OVERFLOW
193 };
194 static void throw_AbstractMethodError(JavaThread* thread);
195 static void throw_IncompatibleClassChangeError(JavaThread* thread);
196 static void throw_ArithmeticException(JavaThread* thread);
197 static void throw_NullPointerException(JavaThread* thread);
198 static void throw_NullPointerException_at_call(JavaThread* thread);
|