123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _INC_FPIEEE
- #define _INC_FPIEEE
- #include <crtdefs.h>
- #pragma pack(push,_CRT_PACKING)
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- _FpCompareEqual,_FpCompareGreater,_FpCompareLess,_FpCompareUnordered
- } _FPIEEE_COMPARE_RESULT;
- typedef enum {
- _FpFormatFp32,_FpFormatFp64,_FpFormatFp80,_FpFormatFp128,_FpFormatI16,_FpFormatI32,
- _FpFormatI64,_FpFormatU16,_FpFormatU32,_FpFormatU64,_FpFormatBcd80,_FpFormatCompare,
- _FpFormatString,
- #if defined(__ia64__)
- _FpFormatFp82
- #endif
- } _FPIEEE_FORMAT;
- typedef enum {
- _FpCodeUnspecified,_FpCodeAdd,_FpCodeSubtract,_FpCodeMultiply,_FpCodeDivide,
- _FpCodeSquareRoot,_FpCodeRemainder,_FpCodeCompare,_FpCodeConvert,_FpCodeRound,
- _FpCodeTruncate,_FpCodeFloor,_FpCodeCeil,_FpCodeAcos,_FpCodeAsin,_FpCodeAtan,
- _FpCodeAtan2,_FpCodeCabs,_FpCodeCos,_FpCodeCosh,_FpCodeExp,_FpCodeFabs,_FpCodeFmod,
- _FpCodeFrexp,_FpCodeHypot,_FpCodeLdexp,_FpCodeLog,_FpCodeLog10,_FpCodeModf,
- _FpCodePow,_FpCodeSin,_FpCodeSinh,_FpCodeTan,_FpCodeTanh,_FpCodeY0,_FpCodeY1,
- _FpCodeYn,_FpCodeLogb,_FpCodeNextafter,_FpCodeNegate,_FpCodeFmin,_FpCodeFmax,
- _FpCodeConvertTrunc,
- _XMMIAddps,_XMMIAddss,_XMMISubps,_XMMISubss,_XMMIMulps,_XMMIMulss,_XMMIDivps,
- _XMMIDivss,_XMMISqrtps,_XMMISqrtss,_XMMIMaxps,_XMMIMaxss,_XMMIMinps,_XMMIMinss,
- _XMMICmpps,_XMMICmpss,_XMMIComiss,_XMMIUComiss,_XMMICvtpi2ps,_XMMICvtsi2ss,
- _XMMICvtps2pi,_XMMICvtss2si,_XMMICvttps2pi,_XMMICvttss2si,_XMMIAddsubps,_XMMIHaddps,
- _XMMIHsubps,_XMMI2Addpd,_XMMI2Addsd,_XMMI2Subpd,_XMMI2Subsd,_XMMI2Mulpd,_XMMI2Mulsd,
- _XMMI2Divpd,_XMMI2Divsd,_XMMI2Sqrtpd,_XMMI2Sqrtsd,_XMMI2Maxpd,_XMMI2Maxsd,_XMMI2Minpd,
- _XMMI2Minsd,_XMMI2Cmppd,_XMMI2Cmpsd,_XMMI2Comisd,_XMMI2UComisd,_XMMI2Cvtpd2pi,
- _XMMI2Cvtsd2si,_XMMI2Cvttpd2pi,_XMMI2Cvttsd2si,_XMMI2Cvtps2pd,_XMMI2Cvtss2sd,
- _XMMI2Cvtpd2ps,_XMMI2Cvtsd2ss,_XMMI2Cvtdq2ps,_XMMI2Cvttps2dq,_XMMI2Cvtps2dq,
- _XMMI2Cvttpd2dq,_XMMI2Cvtpd2dq,_XMMI2Addsubpd,_XMMI2Haddpd,_XMMI2Hsubpd,
- #if defined(__ia64__)
- _FpCodeFma,_FpCodeFmaSingle,_FpCodeFmaDouble,_FpCodeFms,_FpCodeFmsSingle,
- _FpCodeFmsDouble,_FpCodeFnma,_FpCodeFnmaSingle,_FpCodeFnmaDouble,_FpCodeFamin,
- _FpCodeFamax
- #endif
- } _FP_OPERATION_CODE;
- typedef enum {
- _FpRoundNearest,_FpRoundMinusInfinity,_FpRoundPlusInfinity,_FpRoundChopped
- } _FPIEEE_ROUNDING_MODE;
- typedef enum {
- _FpPrecisionFull,_FpPrecision53,_FpPrecision24,
- #if defined(__ia64__)
- _FpPrecision64,_FpPrecision113
- #endif
- } _FPIEEE_PRECISION;
- typedef float _FP32;
- typedef double _FP64;
- typedef short _I16;
- typedef int _I32;
- typedef unsigned short _U16;
- typedef unsigned int _U32;
- __MINGW_EXTENSION typedef __int64 _Q64;
- typedef struct
- #if defined(__ia64__)
- _CRT_ALIGN(16)
- #endif
- {
- unsigned short W[5];
- } _FP80;
- typedef struct _CRT_ALIGN(16) {
- unsigned long W[4];
- } _FP128;
- typedef struct _CRT_ALIGN(8) {
- unsigned long W[2];
- } _I64;
- typedef struct _CRT_ALIGN(8) {
- unsigned long W[2];
- } _U64;
- typedef struct
- #if defined(__ia64__)
- _CRT_ALIGN(16)
- #endif
- {
- unsigned short W[5];
- } _BCD80;
- typedef struct _CRT_ALIGN(16) {
- _Q64 W[2];
- } _FPQ64;
- typedef struct {
- union {
- _FP32 Fp32Value;
- _FP64 Fp64Value;
- _FP80 Fp80Value;
- _FP128 Fp128Value;
- _I16 I16Value;
- _I32 I32Value;
- _I64 I64Value;
- _U16 U16Value;
- _U32 U32Value;
- _U64 U64Value;
- _BCD80 Bcd80Value;
- char *StringValue;
- int CompareValue;
- _Q64 Q64Value;
- _FPQ64 Fpq64Value;
- } Value;
- unsigned int OperandValid : 1;
- unsigned int Format : 4;
- } _FPIEEE_VALUE;
- typedef struct {
- unsigned int Inexact : 1;
- unsigned int Underflow : 1;
- unsigned int Overflow : 1;
- unsigned int ZeroDivide : 1;
- unsigned int InvalidOperation : 1;
- } _FPIEEE_EXCEPTION_FLAGS;
- typedef struct {
- unsigned int RoundingMode : 2;
- unsigned int Precision : 3;
- unsigned int Operation :12;
- _FPIEEE_EXCEPTION_FLAGS Cause;
- _FPIEEE_EXCEPTION_FLAGS Enable;
- _FPIEEE_EXCEPTION_FLAGS Status;
- _FPIEEE_VALUE Operand1;
- _FPIEEE_VALUE Operand2;
- _FPIEEE_VALUE Result;
- #if defined(__ia64__)
- _FPIEEE_VALUE Operand3;
- #endif
- } _FPIEEE_RECORD,*_PFPIEEE_RECORD;
- struct _EXCEPTION_POINTERS;
- _CRTIMP int __cdecl _fpieee_flt(unsigned long _ExceptionCode,struct _EXCEPTION_POINTERS *_PtExceptionPtr,int (__cdecl *_Handler)(_FPIEEE_RECORD *));
- #ifdef __cplusplus
- }
- #endif
- #pragma pack(pop)
- #endif
|