Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
fd51f229
Commit
fd51f229
authored
Nov 16, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Reimplement _fpclass().
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
23008a0f
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
48 additions
and
45 deletions
+48
-45
configure
configure
+0
-1
configure.ac
configure.ac
+0
-1
api-ms-win-crt-math-l1-1-0.spec
...pi-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
+1
-1
api-ms-win-crt-private-l1-1-0.spec
...win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
+1
-1
msvcr100.spec
dlls/msvcr100/msvcr100.spec
+1
-1
msvcr110.spec
dlls/msvcr110/msvcr110.spec
+1
-1
msvcr120.spec
dlls/msvcr120/msvcr120.spec
+1
-1
msvcr120_app.spec
dlls/msvcr120_app/msvcr120_app.spec
+1
-1
msvcr80.spec
dlls/msvcr80/msvcr80.spec
+1
-1
msvcr90.spec
dlls/msvcr90/msvcr90.spec
+1
-1
math.c
dlls/msvcrt/math.c
+37
-29
msvcrt.spec
dlls/msvcrt/msvcrt.spec
+1
-1
ucrtbase.spec
dlls/ucrtbase/ucrtbase.spec
+2
-2
config.h.in
include/config.h.in
+0
-3
No files found.
configure
View file @
fd51f229
...
...
@@ -17728,7 +17728,6 @@ for ac_func in \
finitef
\
fnmatch
\
fork
\
fpclass
\
fstatfs
\
fstatvfs
\
futimens
\
...
...
configure.ac
View file @
fd51f229
...
...
@@ -2167,7 +2167,6 @@ AC_CHECK_FUNCS(\
finitef \
fnmatch \
fork \
fpclass \
fstatfs \
fstatvfs \
futimens \
...
...
dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
View file @
fd51f229
...
...
@@ -79,7 +79,7 @@
@ cdecl _finite(double) ucrtbase._finite
@ cdecl -arch=!i386 _finitef(float) ucrtbase._finitef
@ cdecl _fpclass(double) ucrtbase._fpclass
@
stub
_fpclassf
@
cdecl -arch=!i386 _fpclassf(float) ucrtbase.
_fpclassf
@ cdecl -arch=i386 -ret64 _ftol() ucrtbase._ftol
@ cdecl -arch=win64 _get_FMA3_enable() ucrtbase._get_FMA3_enable
@ cdecl _hypot(double double) ucrtbase._hypot
...
...
dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
View file @
fd51f229
...
...
@@ -282,7 +282,7 @@
@ cdecl _o__findnext64i32(long ptr) ucrtbase._o__findnext64i32
@ cdecl _o__flushall() ucrtbase._o__flushall
@ cdecl _o__fpclass(double) ucrtbase._o__fpclass
@
stub
_o__fpclassf
@
cdecl -arch=!i386 _o__fpclassf(float) ucrtbase.
_o__fpclassf
@ cdecl _o__fputc_nolock(long ptr) ucrtbase._o__fputc_nolock
@ cdecl _o__fputchar(long) ucrtbase._o__fputchar
@ cdecl _o__fputwc_nolock(long ptr) ucrtbase._o__fputwc_nolock
...
...
dlls/msvcr100/msvcr100.spec
View file @
fd51f229
...
...
@@ -824,7 +824,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64
_fpclassf
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT_
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
...
...
dlls/msvcr110/msvcr110.spec
View file @
fd51f229
...
...
@@ -1171,7 +1171,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64
_fpclassf
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT_
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
...
...
dlls/msvcr120/msvcr120.spec
View file @
fd51f229
...
...
@@ -1171,7 +1171,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64
_fpclassf
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT_
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
...
...
dlls/msvcr120_app/msvcr120_app.spec
View file @
fd51f229
...
...
@@ -1099,7 +1099,7 @@
@ cdecl _flushall() msvcr120._flushall
@ extern _fmode msvcr120._fmode
@ cdecl _fpclass(double) msvcr120._fpclass
# stub -arch=x86_64
_fpclassf
@ cdecl -arch=!i386 _fpclassf(float) msvcr120.
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr) msvcr120._fpieee_flt
@ cdecl _fpreset() msvcr120._fpreset
@ stub _fprintf_l
...
...
dlls/msvcr80/msvcr80.spec
View file @
fd51f229
...
...
@@ -490,7 +490,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=x86_64
_fpclassf
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT_
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
...
...
dlls/msvcr90/msvcr90.spec
View file @
fd51f229
...
...
@@ -473,7 +473,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=win64 _fpclassf(float)
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT__fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ stub _fprintf_l
...
...
dlls/msvcrt/math.c
View file @
fd51f229
...
...
@@ -209,6 +209,28 @@ float CDECL MSVCRT__logbf( float num )
#ifndef __i386__
/*********************************************************************
* _fpclassf (MSVCRT.@)
*/
int
CDECL
MSVCRT__fpclassf
(
float
num
)
{
union
{
float
f
;
UINT32
i
;
}
u
=
{
num
};
int
e
=
u
.
i
>>
23
&
0xff
;
int
s
=
u
.
i
>>
31
;
switch
(
e
)
{
case
0
:
if
(
u
.
i
<<
1
)
return
s
?
MSVCRT__FPCLASS_ND
:
MSVCRT__FPCLASS_PD
;
return
s
?
MSVCRT__FPCLASS_NZ
:
MSVCRT__FPCLASS_PZ
;
case
0xff
:
if
(
u
.
i
<<
9
)
return
((
u
.
i
>>
22
)
&
1
)
?
MSVCRT__FPCLASS_QNAN
:
MSVCRT__FPCLASS_SNAN
;
return
s
?
MSVCRT__FPCLASS_NINF
:
MSVCRT__FPCLASS_PINF
;
default:
return
s
?
MSVCRT__FPCLASS_NN
:
MSVCRT__FPCLASS_PN
;
}
}
/*********************************************************************
* _finitef (MSVCRT.@)
*/
int
CDECL
MSVCRT__finitef
(
float
num
)
...
...
@@ -1391,35 +1413,21 @@ __ASM_GLOBAL_FUNC(MSVCRT__ftol,
*/
int
CDECL
MSVCRT__fpclass
(
double
num
)
{
#if defined(HAVE_FPCLASS) || defined(fpclass)
switch
(
fpclass
(
num
))
{
case
FP_SNAN
:
return
MSVCRT__FPCLASS_SNAN
;
case
FP_QNAN
:
return
MSVCRT__FPCLASS_QNAN
;
case
FP_NINF
:
return
MSVCRT__FPCLASS_NINF
;
case
FP_PINF
:
return
MSVCRT__FPCLASS_PINF
;
case
FP_NDENORM
:
return
MSVCRT__FPCLASS_ND
;
case
FP_PDENORM
:
return
MSVCRT__FPCLASS_PD
;
case
FP_NZERO
:
return
MSVCRT__FPCLASS_NZ
;
case
FP_PZERO
:
return
MSVCRT__FPCLASS_PZ
;
case
FP_NNORM
:
return
MSVCRT__FPCLASS_NN
;
case
FP_PNORM
:
return
MSVCRT__FPCLASS_PN
;
default
:
return
MSVCRT__FPCLASS_PN
;
}
#elif defined (fpclassify)
switch
(
fpclassify
(
num
))
{
case
FP_NAN
:
return
MSVCRT__FPCLASS_QNAN
;
case
FP_INFINITE
:
return
signbit
(
num
)
?
MSVCRT__FPCLASS_NINF
:
MSVCRT__FPCLASS_PINF
;
case
FP_SUBNORMAL
:
return
signbit
(
num
)
?
MSVCRT__FPCLASS_ND
:
MSVCRT__FPCLASS_PD
;
case
FP_ZERO
:
return
signbit
(
num
)
?
MSVCRT__FPCLASS_NZ
:
MSVCRT__FPCLASS_PZ
;
}
return
signbit
(
num
)
?
MSVCRT__FPCLASS_NN
:
MSVCRT__FPCLASS_PN
;
#else
if
(
!
isfinite
(
num
))
return
MSVCRT__FPCLASS_QNAN
;
return
num
==
0
.
0
?
MSVCRT__FPCLASS_PZ
:
(
num
<
0
?
MSVCRT__FPCLASS_NN
:
MSVCRT__FPCLASS_PN
);
#endif
union
{
double
f
;
UINT64
i
;
}
u
=
{
num
};
int
e
=
u
.
i
>>
52
&
0x7ff
;
int
s
=
u
.
i
>>
63
;
switch
(
e
)
{
case
0
:
if
(
u
.
i
<<
1
)
return
s
?
MSVCRT__FPCLASS_ND
:
MSVCRT__FPCLASS_PD
;
return
s
?
MSVCRT__FPCLASS_NZ
:
MSVCRT__FPCLASS_PZ
;
case
0x7ff
:
if
(
u
.
i
<<
12
)
return
((
u
.
i
>>
51
)
&
1
)
?
MSVCRT__FPCLASS_QNAN
:
MSVCRT__FPCLASS_SNAN
;
return
s
?
MSVCRT__FPCLASS_NINF
:
MSVCRT__FPCLASS_PINF
;
default
:
return
s
?
MSVCRT__FPCLASS_NN
:
MSVCRT__FPCLASS_PN
;
}
}
/*********************************************************************
...
...
dlls/msvcrt/msvcrt.spec
View file @
fd51f229
...
...
@@ -456,7 +456,7 @@
@ cdecl _flushall() MSVCRT__flushall
@ extern _fmode MSVCRT__fmode
@ cdecl _fpclass(double) MSVCRT__fpclass
# stub -arch=win64 _fpclassf(float)
@ cdecl -arch=!i386 _fpclassf(float) MSVCRT__fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
# stub _fprintf_l(ptr str ptr)
...
...
dlls/ucrtbase/ucrtbase.spec
View file @
fd51f229
...
...
@@ -324,7 +324,7 @@
@ cdecl -arch=!i386 _finitef(float) MSVCRT__finitef
@ cdecl _flushall() MSVCRT__flushall
@ cdecl _fpclass(double) MSVCRT__fpclass
@
stub
_fpclassf
@
cdecl -arch=!i386 _fpclassf(float) MSVCRT_
_fpclassf
@ cdecl -arch=i386,x86_64,arm,arm64 _fpieee_flt(long ptr ptr)
@ cdecl _fpreset()
@ cdecl _fputc_nolock(long ptr) MSVCRT__fputc_nolock
...
...
@@ -946,7 +946,7 @@
@ cdecl _o__findnext64i32(long ptr) MSVCRT__findnext64i32
@ cdecl _o__flushall() MSVCRT__flushall
@ cdecl _o__fpclass(double) MSVCRT__fpclass
@
stub _o
__fpclassf
@
cdecl -arch=!i386 _o__fpclassf(float) MSVCRT
__fpclassf
@ cdecl _o__fputc_nolock(long ptr) MSVCRT__fputc_nolock
@ cdecl _o__fputchar(long) MSVCRT__fputchar
@ cdecl _o__fputwc_nolock(long ptr) MSVCRT__fputwc_nolock
...
...
include/config.h.in
View file @
fd51f229
...
...
@@ -192,9 +192,6 @@
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS
/* Define if FreeType 2 is installed */
#undef HAVE_FREETYPE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment