Revision bc4347b8 fpu/softfloat-native.c
b/fpu/softfloat-native.c | ||
---|---|---|
12 | 12 |
#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) || \ |
13 | 13 |
(defined(CONFIG_SOLARIS) && CONFIG_SOLARIS_VERSION < 10) |
14 | 14 |
fpsetround(val); |
15 |
#elif defined(__arm__) |
|
16 |
/* nothing to do */ |
|
17 | 15 |
#else |
18 | 16 |
fesetround(val); |
19 | 17 |
#endif |
... | ... | |
365 | 363 |
|
366 | 364 |
float64 float64_round_to_int( float64 a STATUS_PARAM ) |
367 | 365 |
{ |
368 |
#if defined(__arm__) |
|
369 |
switch(STATUS(float_rounding_mode)) { |
|
370 |
default: |
|
371 |
case float_round_nearest_even: |
|
372 |
asm("rndd %0, %1" : "=f" (a) : "f"(a)); |
|
373 |
break; |
|
374 |
case float_round_down: |
|
375 |
asm("rnddm %0, %1" : "=f" (a) : "f"(a)); |
|
376 |
break; |
|
377 |
case float_round_up: |
|
378 |
asm("rnddp %0, %1" : "=f" (a) : "f"(a)); |
|
379 |
break; |
|
380 |
case float_round_to_zero: |
|
381 |
asm("rnddz %0, %1" : "=f" (a) : "f"(a)); |
|
382 |
break; |
|
383 |
} |
|
384 |
#else |
|
385 | 366 |
return rint(a); |
386 |
#endif |
|
387 | 367 |
} |
388 | 368 |
|
389 | 369 |
float64 float64_rem( float64 a, float64 b STATUS_PARAM) |
Also available in: Unified diff