comparison src/share/vm/utilities/globalDefinitions_gcc.hpp @ 1681:126ea7725993

6953477: Increase portability and flexibility of building Hotspot Summary: A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail. Reviewed-by: phh, never, coleenp, dholmes
author bobv
date Tue, 03 Aug 2010 08:13:38 -0400
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1680:a64438a2b7e8 1681:126ea7725993
214 //---------------------------------------------------------------------------------------------------- 214 //----------------------------------------------------------------------------------------------------
215 // Debugging 215 // Debugging
216 216
217 #define DEBUG_EXCEPTION ::abort(); 217 #define DEBUG_EXCEPTION ::abort();
218 218
219 #ifdef ARM
220 #ifdef SOLARIS
221 #define BREAKPOINT __asm__ volatile (".long 0xe1200070")
222 #else
223 #define BREAKPOINT __asm__ volatile (".long 0xe7f001f0")
224 #endif
225 #else
219 extern "C" void breakpoint(); 226 extern "C" void breakpoint();
220 #define BREAKPOINT ::breakpoint() 227 #define BREAKPOINT ::breakpoint()
228 #endif
221 229
222 // checking for nanness 230 // checking for nanness
223 #ifdef SOLARIS 231 #ifdef SOLARIS
224 #ifdef SPARC 232 #ifdef SPARC
225 inline int g_isnan(float f) { return isnanf(f); } 233 inline int g_isnan(float f) { return isnanf(f); }
232 inline int g_isnan(float f) { return isnanf(f); } 240 inline int g_isnan(float f) { return isnanf(f); }
233 inline int g_isnan(double f) { return isnan(f); } 241 inline int g_isnan(double f) { return isnan(f); }
234 #else 242 #else
235 #error "missing platform-specific definition here" 243 #error "missing platform-specific definition here"
236 #endif 244 #endif
245
246 // GCC 4.3 does not allow 0.0/0.0 to produce a NAN value
247 #if (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
248 #define CAN_USE_NAN_DEFINE 1
249 #endif
250
237 251
238 // Checking for finiteness 252 // Checking for finiteness
239 253
240 inline int g_isfinite(jfloat f) { return finite(f); } 254 inline int g_isfinite(jfloat f) { return finite(f); }
241 inline int g_isfinite(jdouble f) { return finite(f); } 255 inline int g_isfinite(jdouble f) { return finite(f); }