1/* Copyright (C) 2007, 2009 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 */
205