Piotr Caban : include: Add msvcrt/fpieee.h header.

Alexandre Julliard julliard at winehq.org
Wed Aug 24 12:05:17 CDT 2016


Module: wine
Branch: master
Commit: 514ff74e9bb222bcc1e1e9829ad412d91ae5efe3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=514ff74e9bb222bcc1e1e9829ad412d91ae5efe3

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Aug 24 13:57:49 2016 +0200

include: Add msvcrt/fpieee.h header.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/Makefile.in     |   1 +
 include/msvcrt/fpieee.h | 239 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 240 insertions(+)

diff --git a/include/Makefile.in b/include/Makefile.in
index 4aaefaf..89004b8 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -473,6 +473,7 @@ HEADER_SRCS = \
 	msvcrt/errno.h \
 	msvcrt/fcntl.h \
 	msvcrt/float.h \
+	msvcrt/fpieee.h \
 	msvcrt/io.h \
 	msvcrt/limits.h \
 	msvcrt/locale.h \
diff --git a/include/msvcrt/fpieee.h b/include/msvcrt/fpieee.h
new file mode 100644
index 0000000..67f6d11
--- /dev/null
+++ b/include/msvcrt/fpieee.h
@@ -0,0 +1,239 @@
+/**
+ * Derived from mingw-w64 header.
+ * This file is in the public domain.
+ */
+#ifndef __WINE_FPIEEE_H
+#define __WINE_FPIEEE_H
+
+#include <crtdefs.h>
+
+#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,
+} _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,
+} _FP_OPERATION_CODE;
+
+typedef enum {
+    _FpRoundNearest,
+    _FpRoundMinusInfinity,
+    _FpRoundPlusInfinity,
+    _FpRoundChopped
+} _FPIEEE_ROUNDING_MODE;
+
+typedef enum {
+    _FpPrecisionFull,
+    _FpPrecision53,
+    _FpPrecision24,
+} _FPIEEE_PRECISION;
+
+typedef float _FP32;
+typedef double _FP64;
+typedef short _I16;
+typedef int _I32;
+typedef unsigned short _U16;
+typedef unsigned int _U32;
+typedef __int64 _Q64;
+
+typedef struct {
+    unsigned short W[5];
+} _FP80;
+
+typedef struct DECLSPEC_ALIGN(16) {
+    __msvcrt_ulong W[4];
+} _FP128;
+
+typedef struct DECLSPEC_ALIGN(8) {
+    __msvcrt_ulong W[2];
+} _I64;
+
+typedef struct DECLSPEC_ALIGN(8) {
+    __msvcrt_ulong W[2];
+} _U64;
+
+typedef struct {
+    unsigned short W[5];
+} _BCD80;
+
+typedef struct DECLSPEC_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;
+} _FPIEEE_RECORD,*_PFPIEEE_RECORD;
+
+struct _EXCEPTION_POINTERS;
+
+int __cdecl _fpieee_flt(__msvcrt_ulong _ExceptionCode,struct _EXCEPTION_POINTERS *_PtExceptionPtr,int (__cdecl *_Handler)(_FPIEEE_RECORD *));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif




More information about the wine-cvs mailing list