2007-11-26 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>

* Makefile.in: Add libmsvcr90.a and libmsvcr90d.a targets.
        * msvcrt.def.in: Add support for __msvcr90__ and __msvcr90d__ defines.
        * mingwex/math/log10f.S: Correct issue with comments.
        * mingwex/math/log10l.S: Ditto.
        * mingwex/math/log1p.S: Ditto.
        * mingwex/math/log1pf.S: Ditto.
        * mingwex/math/log1pl.S: Ditto.
        * mingwex/math/log2.S: Ditto.
        * mingwex/math/log2f.S: Ditto.
        * mingwex/math/log2l.S: Ditto.
        * mingwex/math/logf.S: Ditto.
        * mingwex/math/logl.S: Ditto.
This commit is contained in:
Chris Sutcliffe 2007-11-27 02:14:19 +00:00
parent ee4388c420
commit 4694cc18c2
13 changed files with 119 additions and 102 deletions

View File

@ -1,3 +1,18 @@
2007-11-26 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* Makefile.in: Add libmsvcr90.a and libmsvcr90d.a targets.
* msvcrt.def.in: Add support for __msvcr90__ and __msvcr90d__ defines.
* mingwex/math/log10f.S: Correct issue with comments.
* mingwex/math/log10l.S: Ditto.
* mingwex/math/log1p.S: Ditto.
* mingwex/math/log1pf.S: Ditto.
* mingwex/math/log1pl.S: Ditto.
* mingwex/math/log2.S: Ditto.
* mingwex/math/log2f.S: Ditto.
* mingwex/math/log2l.S: Ditto.
* mingwex/math/logf.S: Ditto.
* mingwex/math/logl.S: Ditto.
2007-10-03 Danny Smith <dannysmith@users.sourceforge.net> 2007-10-03 Danny Smith <dannysmith@users.sourceforge.net>
* mingwex/gdtoa/mingw_snprintf.c: fixed warning during compile. * mingwex/gdtoa/mingw_snprintf.c: fixed warning during compile.

View File

@ -184,6 +184,7 @@ LIBS = libcrtdll.a \
libmsvcr70.a libmsvcr70d.a \ libmsvcr70.a libmsvcr70d.a \
libmsvcr71.a libmsvcr71d.a \ libmsvcr71.a libmsvcr71d.a \
libmsvcr80.a libmsvcr80d.a \ libmsvcr80.a libmsvcr80d.a \
libmsvcr90.a libmsvcr90d.a \
libmingw32.a \ libmingw32.a \
libcoldname.a \ libcoldname.a \
libmoldname.a libmoldnamed.a \ libmoldname.a libmoldnamed.a \
@ -273,6 +274,7 @@ msvcrt.def msvcrtd.def \
msvcr70.def msvcr70d.def \ msvcr70.def msvcr70d.def \
msvcr71.def msvcr71d.def \ msvcr71.def msvcr71d.def \
msvcr80.def msvcr80d.def \ msvcr80.def msvcr80d.def \
msvcr90.def msvcr90d.def \
: msvcrt.def.in : msvcrt.def.in
$(CC) -DRUNTIME=$(basename $(notdir $@)) \ $(CC) -DRUNTIME=$(basename $(notdir $@)) \
-D__$(basename $(notdir $@))__=1 \ -D__$(basename $(notdir $@))__=1 \

View File

