17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * Copyright 2011, Richard Lowe.
29 */
30
31 /* Functions in this file are duplicated in locallibm.il. Keep them in sync */
32
33 #ifndef _LIBM_INLINES_H
34 #define _LIBM_INLINES_H
35
36 #ifdef __GNUC__
37
38 #include <sys/types.h>
39 #include <sys/ieeefp.h>
40
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44
45 extern __GNU_INLINE double
46 __inline_sqrt(double d)
47 {
48 double ret;
49
50 __asm__ __volatile__("fsqrtd %1,%0\n\t" : "=e" (ret) : "e" (d));
51 return (ret);
52 }
53
54 extern __GNU_INLINE float
55 __inline_sqrtf(float f)
56 {
57 float ret;
278 fabs(double d)
279 {
280 double ret;
281
282 __asm__ __volatile__("fabsd %1,%0\n\t" : "=e" (ret) : "e" (d));
283 return (ret);
284 }
285
286 extern __GNU_INLINE float
287 fabsf(float f)
288 {
289 float ret;
290
291 __asm__ __volatile__("fabss %1,%0\n\t" : "=f" (ret) : "f" (f));
292 return (ret);
293 }
294
295 #ifdef __cplusplus
296 }
297 #endif
298
299 #endif /* __GNUC */
300
301 #endif /* _LIBM_INLINES_H */
|
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * Copyright 2011, Richard Lowe.
29 */
30
31 /* Functions in this file are duplicated in locallibm.il. Keep them in sync */
32
33 #ifndef _LIBM_INLINES_H
34 #define _LIBM_INLINES_H
35
36 #ifdef __GNUC__
37 #include <sys/types.h>
38 #include <sys/ieeefp.h>
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 extern __GNU_INLINE double
45 __inline_sqrt(double d)
46 {
47 double ret;
48
49 __asm__ __volatile__("fsqrtd %1,%0\n\t" : "=e" (ret) : "e" (d));
50 return (ret);
51 }
52
53 extern __GNU_INLINE float
54 __inline_sqrtf(float f)
55 {
56 float ret;
277 fabs(double d)
278 {
279 double ret;
280
281 __asm__ __volatile__("fabsd %1,%0\n\t" : "=e" (ret) : "e" (d));
282 return (ret);
283 }
284
285 extern __GNU_INLINE float
286 fabsf(float f)
287 {
288 float ret;
289
290 __asm__ __volatile__("fabss %1,%0\n\t" : "=f" (ret) : "f" (f));
291 return (ret);
292 }
293
294 #ifdef __cplusplus
295 }
296 #endif
297 #endif /* __GNUC */
298 #endif /* _LIBM_INLINES_H */
|