389
390 // Intrinsics make gcc generate code for these.
391 float SharedRuntime::fneg(float f) {
392 return -f;
393 }
394
395 double SharedRuntime::dneg(double f) {
396 return -f;
397 }
398
399 #endif // __SOFTFP__
400
401 #if defined(__SOFTFP__) || defined(E500V2)
402 // Intrinsics make gcc generate code for these.
403 double SharedRuntime::dabs(double f) {
404 return (f <= (double)0.0) ? (double)0.0 - f : f;
405 }
406
407 #endif
408
409 #if defined(__SOFTFP__) || defined(PPC)
410 double SharedRuntime::dsqrt(double f) {
411 return sqrt(f);
412 }
413 #endif
414
415 JRT_LEAF(jint, SharedRuntime::f2i(jfloat x))
416 if (g_isnan(x))
417 return 0;
418 if (x >= (jfloat) max_jint)
419 return max_jint;
420 if (x <= (jfloat) min_jint)
421 return min_jint;
422 return (jint) x;
423 JRT_END
424
425
426 JRT_LEAF(jlong, SharedRuntime::f2l(jfloat x))
427 if (g_isnan(x))
428 return 0;
429 if (x >= (jfloat) max_jlong)
|
389
390 // Intrinsics make gcc generate code for these.
391 float SharedRuntime::fneg(float f) {
392 return -f;
393 }
394
395 double SharedRuntime::dneg(double f) {
396 return -f;
397 }
398
399 #endif // __SOFTFP__
400
401 #if defined(__SOFTFP__) || defined(E500V2)
402 // Intrinsics make gcc generate code for these.
403 double SharedRuntime::dabs(double f) {
404 return (f <= (double)0.0) ? (double)0.0 - f : f;
405 }
406
407 #endif
408
409 #if defined(__SOFTFP__) || defined(PPC32)
410 double SharedRuntime::dsqrt(double f) {
411 return sqrt(f);
412 }
413 #endif
414
415 JRT_LEAF(jint, SharedRuntime::f2i(jfloat x))
416 if (g_isnan(x))
417 return 0;
418 if (x >= (jfloat) max_jint)
419 return max_jint;
420 if (x <= (jfloat) min_jint)
421 return min_jint;
422 return (jint) x;
423 JRT_END
424
425
426 JRT_LEAF(jlong, SharedRuntime::f2l(jfloat x))
427 if (g_isnan(x))
428 return 0;
429 if (x >= (jfloat) max_jlong)
|