1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
- #if !(defined(_LIBC) && !defined(_LIBC_TEST)) && defined(__SOFTFP__)
- #define _FPU_RESERVED 0xffffffff
- #define _FPU_DEFAULT 0x00000000
- typedef unsigned int fpu_control_t;
- #define _FPU_GETCW(cw) (cw) = 0
- #define _FPU_SETCW(cw) (void) (cw)
- extern fpu_control_t __fpu_control;
- #else
- #define _FPU_MASK_IM 0x00000100
- #define _FPU_MASK_ZM 0x00000200
- #define _FPU_MASK_OM 0x00000400
- #define _FPU_MASK_UM 0x00000800
- #define _FPU_MASK_PM 0x00001000
- #define _FPU_MASK_NZCV 0xf0000000
- #define _FPU_MASK_RM 0x00c00000
- #define _FPU_MASK_EXCEPT 0x00001f1f
- #define _FPU_RESERVED 0x00086060
- #define _FPU_DEFAULT 0x00000000
- #define _FPU_IEEE (_FPU_DEFAULT | 0x00001f00)
- typedef unsigned int fpu_control_t;
- #ifdef __SOFTFP__
- # define _FPU_GETCW(cw) \
- __asm__ __volatile__ ("mrc p10, 7, %0, cr1, cr0, 0" : "=r" (cw))
- # define _FPU_SETCW(cw) \
- __asm__ __volatile__ ("mcr p10, 7, %0, cr1, cr0, 0" : : "r" (cw))
- #else
- # define _FPU_GETCW(cw) \
- __asm__ __volatile__ ("vmrs %0, fpscr" : "=r" (cw))
- # define _FPU_SETCW(cw) \
- __asm__ __volatile__ ("vmsr fpscr, %0" : : "r" (cw))
- #endif
- extern fpu_control_t __fpu_control;
- #endif
- #endif
|