| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | /* * Copyright (C) 2016-2017 Andes Technology, Inc. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */#ifndef _FPU_CONTROL_H#ifdef  __NDS32_ABI_2FP_PLUS__/* * Andes Floating-Point Control Status Register * 31-20 -> Reserved * 19	 -> RIT (RO) * 18	 -> DNIT(RO) * 17	 -> IEXT(RO) * 16	 -> UDFT(RO) * 15	 -> OVFT(RO) * 14	 -> DBZT(RO) * 13	 -> IVOT(RO) * 12	 -> DNZ(RW),Denormalized flush-to-Zero mode. * 11	 -> IEXE(RW),IEEE Ineaxct (IEX) exception trapping enable. * 10	 -> UDFE(RW),IEEE Underflow (UDF) exception trapping enable. * 9	 -> OVFE(RW),IEEE Overflow (OVF) exception trapping enable. * 8	 -> DBZE(RW),IEEE Divide by Zero (DBZ) exception trapping enable. * 7	 -> IVOE(RW),IEEE Invalid Operation (IVO) exception trapping enable. * 6	 -> IEX(RW),IEEE Inexact (IEX) cumulative exception flag. * 5	 -> UDF(RW),IEEE Underflow (UDF) cumulative exception flag. * 4	 -> OVF(RW),IEEE Overflow (OVF) cumulative exception flag. * 3	 -> DBZ(RW),IEEE Divide by Zero (DBZ) cumulative exception flag. * 2	 -> IVO(RW),IEEE Invalid Operation (IVO) cumulative exception flag. * 1-0	 -> Rounding modes. * * Rounding modes. * 00 - rounding to nearest (RN) * 01 - rounding (up) toward plus infinity (RP) * 10 - rounding (down)toward minus infinity (RM) * 11 - rounding toward zero (RZ) * *//* masking of interrupts */#define _FPU_MASK_IEX  	0x0800  /* Invalid operation */#define _FPU_MASK_UDF  	0x0400  /* Underflow         */#define _FPU_MASK_OVF  	0x0200  /* Overflow          */#define _FPU_MASK_DBZ  	0x0100  /* Division by zero  */#define _FPU_MASK_IVO 	0x0080  /* Invalid operation *//*Reserved and read-only bits*/#define _FPU_RESERVED	0xffffe000#define _FPU_DEFAULT    0x00000000/* Default + exceptions enabled. */#define _FPU_IEEE	(_FPU_DEFAULT | 0x00000f80)/* Type of the control word.  */typedef unsigned int fpu_control_t;/* Macros for accessing the hardware control word.  *//* This is fmrx %0, fpscr.  */#define _FPU_GETCW(cw) \  __asm__ __volatile__ ("fmfcsr\t %0\n\t" : "=r" (cw))/* This is fmxr fpscr, %0.  */#define _FPU_SETCW(cw) \  __asm__ __volatile__ ("fmtcsr\t %0\n\t": : "r" (cw))/* Default control word set at startup.  */extern fpu_control_t __fpu_control;#else#define _FPU_GETCW(cw) (cw) = 0#define _FPU_SETCW(cw) (void) (cw)#define _FPU_RESERVED 0xffffffff#define _FPU_DEFAULT  0x00000000typedef unsigned int fpu_control_t;extern fpu_control_t __fpu_control;#endif //__NDS32_ABI_2FP_PLUS__#endif //_FPU_CONTROL_H
 |