blob: 93e759ab21072d1c23b3939fd5b7885e7a21af10 [file] [log] [blame]
Ben Cheng6e5a1b62014-04-08 14:53:42 -07001/* Copyright (C) 2007-2014 Free Software Foundation, Inc.
2
3This file is part of GCC.
4
5GCC is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 3, or (at your option)
8any later version.
9
10GCC is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15Under Section 7 of GPL version 3, you are granted additional
16permissions described in the GCC Runtime Library Exception, version
173.1, as published by the Free Software Foundation.
18
19You should have received a copy of the GNU General Public License and
20a copy of the GCC Runtime Library Exception along with this program;
21see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22<http://www.gnu.org/licenses/>. */
23
24/* ISO/IEC JTC1 SC22 WG14 N1169
25 * Date: 2006-04-04
26 * ISO/IEC TR 18037
27 * Programming languages - C - Extensions to support embedded processors
28 */
29
30#ifndef _STDFIX_H
31#define _STDFIX_H
32
33/* 7.18a.1 Introduction. */
34
35#undef fract
36#undef accum
37#undef sat
38#define fract _Fract
39#define accum _Accum
40#define sat _Sat
41
42/* 7.18a.3 Precision macros. */
43
44#undef SFRACT_FBIT
45#undef SFRACT_MIN
46#undef SFRACT_MAX
47#undef SFRACT_EPSILON
48#define SFRACT_FBIT __SFRACT_FBIT__
49#define SFRACT_MIN __SFRACT_MIN__
50#define SFRACT_MAX __SFRACT_MAX__
51#define SFRACT_EPSILON __SFRACT_EPSILON__
52
53#undef USFRACT_FBIT
54#undef USFRACT_MIN
55#undef USFRACT_MAX
56#undef USFRACT_EPSILON
57#define USFRACT_FBIT __USFRACT_FBIT__
58#define USFRACT_MIN __USFRACT_MIN__ /* GCC extension. */
59#define USFRACT_MAX __USFRACT_MAX__
60#define USFRACT_EPSILON __USFRACT_EPSILON__
61
62#undef FRACT_FBIT
63#undef FRACT_MIN
64#undef FRACT_MAX
65#undef FRACT_EPSILON
66#define FRACT_FBIT __FRACT_FBIT__
67#define FRACT_MIN __FRACT_MIN__
68#define FRACT_MAX __FRACT_MAX__
69#define FRACT_EPSILON __FRACT_EPSILON__
70
71#undef UFRACT_FBIT
72#undef UFRACT_MIN
73#undef UFRACT_MAX
74#undef UFRACT_EPSILON
75#define UFRACT_FBIT __UFRACT_FBIT__
76#define UFRACT_MIN __UFRACT_MIN__ /* GCC extension. */
77#define UFRACT_MAX __UFRACT_MAX__
78#define UFRACT_EPSILON __UFRACT_EPSILON__
79
80#undef LFRACT_FBIT
81#undef LFRACT_MIN
82#undef LFRACT_MAX
83#undef LFRACT_EPSILON
84#define LFRACT_FBIT __LFRACT_FBIT__
85#define LFRACT_MIN __LFRACT_MIN__
86#define LFRACT_MAX __LFRACT_MAX__
87#define LFRACT_EPSILON __LFRACT_EPSILON__
88
89#undef ULFRACT_FBIT
90#undef ULFRACT_MIN
91#undef ULFRACT_MAX
92#undef ULFRACT_EPSILON
93#define ULFRACT_FBIT __ULFRACT_FBIT__
94#define ULFRACT_MIN __ULFRACT_MIN__ /* GCC extension. */
95#define ULFRACT_MAX __ULFRACT_MAX__
96#define ULFRACT_EPSILON __ULFRACT_EPSILON__
97
98#undef LLFRACT_FBIT
99#undef LLFRACT_MIN
100#undef LLFRACT_MAX
101#undef LLFRACT_EPSILON
102#define LLFRACT_FBIT __LLFRACT_FBIT__ /* GCC extension. */
103#define LLFRACT_MIN __LLFRACT_MIN__ /* GCC extension. */
104#define LLFRACT_MAX __LLFRACT_MAX__ /* GCC extension. */
105#define LLFRACT_EPSILON __LLFRACT_EPSILON__ /* GCC extension. */
106
107#undef ULLFRACT_FBIT
108#undef ULLFRACT_MIN
109#undef ULLFRACT_MAX
110#undef ULLFRACT_EPSILON
111#define ULLFRACT_FBIT __ULLFRACT_FBIT__ /* GCC extension. */
112#define ULLFRACT_MIN __ULLFRACT_MIN__ /* GCC extension. */
113#define ULLFRACT_MAX __ULLFRACT_MAX__ /* GCC extension. */
114#define ULLFRACT_EPSILON __ULLFRACT_EPSILON__ /* GCC extension. */
115
116#undef SACCUM_FBIT
117#undef SACCUM_IBIT
118#undef SACCUM_MIN
119#undef SACCUM_MAX
120#undef SACCUM_EPSILON
121#define SACCUM_FBIT __SACCUM_FBIT__
122#define SACCUM_IBIT __SACCUM_IBIT__
123#define SACCUM_MIN __SACCUM_MIN__
124#define SACCUM_MAX __SACCUM_MAX__
125#define SACCUM_EPSILON __SACCUM_EPSILON__
126
127#undef USACCUM_FBIT
128#undef USACCUM_IBIT
129#undef USACCUM_MIN
130#undef USACCUM_MAX
131#undef USACCUM_EPSILON
132#define USACCUM_FBIT __USACCUM_FBIT__
133#define USACCUM_IBIT __USACCUM_IBIT__
134#define USACCUM_MIN __USACCUM_MIN__ /* GCC extension. */
135#define USACCUM_MAX __USACCUM_MAX__
136#define USACCUM_EPSILON __USACCUM_EPSILON__
137
138#undef ACCUM_FBIT
139#undef ACCUM_IBIT
140#undef ACCUM_MIN
141#undef ACCUM_MAX
142#undef ACCUM_EPSILON
143#define ACCUM_FBIT __ACCUM_FBIT__
144#define ACCUM_IBIT __ACCUM_IBIT__
145#define ACCUM_MIN __ACCUM_MIN__
146#define ACCUM_MAX __ACCUM_MAX__
147#define ACCUM_EPSILON __ACCUM_EPSILON__
148
149#undef UACCUM_FBIT
150#undef UACCUM_IBIT
151#undef UACCUM_MIN
152#undef UACCUM_MAX
153#undef UACCUM_EPSILON
154#define UACCUM_FBIT __UACCUM_FBIT__
155#define UACCUM_IBIT __UACCUM_IBIT__
156#define UACCUM_MIN __UACCUM_MIN__ /* GCC extension. */
157#define UACCUM_MAX __UACCUM_MAX__
158#define UACCUM_EPSILON __UACCUM_EPSILON__
159
160#undef LACCUM_FBIT
161#undef LACCUM_IBIT
162#undef LACCUM_MIN
163#undef LACCUM_MAX
164#undef LACCUM_EPSILON
165#define LACCUM_FBIT __LACCUM_FBIT__
166#define LACCUM_IBIT __LACCUM_IBIT__
167#define LACCUM_MIN __LACCUM_MIN__
168#define LACCUM_MAX __LACCUM_MAX__
169#define LACCUM_EPSILON __LACCUM_EPSILON__
170
171#undef ULACCUM_FBIT
172#undef ULACCUM_IBIT
173#undef ULACCUM_MIN
174#undef ULACCUM_MAX
175#undef ULACCUM_EPSILON
176#define ULACCUM_FBIT __ULACCUM_FBIT__
177#define ULACCUM_IBIT __ULACCUM_IBIT__
178#define ULACCUM_MIN __ULACCUM_MIN__ /* GCC extension. */
179#define ULACCUM_MAX __ULACCUM_MAX__
180#define ULACCUM_EPSILON __ULACCUM_EPSILON__
181
182#undef LLACCUM_FBIT
183#undef LLACCUM_IBIT
184#undef LLACCUM_MIN
185#undef LLACCUM_MAX
186#undef LLACCUM_EPSILON
187#define LLACCUM_FBIT __LLACCUM_FBIT__ /* GCC extension. */
188#define LLACCUM_IBIT __LLACCUM_IBIT__ /* GCC extension. */
189#define LLACCUM_MIN __LLACCUM_MIN__ /* GCC extension. */
190#define LLACCUM_MAX __LLACCUM_MAX__ /* GCC extension. */
191#define LLACCUM_EPSILON __LLACCUM_EPSILON__ /* GCC extension. */
192
193#undef ULLACCUM_FBIT
194#undef ULLACCUM_IBIT
195#undef ULLACCUM_MIN
196#undef ULLACCUM_MAX
197#undef ULLACCUM_EPSILON
198#define ULLACCUM_FBIT __ULLACCUM_FBIT__ /* GCC extension. */
199#define ULLACCUM_IBIT __ULLACCUM_IBIT__ /* GCC extension. */
200#define ULLACCUM_MIN __ULLACCUM_MIN__ /* GCC extension. */
201#define ULLACCUM_MAX __ULLACCUM_MAX__ /* GCC extension. */
202#define ULLACCUM_EPSILON __ULLACCUM_EPSILON__ /* GCC extension. */
203
204#endif /* _STDFIX_H */