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