@ -20,29 +20,29 @@ limit: .double 0.29
.globl _log10f .globl _log10f
.def _log10f; .scl 2; .type 32; .endef .def _log10f; .scl 2; .type 32; .endef
_log10f: _log10f:
fldlg2 // log10(2) fldlg2 /* log10(2) */
flds 4(%esp) // x : log10(2) flds 4(%esp) /* x : log10(2) */
fxam fxam
fnstsw fnstsw
fld %st // x : x : log10(2) fld %st /* x : x : log10(2) */
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fsubl one // x-1 : x : log10(2) 4: fsubl one /* x-1 : x : log10(2) */
fld %st // x-1 : x-1 : x : log10(2) fld %st /* x-1 : x-1 : x : log10(2) */
fabs // |x-1| : x-1 : x : log10(2) fabs /* |x-1| : x-1 : x : log10(2) */
fcompl limit // x-1 : x : log10(2) fcompl limit /* x-1 : x : log10(2) */
fnstsw // x-1 : x : log10(2) fnstsw /* x-1 : x : log10(2) */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : log10(2) fstp %st(1) /* x-1 : log10(2) */
fyl2xp1 // log10(x) fyl2xp1 /* log10(x) */
ret ret
2: fstp %st(0) // x : log10(2) 2: fstp %st(0) /* x : log10(2) */
fyl2x // log10(x) fyl2x /* log10(x) */
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -24,29 +24,29 @@ limit: .double 0.29
.globl _log10l .globl _log10l
.def _log10l; .scl 2; .type 32; .endef .def _log10l; .scl 2; .type 32; .endef
_log10l: _log10l:
fldlg2 // log10(2) fldlg2 /* log10(2) */
fldt 4(%esp) // x : log10(2) fldt 4(%esp) /* x : log10(2) */
fxam fxam
fnstsw fnstsw
fld %st // x : x : log10(2) fld %st /* x : x : log10(2) */
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fsubl one // x-1 : x : log10(2) 4: fsubl one /* x-1 : x : log10(2) */
fld %st // x-1 : x-1 : x : log10(2) fld %st /* x-1 : x-1 : x : log10(2) */
fabs // |x-1| : x-1 : x : log10(2) fabs /* |x-1| : x-1 : x : log10(2) */
fcompl limit // x-1 : x : log10(2) fcompl limit /* x-1 : x : log10(2) */
fnstsw // x-1 : x : log10(2) fnstsw /* x-1 : x : log10(2) */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : log10(2) fstp %st(1) /* x-1 : log10(2) */
fyl2xp1 // log10(x) fyl2xp1 /* log10(x) */
ret ret
2: fstp %st(0) // x : log10(2) 2: fstp %st(0) /* x : log10(2) */
fyl2x // log10(x) fyl2x /* log10(x) */
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -27,7 +27,7 @@ _log1p:
fnstsw fnstsw
fld %st fld %st
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fabs 4: fabs
fcompl limit fcompl limit
@ -41,7 +41,7 @@ _log1p:
2: fyl2xp1 2: fyl2xp1
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -27,7 +27,7 @@ _log1pf:
fnstsw fnstsw
fld %st fld %st
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fabs 4: fabs
fcomps limit fcomps limit
@ -41,7 +41,7 @@ _log1pf:
2: fyl2xp1 2: fyl2xp1
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -33,7 +33,7 @@ _log1pl:
fnstsw fnstsw
fld %st fld %st
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: 4:
fabs fabs
fldt limit fldt limit
@ -48,7 +48,7 @@ _log1pl:
2: fyl2xp1 2: fyl2xp1
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -24,28 +24,28 @@ limit: .double 0.29
.def _log2; .scl 2; .type 32; .endef .def _log2; .scl 2; .type 32; .endef
_log2: _log2:
fldl one fldl one
fldl 4(%esp) // x : 1 fldl 4(%esp) /* x : 1 */
fxam fxam
fnstsw fnstsw
fld %st // x : x : 1 fld %st /* x : x : 1 */
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fsub %st(2), %st // x-1 : x : 1 4: fsub %st(2), %st /* x-1 : x : 1 */
fld %st // x-1 : x-1 : x : 1 fld %st /* x-1 : x-1 : x : 1 */
fabs // |x-1| : x-1 : x : 1 fabs /* |x-1| : x-1 : x : 1 */
fcompl limit // x-1 : x : 1 fcompl limit /* x-1 : x : 1 */
fnstsw // x-1 : x : 1 fnstsw /* x-1 : x : 1 */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : 1 fstp %st(1) /* x-1 : 1 */
fyl2xp1 // log(x) fyl2xp1 /* log(x) */
ret ret
2: fstp %st(0) // x : 1 2: fstp %st(0) /* x : 1 */
fyl2x // log(x) fyl2x /* log(x) */
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -24,28 +24,28 @@ limit: .double 0.29
.def _log2f; .scl 2; .type 32; .endef .def _log2f; .scl 2; .type 32; .endef
_log2f: _log2f:
fldl one fldl one
flds 4(%esp) // x : 1 flds 4(%esp) /* x : 1 */
fxam fxam
fnstsw fnstsw
fld %st // x : x : 1 fld %st /* x : x : 1 */
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fsub %st(2), %st // x-1 : x : 1 4: fsub %st(2), %st /* x-1 : x : 1 */
fld %st // x-1 : x-1 : x : 1 fld %st /* x-1 : x-1 : x : 1 */
fabs // |x-1| : x-1 : x : 1 fabs /* |x-1| : x-1 : x : 1 */
fcompl limit // x-1 : x : 1 fcompl limit /* x-1 : x : 1 */
fnstsw // x-1 : x : 1 fnstsw /* x-1 : x : 1 */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : 1 fstp %st(1) /* x-1 : 1 */
fyl2xp1 // log(x) fyl2xp1 /* log(x) */
ret ret
2: fstp %st(0) // x : 1 2: fstp %st(0) /* x : 1 */
fyl2x // log(x) fyl2x /* log(x) */
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -21,28 +21,28 @@ limit: .double 0.29
.def _log2l; .scl 2; .type 32; .endef .def _log2l; .scl 2; .type 32; .endef
_log2l: _log2l:
fldl one fldl one
fldt 4(%esp) // x : 1 fldt 4(%esp) /* x : 1 */
fxam fxam
fnstsw fnstsw
fld %st // x : x : 1 fld %st /* x : x : 1 */
sahf sahf
jc 3f // in case x is NaN or ±Inf jc 3f /* in case x is NaN or ±Inf */
4: fsub %st(2), %st // x-1 : x : 1 4: fsub %st(2), %st /* x-1 : x : 1 */
fld %st // x-1 : x-1 : x : 1 fld %st /* x-1 : x-1 : x : 1 */
fabs // |x-1| : x-1 : x : 1 fabs /* |x-1| : x-1 : x : 1 */
fcompl limit // x-1 : x : 1 fcompl limit /* x-1 : x : 1 */
fnstsw // x-1 : x : 1 fnstsw /* x-1 : x : 1 */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : 1 fstp %st(1) /* x-1 : 1 */
fyl2xp1 // log(x) fyl2xp1 /* log(x) */
ret ret
2: fstp %st(0) // x : 1 2: fstp %st(0) /* x : 1 */
fyl2x // log(x) fyl2x /* log(x) */
ret ret
3: jp 4b // in case x is ±Inf 3: jp 4b /* in case x is ±Inf */
fstp %st(1) fstp %st(1)
fstp %st(1) fstp %st(1)
ret ret

View File

@ -20,20 +20,20 @@ limit: .double 0.29
.globl _logf .globl _logf
.def _logf; .scl 2; .type 32; .endef .def _logf; .scl 2; .type 32; .endef
_logf: _logf:
fldln2 // log(2) fldln2 /* log(2) */
flds 4(%esp) // x : log(2) flds 4(%esp) /* x : log(2) */
fld %st // x : x : log(2) fld %st /* x : x : log(2) */
fsubl one // x-1 : x : log(2) fsubl one /* x-1 : x : log(2) */
fld %st // x-1 : x-1 : x : log(2) fld %st /* x-1 : x-1 : x : log(2) */
fabs // |x-1| : x-1 : x : log(2) fabs /* |x-1| : x-1 : x : log(2) */
fcompl limit // x-1 : x : log(2) fcompl limit /* x-1 : x : log(2) */
fnstsw // x-1 : x : log(2) fnstsw /* x-1 : x : log(2) */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : log(2) fstp %st(1) /* x-1 : log(2) */
fyl2xp1 // log(x) fyl2xp1 /* log(x) */
ret ret
2: fstp %st(0) // x : log(2) 2: fstp %st(0) /* x : log(2) */
fyl2x // log(x) fyl2x /* log(x) */
ret ret

View File

@ -21,20 +21,20 @@ limit: .double 0.29
.globl _logl .globl _logl
.def _logl; .scl 2; .type 32; .endef .def _logl; .scl 2; .type 32; .endef
_logl: _logl:
fldln2 // log(2) fldln2 /* log(2) */
fldt 4(%esp) // x : log(2) fldt 4(%esp) /* x : log(2) */
fld %st // x : x : log(2) fld %st /* x : x : log(2) */
fsubl one // x-1 : x : log(2) fsubl one /* x-1 : x : log(2) */
fld %st // x-1 : x-1 : x : log(2) fld %st /* x-1 : x-1 : x : log(2) */
fabs // |x-1| : x-1 : x : log(2) fabs /* |x-1| : x-1 : x : log(2) */
fcompl limit // x-1 : x : log(2) fcompl limit /* x-1 : x : log(2) */
fnstsw // x-1 : x : log(2) fnstsw /* x-1 : x : log(2) */
andb $0x45, %ah andb $0x45, %ah
jz 2f jz 2f
fstp %st(1) // x-1 : log(2) fstp %st(1) /* x-1 : log(2) */
fyl2xp1 // log(x) fyl2xp1 /* log(x) */
ret ret
2: fstp %st(0) // x : log(2) 2: fstp %st(0) /* x : log(2) */
fyl2x // log(x) fyl2x /* log(x) */
ret ret

