msvcrt: Add _fpieee_flt stub.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2016-08-24 13:57:55 +02:00 committed by Alexandre Julliard
parent 514ff74e9b
commit dc0e3d0a9c
19 changed files with 137 additions and 15 deletions

View File

@ -36,7 +36,7 @@
@ cdecl _errno() ucrtbase._errno
@ cdecl _execute_onexit_table(ptr) ucrtbase._execute_onexit_table
@ cdecl _exit(long) ucrtbase._exit
@ cdecl _fpieee_flt(long ptr ptr) ucrtbase._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) ucrtbase._fpieee_flt
@ cdecl _fpreset() ucrtbase._fpreset
@ cdecl _get_doserrno(ptr) ucrtbase._get_doserrno
@ cdecl _get_errno(ptr) ucrtbase._get_errno

View File

@ -108,7 +108,7 @@
@ cdecl _flushall() msvcrt._flushall
@ extern _fmode_dll msvcrt._fmode
@ cdecl _fpclass(double) msvcrt._fpclass
@ cdecl _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl _fpreset() msvcrt._fpreset
@ cdecl _fputchar(long) msvcrt._fputchar
@ cdecl _fputwchar(long) msvcrt._fputwchar

View File

@ -825,7 +825,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64 _fpclassf
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -1172,7 +1172,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64 _fpclassf
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -1172,7 +1172,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64 _fpclassf
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -1100,7 +1100,7 @@
@ extern _fmode msvcr120._fmode
@ cdecl _fpclass(double) msvcr120._fpclass
# stub -arch=x86_64 _fpclassf
@ cdecl _fpieee_flt(long ptr ptr) msvcr120._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) msvcr120._fpieee_flt
@ cdecl _fpreset() msvcr120._fpreset
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -313,7 +313,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ cdecl _fputchar(long) MSVCRT__fputchar
@ cdecl _fputwchar(long) MSVCRT__fputwchar

View File

@ -307,7 +307,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ cdecl _fputchar(long) MSVCRT__fputchar
@ cdecl _fputwchar(long) MSVCRT__fputwchar

View File

@ -491,7 +491,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64 _fpclassf
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -474,7 +474,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=win64 _fpclassf(float)
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
@ stub _fprintf_p

View File

@ -193,4 +193,14 @@ void __cdecl MSVCRT_longjmp(struct MSVCRT___JUMP_BUFFER *jmp, int retval)
longjmp_set_regs(jmp, retval);
}
/*********************************************************************
* _fpieee_flt (MSVCRT.@)
*/
int __cdecl _fpieee_flt(ULONG exception_code, EXCEPTION_POINTERS *ep,
int (__cdecl *handler)(_FPIEEE_RECORD*))
{
FIXME("(%x %p %p)\n", exception_code, ep, handler);
return EXCEPTION_CONTINUE_SEARCH;
}
#endif /* __arm__ */

View File

@ -1118,4 +1118,15 @@ void __stdcall _seh_longjmp_unwind4(struct MSVCRT___JUMP_BUFFER *jmp)
jmp->TryLevel, (void *)jmp->Ebp );
}
/*********************************************************************
* _fpieee_flt (MSVCRT.@)
*/
int __cdecl _fpieee_flt(ULONG exception_code, EXCEPTION_POINTERS *ep,
int (__cdecl *handler)(_FPIEEE_RECORD*))
{
FIXME("(%x %p %p) opcode: %x\n", exception_code, ep, handler,
*(ULONG*)ep->ContextRecord->FloatSave.ErrorOffset);
return EXCEPTION_CONTINUE_SEARCH;
}
#endif /* __i386__ */

View File

@ -700,4 +700,15 @@ void __cdecl _local_unwind( void *frame, void *target )
RtlUnwind( frame, target, NULL, 0 );
}
/*********************************************************************
* _fpieee_flt (MSVCRT.@)
*/
int __cdecl _fpieee_flt(ULONG exception_code, EXCEPTION_POINTERS *ep,
int (__cdecl *handler)(_FPIEEE_RECORD*))
{
FIXME("(%x %p %p) opcode: %s\n", exception_code, ep, handler,
wine_dbgstr_longlong(*(ULONG64*)ep->ContextRecord->Rip));
return EXCEPTION_CONTINUE_SEARCH;
}
#endif /* __x86_64__ */

View File

@ -1176,4 +1176,94 @@ extern char* __cdecl __unDName(char *,const char*,int,malloc_func_t,free_func_t,
#define UCRTBASE_SCANF_MASK (0x0007)
typedef enum {
_FpFormatFp32,
_FpFormatFp64,
_FpFormatFp80,
_FpFormatFp128,
_FpFormatI16,
_FpFormatI32,
_FpFormatI64,
_FpFormatU16,
_FpFormatU32,
_FpFormatU64,
_FpFormatBcd80,
_FpFormatCompare,
_FpFormatString,
} _FPIEEE_FORMAT;
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;
#endif /* __WINE_MSVCRT_H */

View File

@ -457,7 +457,7 @@
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=win64 _fpclassf(float)
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
# stub _fprintf_l(ptr str ptr)
# stub _fprintf_p(ptr str)

View File

@ -926,7 +926,7 @@
@ cdecl _flushall() msvcrt._flushall
@ extern _fmode msvcrt._fmode
@ cdecl _fpclass(double) msvcrt._fpclass
@ cdecl _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl _fpreset() msvcrt._fpreset
@ cdecl _fputchar(long) msvcrt._fputchar
@ cdecl _fputwchar(long) msvcrt._fputwchar

View File

@ -1012,7 +1012,7 @@
@ cdecl _flushall() msvcrt._flushall
@ extern _fmode msvcrt._fmode
@ cdecl _fpclass(double) msvcrt._fpclass
@ cdecl _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl _fpreset() msvcrt._fpreset
@ cdecl _fputchar(long) msvcrt._fputchar
@ cdecl _fputwchar(long) msvcrt._fputwchar

View File

@ -294,7 +294,7 @@
@ cdecl _flushall() msvcrt._flushall
@ extern _fmode msvcrt._fmode
@ cdecl _fpclass(double) msvcrt._fpclass
@ cdecl _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr) msvcrt._fpieee_flt
@ cdecl _fpreset() msvcrt._fpreset
@ cdecl _fputchar(long) msvcrt._fputchar
@ cdecl _fputwchar(long) msvcrt._fputwchar

View File

@ -325,7 +325,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ cdecl _fpclass(double) MSVCRT__fpclass
@ stub _fpclassf
@ stub _fpieee_flt(long ptr ptr)
@ cdecl -arch=i386,x86_64,arm _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ cdecl _fputc_nolock(long ptr) MSVCRT__fputc_nolock
@ cdecl _fputchar(long) MSVCRT__fputchar