123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
- #ifdef __VFP_FP__
- #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_RESERVED 0x0e08e0e0
- #define _FPU_DEFAULT 0x00000000
- #define _FPU_IEEE (_FPU_DEFAULT | 0x00001f00)
- typedef unsigned int fpu_control_t
- #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))
- #elif defined __MAVERICK__
- #define _FPU_MASK_IM (1 << 5)
- #define _FPU_MASK_ZM 0
- #define _FPU_MASK_OM (1 << 7)
- #define _FPU_MASK_UM (1 << 8)
- #define _FPU_MASK_PM (1 << 9)
- #define _FPU_MASK_DM 0
- #define _FPU_RESERVED 0xfffff000
- #define _FPU_DEFAULT 0x00b00000
- #define _FPU_IEEE 0x00b003a0
- typedef unsigned int fpu_control_t
- #define _FPU_GETCW(cw) ({ \
- register int __t1, __t2
- \
- __asm__ __volatile__ ( \
- "cfmvr64l %1, mvdx0\n\t" \
- "cfmvr64h %2, mvdx0\n\t" \
- "cfmv32sc mvdx0, dspsc\n\t" \
- "cfmvr64l %0, mvdx0\n\t" \
- "cfmv64lr mvdx0, %1\n\t" \
- "cfmv64hr mvdx0, %2" \
- : "=r" (cw), "=r" (__t1), "=r" (__t2) \
- )
- })
- #define _FPU_SETCW(cw) ({ \
- register int __t0, __t1, __t2
- \
- __asm__ __volatile__ ( \
- "cfmvr64l %1, mvdx0\n\t" \
- "cfmvr64h %2, mvdx0\n\t" \
- "cfmv64lr mvdx0, %0\n\t" \
- "cfmvsc32 dspsc, mvdx0\n\t" \
- "cfmv64lr mvdx0, %1\n\t" \
- "cfmv64hr mvdx0, %2" \
- : "=r" (__t0), "=r" (__t1), "=r" (__t2) \
- : "0" (cw) \
- )
- })
- #else
- #define _FPU_MASK_IM 0x00010000
- #define _FPU_MASK_ZM 0x00020000
- #define _FPU_MASK_OM 0x00040000
- #define _FPU_MASK_UM 0x00080000
- #define _FPU_MASK_PM 0x00100000
- #define _FPU_MASK_DM 0x00000000
- #define _FPU_RESERVED 0xffe0e0e0
- #define _FPU_DEFAULT 0x00001000
- #define _FPU_IEEE 0x001f1000
- typedef unsigned int fpu_control_t
- #define _FPU_GETCW(cw) __asm__ ("rfs %0" : "=r" (cw))
- #define _FPU_SETCW(cw) __asm__ ("wfs %0" : : "r" (cw))
- #endif
- #if 0
- extern fpu_control_t __fpu_control
- #endif
- #endif
|