• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*  $NetBSD: fenv.h,v 1.2 2014/01/29 00:22:09 matt Exp $    */
2 
3 /*
4  * Based on ieeefp.h written by J.T. Conklin, Apr 28, 1995
5  * Public domain.
6  */
7 
8 #ifndef _AARCH64_FENV_H_
9 #define _AARCH64_FENV_H_
10 
11 /* AArch64 split FPSCR into two registers FPCR and FPSR */
12 typedef struct {
13     unsigned int __fpcr;
14     unsigned int __fpsr;
15 } fenv_t;
16 typedef int fexcept_t;
17 
18 #define FE_INVALID      0x01    /* invalid operation exception */
19 #define FE_DIVBYZERO    0x02    /* divide-by-zero exception */
20 #define FE_OVERFLOW     0x04    /* overflow exception */
21 #define FE_UNDERFLOW    0x08    /* underflow exception */
22 #define FE_INEXACT      0x10    /* imprecise (loss of precision; "inexact") */
23 
24 #define FE_ALL_EXCEPT   0x1f
25 
26 #define FE_TONEAREST    0   /* round to nearest representable number */
27 #define FE_UPWARD       1   /* round toward positive infinity */
28 #define FE_DOWNWARD     2   /* round toward negative infinity */
29 #define FE_TOWARDZERO   3   /* round to zero (truncate) */
30 
31 __BEGIN_DECLS
32 
33 /* Default floating-point environment */
34 extern const fenv_t __fe_dfl_env;
35 #define FE_DFL_ENV  (&__fe_dfl_env)
36 
37 __END_DECLS
38 
39 #endif /* _AARCH64_FENV_H_ */
40