fpu.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // fpu.h - Prototypes for the floatint point manipulation routines.
4 //
5 // Copyright (c) 2011-2017 Texas Instruments Incorporated. All rights reserved.
6 // Software License Agreement
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 //
12 // Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 //
15 // Redistributions in binary form must reproduce the above copyright
16 // notice, this list of conditions and the following disclaimer in the
17 // documentation and/or other materials provided with the
18 // distribution.
19 //
20 // Neither the name of Texas Instruments Incorporated nor the names of
21 // its contributors may be used to endorse or promote products derived
22 // from this software without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 //
36 //*****************************************************************************
37 
38 #ifndef __DRIVERLIB_FPU_H__
39 #define __DRIVERLIB_FPU_H__
40 
41 #include <stdint.h>
42 
43 //*****************************************************************************
44 //
45 // If building with a C++ compiler, make all of the definitions in this header
46 // have a C binding.
47 //
48 //*****************************************************************************
49 #ifdef __cplusplus
50 extern "C"
51 {
52 #endif
53 
54 //*****************************************************************************
55 //
56 // Values that can be passed to FPUHalfPrecisionSet as the ui32Mode parameter.
57 //
58 //*****************************************************************************
59 #define FPU_HALF_IEEE 0x00000000
60 #define FPU_HALF_ALTERNATE 0x04000000
61 
62 //*****************************************************************************
63 //
64 // Values that can be passed to FPUNaNModeSet as the ui32Mode parameter.
65 //
66 //*****************************************************************************
67 #define FPU_NAN_PROPAGATE 0x00000000
68 #define FPU_NAN_DEFAULT 0x02000000
69 
70 //*****************************************************************************
71 //
72 // Values that can be passed to FPUFlushToZeroModeSet as the ui32Mode
73 // parameter.
74 //
75 //*****************************************************************************
76 #define FPU_FLUSH_TO_ZERO_DIS 0x00000000
77 #define FPU_FLUSH_TO_ZERO_EN 0x01000000
78 
79 //*****************************************************************************
80 //
81 // Values that can be passed to FPURoundingModeSet as the ui32Mode parameter.
82 //
83 //*****************************************************************************
84 #define FPU_ROUND_NEAREST 0x00000000
85 #define FPU_ROUND_POS_INF 0x00400000
86 #define FPU_ROUND_NEG_INF 0x00800000
87 #define FPU_ROUND_ZERO 0x00c00000
88 
89 //*****************************************************************************
90 //
91 // Prototypes.
92 //
93 //*****************************************************************************
94 extern void FPUEnable(void);
95 extern void FPUDisable(void);
96 extern void FPUStackingEnable(void);
97 extern void FPULazyStackingEnable(void);
98 extern void FPUStackingDisable(void);
99 extern void FPUHalfPrecisionModeSet(uint32_t ui32Mode);
100 extern void FPUNaNModeSet(uint32_t ui32Mode);
101 extern void FPUFlushToZeroModeSet(uint32_t ui32Mode);
102 extern void FPURoundingModeSet(uint32_t ui32Mode);
103 
104 //*****************************************************************************
105 //
106 // Mark the end of the C bindings section for C++ compilers.
107 //
108 //*****************************************************************************
109 #ifdef __cplusplus
110 }
111 #endif
112 
113 #endif // __DRIVERLIB_FPU_H__
void FPUStackingDisable(void)
Definition: fpu.c:170
void FPUEnable(void)
Definition: fpu.c:64
void FPUHalfPrecisionModeSet(uint32_t ui32Mode)
Definition: fpu.c:199
void FPUNaNModeSet(uint32_t ui32Mode)
Definition: fpu.c:225
void FPURoundingModeSet(uint32_t ui32Mode)
Definition: fpu.c:285
void FPUDisable(void)
Definition: fpu.c:85
void FPUStackingEnable(void)
Definition: fpu.c:116
void FPUFlushToZeroModeSet(uint32_t ui32Mode)
Definition: fpu.c:253
void FPULazyStackingEnable(void)
Definition: fpu.c:148
Copyright 2018, Texas Instruments Incorporated