ReactOS 0.4.15-dev-8408-g466a198
fpieee.h
Go to the documentation of this file.
1
6#ifndef _INC_FPIEEE
7#define _INC_FPIEEE
8
9#include <crtdefs.h>
10
11#pragma pack(push,_CRT_PACKING)
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17 typedef enum {
20
21 typedef enum {
23#if defined(__ia64__)
24 _FpFormatFp82
25#endif
27
28 typedef enum {
133#if defined(__ia64__)
134 _FpCodeFma,_FpCodeFmaSingle,_FpCodeFmaDouble,_FpCodeFms,_FpCodeFmsSingle,_FpCodeFmsDouble,_FpCodeFnma,_FpCodeFnmaSingle,_FpCodeFnmaDouble,_FpCodeFamin,_FpCodeFamax
135#endif
137
138#ifdef _CRTBLD
139#define OP_UNSPEC _FpCodeUnspecified
140#define OP_ADD _FpCodeAdd
141#define OP_SUB _FpCodeSubtract
142#define OP_MUL _FpCodeMultiply
143#define OP_DIV _FpCodeDivide
144#define OP_REM _FpCodeRemainder
145#define OP_COMP _FpCodeCompare
146#define OP_CVT _FpCodeConvert
147#define OP_RND _FpCodeRound
148#define OP_TRUNC _FpCodeTruncate
149#define OP_EXP _FpCodeExp
150#define OP_POW _FpCodePow
151#define OP_LOG _FpCodeLog
152#define OP_LOG10 _FpCodeLog10
153#define OP_SINH _FpCodeSinh
154#define OP_COSH _FpCodeCosh
155#define OP_TANH _FpCodeTanh
156#define OP_ASIN _FpCodeAsin
157#define OP_ACOS _FpCodeAcos
158#define OP_ATAN _FpCodeAtan
159#define OP_ATAN2 _FpCodeAtan2
160#define OP_SQRT _FpCodeSquareRoot
161#define OP_SIN _FpCodeSin
162#define OP_COS _FpCodeCos
163#define OP_TAN _FpCodeTan
164#define OP_CEIL _FpCodeCeil
165#define OP_FLOOR _FpCodeFloor
166#define OP_ABS _FpCodeFabs
167#define OP_MODF _FpCodeModf
168#define OP_LDEXP _FpCodeLdexp
169#define OP_CABS _FpCodeCabs
170#define OP_HYPOT _FpCodeHypot
171#define OP_FMOD _FpCodeFmod
172#define OP_FREXP _FpCodeFrexp
173#define OP_Y0 _FpCodeY0
174#define OP_Y1 _FpCodeY1
175#define OP_YN _FpCodeYn
176#define OP_LOGB _FpCodeLogb
177#define OP_NEXTAFTER _FpCodeNextafter
178#define OP_ADDPS _XMMIAddps
179#define OP_ADDSS _XMMIAddss
180#define OP_SUBPS _XMMISubps
181#define OP_SUBSS _XMMISubss
182#define OP_MULPS _XMMIMulps
183#define OP_MULSS _XMMIMulss
184#define OP_DIVPS _XMMIDivps
185#define OP_DIVSS _XMMIDivss
186#define OP_SQRTPS _XMMISqrtps
187#define OP_SQRTSS _XMMISqrtss
188#define OP_MAXPS _XMMIMaxps
189#define OP_MAXSS _XMMIMaxss
190#define OP_MINPS _XMMIMinps
191#define OP_MINSS _XMMIMinss
192#define OP_CMPPS _XMMICmpps
193#define OP_CMPSS _XMMICmpss
194#define OP_COMISS _XMMIComiss
195#define OP_UCOMISS _XMMIUComiss
196#define OP_CVTPI2PS _XMMICvtpi2ps
197#define OP_CVTSI2SS _XMMICvtsi2ss
198#define OP_CVTPS2PI _XMMICvtps2pi
199#define OP_CVTSS2SI _XMMICvtss2si
200#define OP_CVTTPS2PI _XMMICvttps2pi
201#define OP_CVTTSS2SI _XMMICvttss2si
202#define OP_ADDSUBPS _XMMIAddsubps
203#define OP_HADDPS _XMMIHaddps
204#define OP_HSUBPS _XMMIHsubps
205#define OP_ROUNDPS _XMMIRoundps
206#define OP_ROUNDSS _XMMIRoundss
207#define OP_DPPS _XMMIDpps
208#define OP_ADDPD _XMMI2Addpd
209#define OP_ADDSD _XMMI2Addsd
210#define OP_SUBPD _XMMI2Subpd
211#define OP_SUBSD _XMMI2Subsd
212#define OP_MULPD _XMMI2Mulpd
213#define OP_MULSD _XMMI2Mulsd
214#define OP_DIVPD _XMMI2Divpd
215#define OP_DIVSD _XMMI2Divsd
216#define OP_SQRTPD _XMMI2Sqrtpd
217#define OP_SQRTSD _XMMI2Sqrtsd
218#define OP_MAXPD _XMMI2Maxpd
219#define OP_MAXSD _XMMI2Maxsd
220#define OP_MINPD _XMMI2Minpd
221#define OP_MINSD _XMMI2Minsd
222#define OP_CMPPD _XMMI2Cmppd
223#define OP_CMPSD _XMMI2Cmpsd
224#define OP_COMISD _XMMI2Comisd
225#define OP_UCOMISD _XMMI2UComisd
226#define OP_CVTPD2PI _XMMI2Cvtpd2pi
227#define OP_CVTSD2SI _XMMI2Cvtsd2si
228#define OP_CVTTPD2PI _XMMI2Cvttpd2pi
229#define OP_CVTTSD2SI _XMMI2Cvttsd2si
230#define OP_CVTPS2PD _XMMI2Cvtps2pd
231#define OP_CVTSS2SD _XMMI2Cvtss2sd
232#define OP_CVTPD2PS _XMMI2Cvtpd2ps
233#define OP_CVTSD2SS _XMMI2Cvtsd2ss
234#define OP_CVTDQ2PS _XMMI2Cvtdq2ps
235#define OP_CVTTPS2DQ _XMMI2Cvttps2dq
236#define OP_CVTPS2DQ _XMMI2Cvtps2dq
237#define OP_CVTTPD2DQ _XMMI2Cvttpd2dq
238#define OP_CVTPD2DQ _XMMI2Cvtpd2dq
239#define OP_ADDSUBPD _XMMI2Addsubpd
240#define OP_HADDPD _XMMI2Haddpd
241#define OP_HSUBPD _XMMI2Hsubpd
242#define OP_ROUNDPD _XMMI2Roundpd
243#define OP_ROUNDSD _XMMI2Roundsd
244#define OP_DPPD _XMMI2Dppd
245
246#endif /* _CRTBLD */
247
248 typedef enum {
251
252 typedef enum {
254#if defined(__ia64__)
255 _FpPrecision64,_FpPrecision113
256#endif
258
259 typedef float _FP32;
260 typedef double _FP64;
261 typedef short _I16;
262 typedef int _I32;
263 typedef unsigned short _U16;
264 typedef unsigned int _U32;
266
267 typedef struct
268#if defined(__ia64__)
269 _CRT_ALIGN(16)
270#endif
271 {
272 unsigned short W[5];
273 } _FP80;
274
275 typedef struct _CRT_ALIGN(16) {
276 unsigned long W[4];
278
279 typedef struct _CRT_ALIGN(8) {
280 unsigned long W[2];
282
283 typedef struct _CRT_ALIGN(8) {
284 unsigned long W[2];
286
287 typedef struct
288#if defined(__ia64__)
289 _CRT_ALIGN(16)
290#endif
291 {
292 unsigned short W[5];
293 } _BCD80;
294
295 typedef struct _CRT_ALIGN(16) {
296 _Q64 W[2];
298
299 typedef struct {
300 union {
317 unsigned int OperandValid : 1;
318 unsigned int Format : 4;
320
321 typedef struct {
322 unsigned int Inexact : 1;
323 unsigned int Underflow : 1;
324 unsigned int Overflow : 1;
325 unsigned int ZeroDivide : 1;
326 unsigned int InvalidOperation : 1;
328
329 typedef struct {
330 unsigned int RoundingMode : 2;
331 unsigned int Precision : 3;
332 unsigned int Operation :12;
339#if defined(__ia64__)
340 _FPIEEE_VALUE Operand3;
341#endif
343
344 struct _EXCEPTION_POINTERS;
345
346 _CRTIMP int __cdecl _fpieee_flt(unsigned long _ExceptionCode,struct _EXCEPTION_POINTERS *_PtExceptionPtr,int (__cdecl *_Handler)(_FPIEEE_RECORD *));
347
348#ifdef __cplusplus
349}
350#endif
351
352#pragma pack(pop)
353#endif
#define __MINGW_EXTENSION
Definition: _mingw.h:166
#define __cdecl
Definition: accygwin.h:79
#define __int64
Definition: basetyps.h:16
#define _CRT_ALIGN(x)
Definition: crtdefs.h:154
#define _CRTIMP
Definition: crtdefs.h:72
unsigned short _U16
Definition: fpieee.h:263
_FPQ64
Definition: fpieee.h:297
_FPIEEE_ROUNDING_MODE
Definition: fpieee.h:248
@ _FpRoundNearest
Definition: fpieee.h:249
@ _FpRoundPlusInfinity
Definition: fpieee.h:249
@ _FpRoundChopped
Definition: fpieee.h:249
@ _FpRoundMinusInfinity
Definition: fpieee.h:249
_FP128
Definition: fpieee.h:277
float _FP32
Definition: fpieee.h:259
short _I16
Definition: fpieee.h:261
_FP_OPERATION_CODE
Definition: fpieee.h:28
@ _XMMISubss
Definition: fpieee.h:75
@ _FpCodeUnspecified
Definition: fpieee.h:29
@ _XMMI2Addpd
Definition: fpieee.h:99
@ _FpCodeLogb
Definition: fpieee.h:66
@ _XMMI2Cvtpd2dq
Definition: fpieee.h:129
@ _XMMI2Cvtsd2si
Definition: fpieee.h:118
@ _XMMIComiss
Definition: fpieee.h:88
@ _FpCodeTanh
Definition: fpieee.h:62
@ _FpCodeAtan2
Definition: fpieee.h:45
@ _XMMI2Cmppd
Definition: fpieee.h:113
@ _FpCodeFabs
Definition: fpieee.h:50
@ _FpCodeFmin
Definition: fpieee.h:69
@ _FpCodeAtan
Definition: fpieee.h:44
@ _XMMISqrtss
Definition: fpieee.h:81
@ _FpCodeSquareRoot
Definition: fpieee.h:34
@ _XMMI2Cvttsd2si
Definition: fpieee.h:120
@ _XMMI2Maxsd
Definition: fpieee.h:110
@ _FpCodeTruncate
Definition: fpieee.h:39
@ _FpCodeFmod
Definition: fpieee.h:51
@ _XMMI2Cvtdq2ps
Definition: fpieee.h:125
@ _FpCodeLdexp
Definition: fpieee.h:54
@ _FpCodeSin
Definition: fpieee.h:59
@ _XMMI2Cvtps2pd
Definition: fpieee.h:121
@ _XMMISubps
Definition: fpieee.h:74
@ _XMMI2Subsd
Definition: fpieee.h:102
@ _XMMI2Cvttpd2dq
Definition: fpieee.h:128
@ _XMMIAddsubps
Definition: fpieee.h:96
@ _XMMIMulss
Definition: fpieee.h:77
@ _FpCodeHypot
Definition: fpieee.h:53
@ _FpCodeFrexp
Definition: fpieee.h:52
@ _FpCodeModf
Definition: fpieee.h:57
@ _FpCodeAsin
Definition: fpieee.h:43
@ _FpCodeY0
Definition: fpieee.h:63
@ _XMMIAddps
Definition: fpieee.h:72
@ _XMMI2Cvttpd2pi
Definition: fpieee.h:119
@ _FpCodeDivide
Definition: fpieee.h:33
@ _FpCodeLog10
Definition: fpieee.h:56
@ _FpCodeCos
Definition: fpieee.h:47
@ _FpCodeAcos
Definition: fpieee.h:42
@ _XMMIUComiss
Definition: fpieee.h:89
@ _XMMI2Minpd
Definition: fpieee.h:111
@ _XMMI2Divsd
Definition: fpieee.h:106
@ _XMMICvtpi2ps
Definition: fpieee.h:90
@ _XMMIMinss
Definition: fpieee.h:85
@ _XMMI2Subpd
Definition: fpieee.h:101
@ _XMMICmpss
Definition: fpieee.h:87
@ _XMMI2Cvtss2sd
Definition: fpieee.h:122
@ _XMMICmpps
Definition: fpieee.h:86
@ _XMMI2Mulsd
Definition: fpieee.h:104
@ _XMMI2Cvtsd2ss
Definition: fpieee.h:124
@ _XMMI2Addsd
Definition: fpieee.h:100
@ _FpCodeConvert
Definition: fpieee.h:37
@ _XMMI2Divpd
Definition: fpieee.h:105
@ _XMMISqrtps
Definition: fpieee.h:80
@ _FpCodePow
Definition: fpieee.h:58
@ _FpCodeLog
Definition: fpieee.h:55
@ _FpCodeCompare
Definition: fpieee.h:36
@ _XMMI2Sqrtsd
Definition: fpieee.h:108
@ _XMMI2Mulpd
Definition: fpieee.h:103
@ _FpCodeAdd
Definition: fpieee.h:30
@ _XMMICvtss2si
Definition: fpieee.h:93
@ _XMMI2Hsubpd
Definition: fpieee.h:132
@ _XMMI2Addsubpd
Definition: fpieee.h:130
@ _FpCodeMultiply
Definition: fpieee.h:32
@ _XMMIMinps
Definition: fpieee.h:84
@ _XMMICvttps2pi
Definition: fpieee.h:94
@ _FpCodeNextafter
Definition: fpieee.h:67
@ _XMMI2Minsd
Definition: fpieee.h:112
@ _FpCodeCeil
Definition: fpieee.h:41
@ _FpCodeRemainder
Definition: fpieee.h:35
@ _XMMI2UComisd
Definition: fpieee.h:116
@ _XMMICvtsi2ss
Definition: fpieee.h:91
@ _XMMI2Sqrtpd
Definition: fpieee.h:107
@ _XMMIHaddps
Definition: fpieee.h:97
@ _XMMIDivss
Definition: fpieee.h:79
@ _XMMI2Comisd
Definition: fpieee.h:115
@ _XMMI2Cvttps2dq
Definition: fpieee.h:126
@ _XMMI2Cvtps2dq
Definition: fpieee.h:127
@ _XMMI2Cmpsd
Definition: fpieee.h:114
@ _XMMI2Cvtpd2pi
Definition: fpieee.h:117
@ _XMMIDivps
Definition: fpieee.h:78
@ _XMMICvtps2pi
Definition: fpieee.h:92
@ _FpCodeSubtract
Definition: fpieee.h:31
@ _XMMI2Cvtpd2ps
Definition: fpieee.h:123
@ _FpCodeTan
Definition: fpieee.h:61
@ _XMMIMaxps
Definition: fpieee.h:82
@ _XMMICvttss2si
Definition: fpieee.h:95
@ _XMMIMaxss
Definition: fpieee.h:83
@ _FpCodeRound
Definition: fpieee.h:38
@ _FpCodeExp
Definition: fpieee.h:49
@ _XMMI2Haddpd
Definition: fpieee.h:131
@ _FpCodeConvertTrunc
Definition: fpieee.h:71
@ _FpCodeYn
Definition: fpieee.h:65
@ _FpCodeCosh
Definition: fpieee.h:48
@ _FpCodeCabs
Definition: fpieee.h:46
@ _FpCodeSinh
Definition: fpieee.h:60
@ _FpCodeFmax
Definition: fpieee.h:70
@ _XMMI2Maxpd
Definition: fpieee.h:109
@ _FpCodeNegate
Definition: fpieee.h:68
@ _XMMIHsubps
Definition: fpieee.h:98
@ _FpCodeY1
Definition: fpieee.h:64
@ _XMMIAddss
Definition: fpieee.h:73
@ _FpCodeFloor
Definition: fpieee.h:40
@ _XMMIMulps
Definition: fpieee.h:76
unsigned int _U32
Definition: fpieee.h:264
_FPIEEE_PRECISION
Definition: fpieee.h:252
@ _FpPrecision53
Definition: fpieee.h:253
@ _FpPrecision24
Definition: fpieee.h:253
@ _FpPrecisionFull
Definition: fpieee.h:253
_FPIEEE_FORMAT
Definition: fpieee.h:21
@ _FpFormatU16
Definition: fpieee.h:22
@ _FpFormatFp64
Definition: fpieee.h:22
@ _FpFormatFp32
Definition: fpieee.h:22
@ _FpFormatBcd80
Definition: fpieee.h:22
@ _FpFormatU32
Definition: fpieee.h:22
@ _FpFormatCompare
Definition: fpieee.h:22
@ _FpFormatString
Definition: fpieee.h:22
@ _FpFormatU64
Definition: fpieee.h:22
@ _FpFormatI16
Definition: fpieee.h:22
@ _FpFormatI32
Definition: fpieee.h:22
@ _FpFormatI64
Definition: fpieee.h:22
@ _FpFormatFp128
Definition: fpieee.h:22
@ _FpFormatFp80
Definition: fpieee.h:22
_CRTIMP int __cdecl _fpieee_flt(unsigned long _ExceptionCode, struct _EXCEPTION_POINTERS *_PtExceptionPtr, int(__cdecl *_Handler)(_FPIEEE_RECORD *))
_I64
Definition: fpieee.h:281
_U64
Definition: fpieee.h:285
double _FP64
Definition: fpieee.h:260
int _I32
Definition: fpieee.h:262
struct _FPIEEE_RECORD * _PFPIEEE_RECORD
__MINGW_EXTENSION typedef __int64 _Q64
Definition: fpieee.h:265
_FPIEEE_COMPARE_RESULT
Definition: fpieee.h:17
@ _FpCompareGreater
Definition: fpieee.h:18
@ _FpCompareLess
Definition: fpieee.h:18
@ _FpCompareEqual
Definition: fpieee.h:18
@ _FpCompareUnordered
Definition: fpieee.h:18
unsigned short _U16
Definition: msvcrt.h:1417
float _FP32
Definition: msvcrt.h:1413
short _I16
Definition: msvcrt.h:1415
__int64 _Q64
Definition: msvcrt.h:1419
unsigned int _U32
Definition: msvcrt.h:1418
double _FP64
Definition: msvcrt.h:1414
int _I32
Definition: msvcrt.h:1416
Definition: polytest.cpp:36
Definition: fpieee.h:291
Definition: fpieee.h:271
unsigned int Overflow
Definition: fpieee.h:324
unsigned int Inexact
Definition: fpieee.h:322
unsigned int ZeroDivide
Definition: fpieee.h:325
unsigned int Underflow
Definition: fpieee.h:323
unsigned int InvalidOperation
Definition: fpieee.h:326
_FPIEEE_EXCEPTION_FLAGS Status
Definition: fpieee.h:335
_FPIEEE_VALUE Operand2
Definition: fpieee.h:337
unsigned int Operation
Definition: fpieee.h:332
_FPIEEE_EXCEPTION_FLAGS Cause
Definition: fpieee.h:333
unsigned int Precision
Definition: fpieee.h:331
unsigned int RoundingMode
Definition: fpieee.h:330
_FPIEEE_EXCEPTION_FLAGS Enable
Definition: fpieee.h:334
_FPIEEE_VALUE Result
Definition: fpieee.h:338
_FPIEEE_VALUE Operand1
Definition: fpieee.h:336
_I32 I32Value
Definition: fpieee.h:306
_U16 U16Value
Definition: fpieee.h:308
_FP128 Fp128Value
Definition: fpieee.h:304
_U32 U32Value
Definition: fpieee.h:309
_FPQ64 Fpq64Value
Definition: fpieee.h:315
_I16 I16Value
Definition: fpieee.h:305
_BCD80 Bcd80Value
Definition: fpieee.h:311
unsigned int Format
Definition: fpieee.h:318
char * StringValue
Definition: fpieee.h:312
_FP64 Fp64Value
Definition: fpieee.h:302
_U64 U64Value
Definition: fpieee.h:310
_FP32 Fp32Value
Definition: fpieee.h:301
int CompareValue
Definition: fpieee.h:313
_Q64 Q64Value
Definition: fpieee.h:314
_I64 I64Value
Definition: fpieee.h:307
_FP80 Fp80Value
Definition: fpieee.h:303
unsigned int OperandValid
Definition: fpieee.h:317
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413