View File

@ -5,7 +5,7 @@
;* This file is a part of the mingw-runtime package. ;* This file is a part of the mingw-runtime package.
;* No warranty is given; refer to the file DISCLAIMER within the package. ;* No warranty is given; refer to the file DISCLAIMER within the package.
; ;
; Exports from msvcrt.dll, msvcr70.dll, msvcr71.dll and msvcr80.dll ; Exports from msvcrt.dll, msvcr70.dll, msvcr71.dll, msvcr80.dll and msvcr90.dll
; ;
; NOTE: All exports, except for what appeared to be C++ mangled names, ; NOTE: All exports, except for what appeared to be C++ mangled names,
; are included. Not all functions have prototypes in the headers ; are included. Not all functions have prototypes in the headers
@ -148,7 +148,7 @@ _cprintf
_cputs _cputs
_creat _creat
_cscanf _cscanf
#if !(__msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__) #if !(__msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__ || __msvcr90__ || msvcr90d__)
_ctype DATA _ctype DATA
#endif #endif
_cwait _cwait
@ -743,7 +743,7 @@ _wfindfirst64
_wfindnext64 _wfindnext64
_wstat64 _wstat64
_wutime64 _wutime64
#if ( __msvcr70__ || __msvcr70d__ || __msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__) #if ( __msvcr70__ || __msvcr70d__ || __msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__ || __msvcr90__ || __msvcr90d__)
; msvcr70.dll amd later ; msvcr70.dll amd later
__buffer_overrun __buffer_overrun
__CxxDetectRethrow __CxxDetectRethrow
@ -787,7 +787,7 @@ _wcstoui64
_wctype _wctype
_wtof _wtof
#endif /* 7.0 */ #endif /* 7.0 */
#if (__msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__) #if (__msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__ || __msvcr90__ || __msvcr90d__)
; msvcr71.dll ; msvcr71.dll
___lc_codepage_func ___lc_codepage_func
___lc_collate_cp_func ___lc_collate_cp_func
@ -808,7 +808,7 @@ _get_heap_handle
_set_purecall_handler _set_purecall_handler
_set_SSE2_enable _set_SSE2_enable
#endif /* 7.1 */ #endif /* 7.1 */
#if ( __msvcr80__ || __msvcr80d__) #if ( __msvcr80__ || __msvcr80d__ || __msvcr90__ || __msvcr90d__)
; msvcr80.dll ; msvcr80.dll
_get_printf_count_output _get_printf_count_output
_set_printf_count_output _set_printf_count_output