Revert r45245 - r45247

Although the idea of using mingw-w64's routines is good, we can't because it's using x87. We need SSE2.

svn path=/branches/ros-amd64-bringup/; revision=45255
This commit is contained in:
Timo Kreuzer 2010-01-25 22:01:02 +00:00
parent 3ec17c4a18
commit 9c9f4a9fd7
85 changed files with 2786 additions and 2128 deletions

View file

@ -28,5 +28,8 @@
<library>gdi32</library>
<library>windowscodecs</library>
<library>ntdll</library>
<if property="ARCH" value="amd64">
<library>crt</library>
</if>
</module>
</group>

View file

@ -19,7 +19,7 @@
* $Date$
*
*/
#define _CRTBLD
#include <precomp.h>
#include <internal/wine/msvcrt.h>
#include <locale.h>

View file

@ -0,0 +1,850 @@
;
; ReactOS MSVCRT Library
;
LIBRARY msvcrt.dll
EXPORTS
$I10_OUTPUT=MSVCRT_I10_OUTPUT @57
??0__non_rtti_object@@QAE@ABV0@@Z=MSVCRT___non_rtti_object_copy_ctor @1
??0__non_rtti_object@@QAE@PBD@Z=MSVCRT___non_rtti_object_ctor @2
; ??0bad_cast@@AAE@PBQBD@Z @3
??0bad_cast@@QAE@ABQBD@Z=MSVCRT_bad_cast_ctor @4
??0bad_cast@@QAE@ABV0@@Z=MSVCRT_bad_cast_copy_ctor @5
; ??0bad_cast@@QAE@PBD@Z @6
??0bad_typeid@@QAE@ABV0@@Z=MSVCRT_bad_typeid_copy_ctor @7
??0bad_typeid@@QAE@PBD@Z=MSVCRT_bad_typeid_ctor @8
??0exception@@QAE@ABQBD@Z=MSVCRT_exception_ctor @9
; ??0exception@@QAE@ABQBDH@Z @10
??0exception@@QAE@ABV0@@Z=MSVCRT_exception_copy_ctor @11
??0exception@@QAE@XZ=MSVCRT_exception_default_ctor @12
??1__non_rtti_object@@UAE@XZ=MSVCRT___non_rtti_object_dtor @13
??1bad_cast@@UAE@XZ=MSVCRT_bad_cast_dtor @14
??1bad_typeid@@UAE@XZ=MSVCRT_bad_typeid_dtor @15
??1exception@@UAE@XZ=MSVCRT_exception_dtor @16
??1type_info@@UAE@XZ=MSVCRT_type_info_dtor @17
??2@YAPAXI@Z=MSVCRT_operator_new @18
??3@YAXPAX@Z=MSVCRT_operator_delete @19
??4__non_rtti_object@@QAEAAV0@ABV0@@Z=MSVCRT___non_rtti_object_opequals @20
??4bad_cast@@QAEAAV0@ABV0@@Z=MSVCRT_bad_cast_opequals @21
??4bad_typeid@@QAEAAV0@ABV0@@Z=MSVCRT_bad_typeid_opequals @22
??4exception@@QAEAAV0@ABV0@@Z=MSVCRT_exception_opequals @23
??8type_info@@QBEHABV0@@Z=MSVCRT_type_info_opequals_equals @24
??9type_info@@QBEHABV0@@Z=MSVCRT_type_info_opnot_equals @25
??_7__non_rtti_object@@6B@=MSVCRT___non_rtti_object_vtable@@6B@ @26 DATA
??_7bad_cast@@6B@=MSVCRT_bad_cast_vtable @27 DATA
??_7bad_typeid@@6B@=MSVCRT_bad_typeid_vtable @28 DATA
??_7exception@@6B@=MSVCRT_exception_vtable @29 DATA
??_E__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_vector_dtor @30
??_Ebad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_vector_dtor @31
??_Ebad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_vector_dtor @32
??_Eexception@@UAEPAXI@Z=MSVCRT_exception_vector_dtor @33
; ??_Fbad_cast@@QAEXXZ @34
; ??_Fbad_typeid@@QAEXXZ @35
??_G__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_scalar_dtor @36
??_Gbad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_scalar_dtor @37
??_Gbad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_scalar_dtor @38
??_Gexception@@UAEPAXI@Z=MSVCRT_exception_scalar_dtor @39
??_U@YAPAXI@Z=MSVCRT_operator_new @40
??_V@YAXPAX@Z=MSVCRT_operator_delete @41
?_query_new_handler@@YAP6AHI@ZXZ=MSVCRT__query_new_handler @43
?_query_new_mode@@YAHXZ=MSVCRT__query_new_mode @44
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler @45
?_set_new_mode@@YAHH@Z=MSVCRT__set_new_mode @46
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z=MSVCRT__set_se_translator @47
?before@type_info@@QBEHABV1@@Z=MSVCRT_type_info_before @48
?name@type_info@@QBEPBDXZ=MSVCRT_type_info_name @49
?raw_name@type_info@@QBEPBDXZ=MSVCRT_type_info_raw_name @50
?set_new_handler@@YAP6AXXZP6AXXZ@Z=MSVCRT__set_new_handler @51
?set_terminate@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_terminate @52
?set_unexpected@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_unexpected @53
?terminate@@YAXXZ=MSVCRT_terminate @54
?unexpected@@YAXXZ=MSVCRT_unexpected @55
?what@exception@@UBEPBDXZ=MSVCRT_what_exception @56
_CIacos @58
_CIasin @59
_CIatan @60
_CIatan2 @61
_CIcos @62
_CIcosh @63
_CIexp @64
_CIfmod @65
_CIlog @66
_CIlog10 @67
_CIpow @68
_CIsin @69
_CIsinh @70
_CIsqrt @71
_CItan @72
_CItanh @73
_CxxThrowException @74
; _EH_prolog @75 ???
_Getdays @76
_Getmonths @77
_Gettnames @78
_HUGE @79 DATA
_Strftime @80
_XcptFilter @81
__CppXcptFilter @82
; __CxxCallUnwindDtor @83
; __CxxCallUnwindVecDtor @84
__CxxDetectRethrow @85
; __CxxExceptionFilter @86
; __CxxFrameHandler @87 ???
; __CxxFrameHandler2 @88
; __CxxLongjmpUnwind @89 ???
__CxxQueryExceptionSize @90
; __CxxRegisterExceptionObject @91
; __CxxUnregisterExceptionObject @92
; __DestructExceptionObject @93
__RTCastToVoid=MSVCRT___RTCastToVoid @94
__RTDynamicCast=MSVCRT___RTDynamicCast @95
__RTtypeid=MSVCRT___RTtypeid @96
__STRINGTOLD @97
; ___lc_codepage_func @98
; ___lc_collate_cp_func @99
; ___lc_handle_func @100
; ___mb_cur_max_func @101
___setlc_active_func @102
___unguarded_readlc_active_add_func @103
__argc @104 DATA
__argv @105 DATA
__badioinfo @106 DATA
__crtCompareStringA=kernel32.CompareStringA @107
__crtCompareStringW=kernel32.CompareStringW @108
__crtGetLocaleInfoW=kernel32.GetLocaleInfo @109
__crtGetStringTypeW=kernel32.GetStringTypeW @110
__crtLCMapStringA @111
; __crtLCMapStringW @112
__dllonexit @113
__doserrno @114
__fpecode @115
__getmainargs @116
__initenv @117
__iob_func=__p__iob @118
__isascii @119
__iscsym @120
__iscsymf @121
__lc_codepage @122 DATA
__lc_collate_cp @123 DATA
__lc_handle @124 DATA
__lconv_init @125
__mb_cur_max @126 DATA
__p___argc @127
__p___argv @128
__p___initenv @129
__p___mb_cur_max @130
__p___wargv @131
__p___winitenv @132
__p__acmdln @133
__p__amblksiz @134
__p__commode @135
__p__daylight @136
__p__dstbias @137
__p__environ @138
; __p__fileinfo @139
__p__fmode @140
__p__iob @141
; __p__mbcasemap @142
__p__mbctype @143
__p__osver @144
__p__pctype @145
__p__pgmptr @146
__p__pwctype @147
__p__timezone @148
__p__tzname @149
__p__wcmdln @150
__p__wenviron @151
__p__winmajor @152
__p__winminor @153
__p__winver @154
__p__wpgmptr @155
; __pctype_func @156
__pioinfo @157 DATA
; __pwctype_func @158
__pxcptinfoptrs @159
__set_app_type @160
__setlc_active @161 DATA
__setusermatherr @162
__threadhandle @163
__threadid @164
__toascii @165
__unDName @166
__unDNameEx @167
; __uncaught_exception @42
__unguarded_readlc_active @168 DATA
__wargv @169 DATA
; __wcserror @170
__wgetmainargs @171
__winitenv @172 DATA
_abnormal_termination @173
; _abs64 @174
_access @175
_acmdln @176 DATA
_adj_fdiv_m16i @177
_adj_fdiv_m32 @178
_adj_fdiv_m32i @179
_adj_fdiv_m64 @180
_adj_fdiv_r @181
_adj_fdivr_m16i @182
_adj_fdivr_m32 @183
_adj_fdivr_m32i @184
_adj_fdivr_m64 @185
_adj_fpatan @186
_adj_fprem @187
_adj_fprem1 @188
_adj_fptan @189
_adjust_fdiv @190 DATA
_aexit_rtn @191
_aligned_free @192
_aligned_malloc @193
_aligned_offset_malloc @194
_aligned_offset_realloc @195
_aligned_realloc @196
_amsg_exit @197
_assert @198
; _atodbl @199
_atoi64 @200
_atoldbl @201
_beep @202
_beginthread @203
_beginthreadex @204
_c_exit @205
_cabs @206
_callnewh @207
_cexit @208
_cgets @209
; _cgetws @210
_chdir @211
_chdrive @212
_chgsign @213
_chkesp @214
_chmod @215
_chsize @216
_clearfp @217
_close @218
_commit @219
_commode @220 DATA
_control87 @221
_controlfp @222
_copysign @223
_cprintf @224
_cputs @225
; _cputws @226
_creat @227
_cscanf @228
_ctime64 @229
_ctype @230 DATA
_cwait @231
; _cwprintf @232
; _cwscanf @233
_daylight @234 DATA
_dstbias @235 DATA
_dup @236
_dup2 @237
_ecvt @238
_endthread @239
_endthreadex @240
_environ @241 DATA
_eof @242
_errno @243
_except_handler2 @244
_except_handler3 @245
_execl @246
_execle @247
_execlp @248
_execlpe @249
_execv @250
_execve @251
_execvp @252
_execvpe @253
_exit @254
_expand @255
_fcloseall @256
_fcvt @257
_fdopen @258
_fgetchar @259
_fgetwchar @260
_filbuf @261
; _fileinfo @262
_filelength @263
_filelengthi64 @264
_fileno @265
_findclose @266
_findfirst @267
_findfirst64 @268
_findfirsti64 @269
_findnext @270
_findnext64 @271
_findnexti64 @272
_finite @273
_flsbuf @274
_flushall @275
_fmode @276 DATA
_fpclass @277
_fpieee_flt @278
_fpreset @279
_fputchar @280
_fputwchar @281
_fsopen @282
_fstat @283
_fstat64 @284
_fstati64 @285
_ftime @286
; _ftime64 @287 ???
; _ftol @288 ???
_fullpath @289
_futime @290
; _futime64 @291
_gcvt @292
; _get_heap_handle @293
_get_osfhandle @294
_get_sbh_threshold @295
_getch @296
_getche @297
_getcwd @298
_getdcwd @299
_getdiskfree @300
_getdllprocaddr @301
_getdrive @302
_getdrives=kernel32.GetLogicalDrives @303
_getmaxstdio @304
_getmbcp @305
_getpid=kernel32.GetCurrentProcessId @306
_getsystime @307
_getw @308
; _getwch @309
; _getwche @310
_getws @311
_global_unwind2 @312
_gmtime64=gmtime @313
_heapadd @314
_heapchk @315
_heapmin @316
_heapset @317
; _heapused @318
_heapwalk @319
_hypot @320
_i64toa @321
_i64tow @322
_initterm @323
; _inp @324
; _inpd @325
; _inpw @326
_iob @327 DATA
_isatty @328
_isctype @329
_ismbbalnum @330
_ismbbalpha @331
_ismbbgraph @332
_ismbbkalnum @333
_ismbbkana @334
; _ismbbkprint @335
_ismbbkpunct @336
_ismbblead @337
_ismbbprint @338
_ismbbpunct @339
_ismbbtrail @340
_ismbcalnum @341
_ismbcalpha @342
_ismbcdigit @343
_ismbcgraph @344
_ismbchira @345
_ismbckata @346
_ismbcl0 @347
_ismbcl1 @348
_ismbcl2 @349
_ismbclegal @350
_ismbclower @351
_ismbcprint @352
_ismbcpunct @353
_ismbcspace @354
_ismbcsymbol @355
_ismbcupper @356
_ismbslead @357
_ismbstrail @358
_isnan @359
_itoa @360
_itow @361
; FIXME: these aren't actually implemented in CRT
; _j0 @362
; _j1 @363
; _jn @364
_kbhit @365
_lfind @366
_loaddll @367
_local_unwind2 @368
_localtime64 @369
_lock @370
_locking @371
_logb @372
_longjmpex=longjmp @373
_lrotl @374
_lrotr @375
_lsearch @376
_lseek @377
_lseeki64 @378
_ltoa @379
_ltow @380
_makepath @381
_mbbtombc @382
_mbbtype @383
; _mbcasemap @384
_mbccpy @385
_mbcjistojms @386
_mbcjmstojis @387
_mbclen @388
_mbctohira @389
_mbctokata @390
_mbctolower @391
_mbctombb @392
_mbctoupper @393
_mbctype @394 DATA
_mbsbtype @395
_mbscat @396
_mbschr @397
_mbscmp @398
_mbscoll @399
_mbscpy @400
_mbscspn @401
_mbsdec @402
_mbsdup @403
_mbsicmp @404
_mbsicoll @405
_mbsinc @406
_mbslen @407
_mbslwr @408
_mbsnbcat @409
_mbsnbcmp @410
_mbsnbcnt @411
_mbsnbcoll @412
_mbsnbcpy @413
_mbsnbicmp @414
_mbsnbicoll @415
_mbsnbset @416
_mbsncat @417
_mbsnccnt @418
_mbsncmp @419
_mbsncoll @420
_mbsncpy @421
_mbsnextc @422
_mbsnicmp @423
_mbsnicoll @424
_mbsninc @425
_mbsnset @426
_mbspbrk @427
_mbsrchr @428
_mbsrev @429
_mbsset @430
_mbsspn @431
_mbsspnp @432
_mbsstr @433
_mbstok @434
_mbstrlen @435
_mbsupr @436
_memccpy @437
_memicmp @438
_mkdir @439
_mkgmtime @440
_mkgmtime64 @441
_mktemp @442
_mktime64 @443
_msize @444
_nextafter @445
_onexit @446
_open @447
_open_osfhandle @448
; _osplatform @449
_osver @450 DATA
; _outp @451
; _outpd @452
; _outpw @453
_pclose @454
_pctype @455 DATA
_pgmptr @456 DATA
_pipe @457
_popen @458
_purecall @459
_putch @460
_putenv @461
_putw @462
; _putwch @463
_putws @464
_pwctype @465
_read @466
; _resetstkoflw @467
_rmdir @468
_rmtmp @469
_rotl @470
; _rotl64 @471
_rotr @472
; _rotr64 @473
_safe_fdiv @474
_safe_fdivr @475
_safe_fprem @476
_safe_fprem1 @477
_scalb @478
; _scprintf @479
; _scwprintf @480
_searchenv @481
; _seh_longjmp_unwind @482 ???
; _set_SSE2_enable @483
_set_error_mode @484
_set_sbh_threshold @485
_seterrormode @486
_setjmp @487
_setjmpex @488
_setmaxstdio @489
_setmbcp @490
_setmode @491
_setsystime @492
_sleep @493
_snprintf @494
; _snscanf @495
_snwprintf @496
; _snwscanf @497
_sopen @498
_spawnl @499
_spawnle @500
_spawnlp @501
_spawnlpe @502
_spawnv @503
_spawnve @504
_spawnvp @505
_spawnvpe @506
_splitpath @507
_stat @508
_stat64 @509
_stati64 @510
_statusfp @511
_strcmpi @512
_strdate @513
_strdup @514
_strerror @515
_stricmp @516
_stricoll @517
_strlwr @518
_strncoll @519
_strnicmp @520
_strnicoll @521
_strnset @522
_strrev @523
_strset @524
_strtime @525
; _strtoi64 @526
_strtoui64=strtoull @527
_strupr @528
_swab @529
_sys_errlist @530 DATA
_sys_nerr @531 DATA
_tell @532
_telli64 @533
_tempnam @534
_time64 @535
_timezone @536 DATA
_tolower @537
_toupper @538
_tzname @539 DATA
_tzset @540
_ui64toa @541
_ui64tow @542
_ultoa @543
_ultow @544
_umask @545
_ungetch @546
; _ungetwch @547
_unlink @548
_unloaddll @549
_unlock @550
_utime @551
; _utime64 @552
; _vscprintf @553
; _vscwprintf @554
_vsnprintf @555
_vsnwprintf @556
_waccess @557
_wasctime @558
_wchdir @559
_wchmod @560
_wcmdln @561
_wcreat @562
_wcsdup @563
; _wcserror @564
_wcsicmp @565
_wcsicoll @566
_wcslwr @567
_wcsncoll @568
_wcsnicmp @569
_wcsnicoll @570
_wcsnset @571
_wcsrev @572
_wcsset @573
; _wcstoi64 @574
; _wcstoui64 @575
_wcsupr @576
_wctime @577
; _wctime64 @578
; _wctype @579
_wenviron @580 DATA
_wexecl @581
_wexecle @582
_wexeclp @583
_wexeclpe @584
_wexecv @585
_wexecve @586
_wexecvp @587
_wexecvpe @588
_wfdopen @589
_wfindfirst @590
; _wfindfirst64 @591
_wfindfirsti64 @592
_wfindnext @593
; _wfindnext64 @594
_wfindnexti64 @595
_wfopen @596
_wfreopen @597
_wfsopen @598
_wfullpath @599
_wgetcwd @600
_wgetdcwd @601
_wgetenv @602
_winmajor @603 DATA
_winminor @604 DATA
_winver @605 DATA
_wmakepath @606
_wmkdir @607
_wmktemp @608
_wopen @609
_wperror @610
_wpgmptr @611 DATA
_wpopen @612
_wputenv @613
_wremove @614
_wrename @615
_write @616
_wrmdir @617
_wsearchenv @618
_wsetlocale @619
_wsopen @620
_wspawnl @621
_wspawnle @622
_wspawnlp @623
_wspawnlpe @624
_wspawnv @625
_wspawnve @626
_wspawnvp @627
_wspawnvpe @628
_wsplitpath @629
_wstat @630
_wstat64 @631
_wstati64 @632
_wstrdate @633
_wstrtime @634
_wsystem @635
_wtempnam @636
_wtmpnam @637
; _wtof @638
_wtoi @639
_wtoi64 @640
_wtol @641
_wunlink @642
_wutime @643
; _wutime64 @644
; FIXME: these aren't actually implemented in CRT
; _y0 @645
; _y1 @646
; _yn @647
abort @648
abs @649
acos @650
asctime @651
asin @652
atan @653
atan2 @654
atexit @655
atof @656
atoi @657
atol @658
bsearch @659
calloc @660
ceil @661
clearerr @662
clock @663
cos @664
cosh @665
ctime @666
difftime @667
div @668
exit @669
exp @670
fabs @671
fclose @672
feof @673
ferror @674
fflush @675
fgetc @676
fgetpos @677
fgets @678
fgetwc @679
fgetws @680
floor @681
fmod @682
fopen @683
fprintf @684
fputc @685
fputs @686
fputwc @687
fputws @688
fread @689
free @690
freopen @691
frexp @692
fscanf @693
fseek @694
fsetpos @695
ftell @696
fwprintf @697
fwrite @698
fwscanf @699
getc @700
getchar @701
getenv @702
gets @703
getwc @704
getwchar @705
gmtime @706
is_wctype @707
isalnum @708
isalpha @709
iscntrl @710
isdigit @711
isgraph @712
isleadbyte @713
islower @714
isprint @715
ispunct @716
isspace @717
isupper @718
iswalnum @719
iswalpha @720
iswascii @721
iswcntrl @722
iswctype @723
iswdigit @724
iswgraph @725
iswlower @726
iswprint @727
iswpunct @728
iswspace @729
iswupper @730
iswxdigit @731
isxdigit @732
labs @733
ldexp @734
ldiv @735
localeconv @736
; localtime @737 ???
log @738
log10 @739
longjmp @740
malloc @741
mblen @742
mbstowcs @743
mbtowc @744
memchr @745
memcmp @746
memcpy=memmove @747
memmove @748
memset @749
mktime @750
modf @751
perror @752
pow @753
printf @754
putc @755
putchar @756
puts @757
putwc=fputwc @758
putwchar=_fputwchar @759
qsort @760
raise @761
rand @762
realloc @763
remove @764
rename @765
rewind @766
scanf @767
setbuf @768
setlocale @769
setvbuf @770
signal @771
sin @772
sinh @773
sprintf @774
sqrt @775
srand @776
sscanf @777
strcat @778
strchr @779
strcmp @780
strcoll @781
strcpy @782
strcspn @783
strerror @784
strftime @785
strlen @786
strncat @787
strncmp @788
strncpy @789
strpbrk @790
strrchr @791
strspn @792
strstr @793
strtod @794
strtok @795
strtol @796
strtoul @797
strxfrm @798
swprintf @799
swscanf @800
system @801
tan @802
tanh @803
time @804
tmpfile @805
tmpnam @806
tolower @807
toupper @808
towlower @809
towupper @810
ungetc @811
ungetwc @812
vfprintf @813
vfwprintf @814
vprintf @815
vsprintf @816
vswprintf @817
vwprintf @818
wcscat @819
wcschr @820
wcscmp @821
wcscoll @822
wcscpy @823
wcscspn @824
wcsftime @825
wcslen @826
wcsncat @827
wcsncmp @828
wcsncpy @829
wcspbrk @830
wcsrchr @831
wcsspn @832
wcsstr @833
wcstod @834
wcstok @835
wcstol @836
wcstombs @837
wcstoul @838
wcsxfrm @839
wctomb @840
wprintf @841
wscanf @842

View file

@ -0,0 +1,860 @@
;
; ReactOS MSVCRT Library
;
LIBRARY msvcrt.dll
EXPORTS
$I10_OUTPUT=MSVCRT_I10_OUTPUT @57
??0__non_rtti_object@@QAE@ABV0@@Z=__thiscall_MSVCRT___non_rtti_object_copy_ctor @1
??0__non_rtti_object@@QAE@PBD@Z=__thiscall_MSVCRT___non_rtti_object_ctor @2
; ??0bad_cast@@AAE@PBQBD@Z @3
??0bad_cast@@QAE@ABQBD@Z=__thiscall_MSVCRT_bad_cast_ctor @4
??0bad_cast@@QAE@ABV0@@Z=__thiscall_MSVCRT_bad_cast_copy_ctor @5
; ??0bad_cast@@QAE@PBD@Z @6
??0bad_typeid@@QAE@ABV0@@Z=__thiscall_MSVCRT_bad_typeid_copy_ctor @7
??0bad_typeid@@QAE@PBD@Z=__thiscall_MSVCRT_bad_typeid_ctor @8
??0exception@@QAE@ABQBD@Z=__thiscall_MSVCRT_exception_ctor @9
; ??0exception@@QAE@ABQBDH@Z @10
??0exception@@QAE@ABV0@@Z=__thiscall_MSVCRT_exception_copy_ctor @11
??0exception@@QAE@XZ=__thiscall_MSVCRT_exception_default_ctor @12
??1__non_rtti_object@@UAE@XZ=__thiscall_MSVCRT___non_rtti_object_dtor @13
??1bad_cast@@UAE@XZ=__thiscall_MSVCRT_bad_cast_dtor @14
??1bad_typeid@@UAE@XZ=__thiscall_MSVCRT_bad_typeid_dtor @15
??1exception@@UAE@XZ=__thiscall_MSVCRT_exception_dtor @16
??1type_info@@UAE@XZ=__thiscall_MSVCRT_type_info_dtor @17
??2@YAPAXI@Z=MSVCRT_operator_new @18
??3@YAXPAX@Z=MSVCRT_operator_delete @19
??4__non_rtti_object@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT___non_rtti_object_opequals @20
??4bad_cast@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_bad_cast_opequals @21
??4bad_typeid@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_bad_typeid_opequals @22
??4exception@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_exception_opequals @23
??8type_info@@QBEHABV0@@Z=__thiscall_MSVCRT_type_info_opequals_equals @24
??9type_info@@QBEHABV0@@Z=__thiscall_MSVCRT_type_info_opnot_equals @25
??_7__non_rtti_object@@6B@=MSVCRT___non_rtti_object_vtable@@6B@ @26 DATA
??_7bad_cast@@6B@=MSVCRT_bad_cast_vtable @27 DATA
??_7bad_typeid@@6B@=MSVCRT_bad_typeid_vtable @28 DATA
??_7exception@@6B@=MSVCRT_exception_vtable @29 DATA
??_E__non_rtti_object@@UAEPAXI@Z=__thiscall_MSVCRT___non_rtti_object_vector_dtor @30
??_Ebad_cast@@UAEPAXI@Z=__thiscall_MSVCRT_bad_cast_vector_dtor @31
??_Ebad_typeid@@UAEPAXI@Z=__thiscall_MSVCRT_bad_typeid_vector_dtor @32
??_Eexception@@UAEPAXI@Z=__thiscall_MSVCRT_exception_vector_dtor @33
; ??_Fbad_cast@@QAEXXZ @34
; ??_Fbad_typeid@@QAEXXZ @35
??_G__non_rtti_object@@UAEPAXI@Z=__thiscall_MSVCRT___non_rtti_object_scalar_dtor @36
??_Gbad_cast@@UAEPAXI@Z=__thiscall_MSVCRT_bad_cast_scalar_dtor @37
??_Gbad_typeid@@UAEPAXI@Z=__thiscall_MSVCRT_bad_typeid_scalar_dtor @38
??_Gexception@@UAEPAXI@Z=__thiscall_MSVCRT_exception_scalar_dtor @39
??_U@YAPAXI@Z=MSVCRT_operator_new @40
??_V@YAXPAX@Z=MSVCRT_operator_delete @41
?_query_new_handler@@YAP6AHI@ZXZ=MSVCRT__query_new_handler @43
?_query_new_mode@@YAHXZ=MSVCRT__query_new_mode @44
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler @45
?_set_new_mode@@YAHH@Z=MSVCRT__set_new_mode @46
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z=MSVCRT__set_se_translator @47
?before@type_info@@QBEHABV1@@Z=__thiscall_MSVCRT_type_info_before @48
?name@type_info@@QBEPBDXZ=__thiscall_MSVCRT_type_info_name @49
?raw_name@type_info@@QBEPBDXZ=__thiscall_MSVCRT_type_info_raw_name @50
?set_new_handler@@YAP6AXXZP6AXXZ@Z=MSVCRT__set_new_handler @51
?set_terminate@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_terminate @52
?set_unexpected@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_unexpected @53
?terminate@@YAXXZ=MSVCRT_terminate @54
?unexpected@@YAXXZ=MSVCRT_unexpected @55
?what@exception@@UBEPBDXZ=__thiscall_MSVCRT_what_exception @56
_CIacos @58
_CIasin @59
_CIatan @60
_CIatan2 @61
_CIcos @62
_CIcosh @63
_CIexp @64
_CIfmod @65
_CIlog @66
_CIlog10 @67
_CIpow @68
_CIsin @69
_CIsinh @70
_CIsqrt @71
_CItan @72
_CItanh @73
_CxxThrowException @74
_EH_prolog @75
_Getdays @76
_Getmonths @77
_Gettnames @78
_HUGE @79 DATA
_Strftime @80
_XcptFilter @81
__CppXcptFilter @82
; __CxxCallUnwindDtor @83
; __CxxCallUnwindVecDtor @84
__CxxDetectRethrow @85
; __CxxExceptionFilter @86
__CxxFrameHandler @87
; __CxxFrameHandler2 @88
__CxxLongjmpUnwind @89
__CxxQueryExceptionSize @90
; __CxxRegisterExceptionObject @91
; __CxxUnregisterExceptionObject @92
; __DestructExceptionObject @93
__RTCastToVoid=MSVCRT___RTCastToVoid @94
__RTDynamicCast=MSVCRT___RTDynamicCast @95
__RTtypeid=MSVCRT___RTtypeid @96
__STRINGTOLD @97
; ___lc_codepage_func @98
; ___lc_collate_cp_func @99
; ___lc_handle_func @100
; ___mb_cur_max_func @101
___setlc_active_func @102
___unguarded_readlc_active_add_func @103
__argc @104 DATA
__argv @105 DATA
__badioinfo @106 DATA
__crtCompareStringA=kernel32.CompareStringA @107
__crtCompareStringW=kernel32.CompareStringW @108
__crtGetLocaleInfoW=kernel32.GetLocaleInfo @109
__crtGetStringTypeW=kernel32.GetStringTypeW @110
__crtLCMapStringA @111
; __crtLCMapStringW @112
__dllonexit @113
__doserrno @114
__fpecode @115
__getmainargs @116
__initenv @117
__iob_func=__p__iob @118
__isascii @119
__iscsym @120
__iscsymf @121
__lc_codepage @122 DATA
__lc_collate_cp @123 DATA
__lc_handle @124 DATA
__lconv_init @125
__mb_cur_max @126 DATA
__p___argc @127
__p___argv @128
__p___initenv @129
__p___mb_cur_max @130
__p___wargv @131
__p___winitenv @132
__p__acmdln @133
__p__amblksiz @134
__p__commode @135
__p__daylight @136
__p__dstbias @137
__p__environ @138
; __p__fileinfo @139
__p__fmode @140
__p__iob @141
; __p__mbcasemap @142
__p__mbctype @143
__p__osver @144
__p__pctype @145
__p__pgmptr @146
__p__pwctype @147
__p__timezone @148
__p__tzname @149
__p__wcmdln @150
__p__wenviron @151
__p__winmajor @152
__p__winminor @153
__p__winver @154
__p__wpgmptr @155
; __pctype_func @156
__pioinfo @157 DATA
; __pwctype_func @158
__pxcptinfoptrs @159
__set_app_type @160
__setlc_active @161 DATA
__setusermatherr @162
__threadhandle @163
__threadid @164
__toascii @165
__unDName @166
__unDNameEx @167
; __uncaught_exception @42
__unguarded_readlc_active @168 DATA
__wargv @169 DATA
; __wcserror @170
__wgetmainargs @171
__winitenv @172 DATA
_abnormal_termination @173
; _abs64 @174
_access @175
_acmdln @176 DATA
_adj_fdiv_m16i @177
_adj_fdiv_m32 @178
_adj_fdiv_m32i @179
_adj_fdiv_m64 @180
_adj_fdiv_r @181
_adj_fdivr_m16i @182
_adj_fdivr_m32 @183
_adj_fdivr_m32i @184
_adj_fdivr_m64 @185
_adj_fpatan @186
_adj_fprem @187
_adj_fprem1 @188
_adj_fptan @189
_adjust_fdiv @190 DATA
_aexit_rtn @191
_aligned_free @192
_aligned_malloc @193
_aligned_offset_malloc @194
_aligned_offset_realloc @195
_aligned_realloc @196
_amsg_exit @197
_assert @198
; _atodbl @199
_atoi64 @200
_atoldbl @201
_beep @202
_beginthread @203
_beginthreadex @204
_c_exit @205
_cabs @206
_callnewh @207
_cexit @208
_cgets @209
; _cgetws @210
_chdir @211
_chdrive @212
_chgsign @213
_chkesp @214
_chmod @215
_chsize @216
_clearfp @217
_close @218
_commit @219
_commode @220 DATA
_control87 @221
_controlfp @222
_copysign @223
_cprintf @224
_cputs @225
; _cputws @226
_creat @227
_cscanf @228
; _ctime64 @229
_ctype @230 DATA
_cwait @231
; _cwprintf @232
; _cwscanf @233
_daylight @234 DATA
_dstbias @235 DATA
_dup @236
_dup2 @237
_ecvt @238
_endthread @239
_endthreadex @240
_environ @241 DATA
_eof @242
_errno @243
_except_handler2 @244
_except_handler3 @245
_execl @246
_execle @247
_execlp @248
_execlpe @249
_execv @250
_execve @251
_execvp @252
_execvpe @253
_exit @254
_expand @255
_fcloseall @256
_fcvt @257
_fdopen @258
_fgetchar @259
_fgetwchar @260
_filbuf @261
; _fileinfo @262
_filelength @263
_filelengthi64 @264
_fileno @265
_findclose @266
_findfirst @267
_findfirst64 @268
_findfirsti64 @269
_findnext @270
_findnext64 @271
_findnexti64 @272
_finite @273
_flsbuf @274
_flushall @275
_fmode @276 DATA
_fpclass @277
_fpieee_flt @278
_fpreset @279
_fputchar @280
_fputwchar @281
_fsopen @282
_fstat @283
_fstat64 @284
_fstati64 @285
_ftime @286
; _ftime64 @287
_ftol @288
_fullpath @289
_futime @290
; _futime64 @291
_gcvt @292
; _get_heap_handle @293
_get_osfhandle @294
_get_sbh_threshold @295
_getch @296
_getche @297
_getcwd @298
_getdcwd @299
_getdiskfree @300
_getdllprocaddr @301
_getdrive @302
_getdrives=kernel32.GetLogicalDrives @303
_getmaxstdio @304
_getmbcp @305
_getpid=kernel32.GetCurrentProcessId @306
_getsystime @307
_getw @308
; _getwch @309
; _getwche @310
_getws @311
_global_unwind2 @312
; _gmtime64 @313
_heapadd @314
_heapchk @315
_heapmin @316
_heapset @317
; _heapused @318
_heapwalk @319
_hypot @320
_i64toa @321
_i64tow @322
_initterm @323
; _inp @324
; _inpd @325
; _inpw @326
_iob @327 DATA
_isatty @328
_isctype @329
_ismbbalnum @330
_ismbbalpha @331
_ismbbgraph @332
_ismbbkalnum @333
_ismbbkana @334
; _ismbbkprint @335
_ismbbkpunct @336
_ismbblead @337
_ismbbprint @338
_ismbbpunct @339
_ismbbtrail @340
_ismbcalnum @341
_ismbcalpha @342
_ismbcdigit @343
_ismbcgraph @344
_ismbchira @345
_ismbckata @346
_ismbcl0 @347
_ismbcl1 @348
_ismbcl2 @349
_ismbclegal @350
_ismbclower @351
_ismbcprint @352
_ismbcpunct @353
_ismbcspace @354
_ismbcsymbol @355
_ismbcupper @356
_ismbslead @357
_ismbstrail @358
_isnan @359
_itoa @360
_itow @361
; FIXME: these aren't actually implemented in CRT
; _j0 @362
; _j1 @363
; _jn @364
_kbhit @365
_lfind @366
_loaddll @367
_local_unwind2 @368
; _localtime64 @369
_lock @370
_locking @371
_logb @372
_longjmpex=longjmp @373
_lrotl @374
_lrotr @375
_lsearch @376
_lseek @377
_lseeki64 @378
_ltoa @379
_ltow @380
_makepath @381
_mbbtombc @382
_mbbtype @383
; _mbcasemap @384
_mbccpy @385
_mbcjistojms @386
_mbcjmstojis @387
_mbclen @388
_mbctohira @389
_mbctokata @390
_mbctolower @391
_mbctombb @392
_mbctoupper @393
_mbctype @394 DATA
_mbsbtype @395
_mbscat @396
_mbschr @397
_mbscmp @398
_mbscoll @399
_mbscpy @400
_mbscspn @401
_mbsdec @402
_mbsdup @403
_mbsicmp @404
_mbsicoll @405
_mbsinc @406
_mbslen @407
_mbslwr @408
_mbsnbcat @409
_mbsnbcmp @410
_mbsnbcnt @411
_mbsnbcoll @412
_mbsnbcpy @413
_mbsnbicmp @414
_mbsnbicoll @415
_mbsnbset @416
_mbsncat @417
_mbsnccnt @418
_mbsncmp @419
_mbsncoll @420
_mbsncpy @421
_mbsnextc @422
_mbsnicmp @423
_mbsnicoll @424
_mbsninc @425
_mbsnset @426
_mbspbrk @427
_mbsrchr @428
_mbsrev @429
_mbsset @430
_mbsspn @431
_mbsspnp @432
_mbsstr @433
_mbstok @434
_mbstrlen @435
_mbsupr @436
_memccpy @437
_memicmp @438
_mkdir @439
; _mkgmtime @440
; _mkgmtime64 @441
_mktemp @442
; _mktime64 @443
_msize @444
_nextafter @445
_onexit @446
_open @447
_open_osfhandle @448
; _osplatform @449
_osver @450 DATA
; _outp @451
; _outpd @452
; _outpw @453
_pclose @454
_pctype @455 DATA
_pgmptr @456 DATA
_pipe @457
_popen @458
_purecall @459
_putch @460
_putenv @461
_putw @462
; _putwch @463
_putws @464
_pwctype @465
_read @466
; _resetstkoflw @467
_rmdir @468
_rmtmp @469
_rotl @470
; _rotl64 @471
_rotr @472
; _rotr64 @473
_safe_fdiv @474
_safe_fdivr @475
_safe_fprem @476
_safe_fprem1 @477
_scalb @478
; _scprintf @479
; _scwprintf @480
_searchenv @481
_seh_longjmp_unwind=_seh_longjmp_unwind@4 @482
; _set_SSE2_enable @483
_set_error_mode @484
_set_sbh_threshold @485
_seterrormode @486
_setjmp @487
_setjmp3 @488
_setmaxstdio @489
_setmbcp @490
_setmode @491
_setsystime @492
_sleep @493
_snprintf @494
; _snscanf @495
_snwprintf @496
; _snwscanf @497
_sopen @498
_spawnl @499
_spawnle @500
_spawnlp @501
_spawnlpe @502
_spawnv @503
_spawnve @504
_spawnvp @505
_spawnvpe @506
_splitpath @507
_stat @508
_stat64 @509
_stati64 @510
_statusfp @511
_strcmpi @512
_strdate @513
_strdup @514
_strerror @515
_stricmp @516
_stricoll @517
_strlwr @518
_strncoll @519
_strnicmp @520
_strnicoll @521
_strnset @522
_strrev @523
_strset @524
_strtime @525
_strtoi64 @526
_strtoui64=strtoull @527
_strupr @528
_swab @529
_sys_errlist @530 DATA
_sys_nerr @531 DATA
_tell @532
_telli64 @533
_tempnam @534
; _time64 @535
_timezone @536 DATA
_tolower @537
_toupper @538
_tzname @539 DATA
_tzset @540
_ui64toa @541
_ui64tow @542
_ultoa @543
_ultow @544
_umask @545
_ungetch @546
; _ungetwch @547
_unlink @548
_unloaddll @549
_unlock @550
_utime @551
; _utime64 @552
; _vscprintf @553
; _vscwprintf @554
_vsnprintf @555
_vsnwprintf @556
_waccess @557
_wasctime @558
_wchdir @559
_wchmod @560
_wcmdln @561
_wcreat @562
_wcsdup @563
; _wcserror @564
_wcsicmp @565
_wcsicoll @566
_wcslwr @567
_wcsncoll @568
_wcsnicmp @569
_wcsnicoll @570
_wcsnset @571
_wcsrev @572
_wcsset @573
_wcstoi64 @574
_wcstoui64 @575
_wcsupr @576
_wctime @577
; _wctime64 @578
; _wctype @579
_wenviron @580 DATA
_wexecl @581
_wexecle @582
_wexeclp @583
_wexeclpe @584
_wexecv @585
_wexecve @586
_wexecvp @587
_wexecvpe @588
_wfdopen @589
_wfindfirst @590
_wfindfirst64 @591
_wfindfirsti64 @592
_wfindnext @593
_wfindnext64 @594
_wfindnexti64 @595
_wfopen @596
_wfreopen @597
_wfsopen @598
_wfullpath @599
_wgetcwd @600
_wgetdcwd @601
_wgetenv @602
_winmajor @603 DATA
_winminor @604 DATA
_winver @605 DATA
_wmakepath @606
_wmkdir @607
_wmktemp @608
_wopen @609
_wperror @610
_wpgmptr @611 DATA
_wpopen @612
_wputenv @613
_wremove @614
_wrename @615
_write @616
_wrmdir @617
_wsearchenv @618
_wsetlocale @619
_wsopen @620
_wspawnl @621
_wspawnle @622
_wspawnlp @623
_wspawnlpe @624
_wspawnv @625
_wspawnve @626
_wspawnvp @627
_wspawnvpe @628
_wsplitpath @629
_wstat @630
_wstat64 @631
_wstati64 @632
_wstrdate @633
_wstrtime @634
_wsystem @635
_wtempnam @636
_wtmpnam @637
; _wtof @638
_wtoi @639
_wtoi64 @640
_wtol @641
_wunlink @642
_wutime @643
; _wutime64 @644
; FIXME: these aren't actually implemented in CRT
; _y0 @645
; _y1 @646
; _yn @647
abort @648
abs @649
acos @650
asctime @651
asin @652
atan @653
atan2 @654
atexit @655
atof @656
atoi @657
atol @658
bsearch @659
calloc @660
ceil @661
clearerr @662
clock @663
cos @664
cosh @665
ctime @666
difftime @667
div @668
exit @669
exp @670
fabs @671
fclose @672
feof @673
ferror @674
fflush @675
fgetc @676
fgetpos @677
fgets @678
fgetwc @679
fgetws @680
floor @681
fmod @682
fopen @683
fprintf @684
fputc @685
fputs @686
fputwc @687
fputws @688
fread @689
free @690
freopen @691
frexp @692
fscanf @693
fseek @694
fsetpos @695
ftell @696
fwprintf @697
fwrite @698
fwscanf @699
getc @700
getchar @701
getenv @702
gets @703
getwc @704
getwchar @705
gmtime @706
is_wctype @707
isalnum @708
isalpha @709
iscntrl @710
isdigit @711
isgraph @712
isleadbyte @713
islower @714
isprint @715
ispunct @716
isspace @717
isupper @718
iswalnum @719
iswalpha @720
iswascii @721
iswcntrl @722
iswctype @723
iswdigit @724
iswgraph @725
iswlower @726
iswprint @727
iswpunct @728
iswspace @729
iswupper @730
iswxdigit @731
isxdigit @732
labs @733
ldexp @734
ldiv @735
localeconv @736
localtime @737
log @738
log10 @739
longjmp @740
malloc @741
mblen @742
mbstowcs @743
mbtowc @744
memchr @745
memcmp @746
memcpy @747
memmove @748
memset @749
mktime @750
modf @751
perror @752
pow @753
printf @754
putc @755
putchar @756
puts @757
putwc=fputwc @758
putwchar=_fputwchar @759
qsort @760
raise @761
rand @762
realloc @763
remove @764
rename @765
rewind @766
scanf @767
setbuf @768
setlocale @769
setvbuf @770
signal @771
sin @772
sinh @773
sprintf @774
sqrt @775
srand @776
sscanf @777
strcat @778
strchr @779
strcmp @780
strcoll @781
strcpy @782
strcspn @783
strerror @784
strftime @785
strlen @786
strncat @787
strncmp @788
strncpy @789
strpbrk @790
strrchr @791
strspn @792
strstr @793
strtod @794
strtok @795
strtol @796
strtoul @797
strxfrm @798
swprintf @799
swscanf @800
system @801
tan @802
tanh @803
time @804
tmpfile @805
tmpnam @806
tolower @807
toupper @808
towlower @809
towupper @810
ungetc @811
ungetwc @812
vfprintf @813
vfwprintf @814
vprintf @815
vsprintf @816
vswprintf @817
vwprintf @818
wcscat @819
wcschr @820
wcscmp @821
wcscoll @822
wcscpy @823
wcscspn @824
wcsftime @825
wcslen @826
wcsncat @827
wcsncmp @828
wcsncpy @829
wcspbrk @830
wcsrchr @831
wcsspn @832
wcsstr @833
wcstod @834
wcstok @835
wcstol @836
wcstombs @837
wcstoul @838
wcsxfrm @839
wctomb @840
wprintf @841
wscanf @842
_mbsnbcpy_s
wcscpy_s
wcsncpy_s
_ftol2=_ftol
_ftol2_sse=_ftol
strcat_s
strcpy_s
_swprintf=swprintf

View file

@ -1,5 +1,5 @@
<module name="msvcrt" type="win32dll" baseaddress="${BASEADDRESS_MSVCRT}" installbase="system32" installname="msvcrt.dll" iscrt="yes">
<importlibrary definition="msvcrt.spec" />
<importlibrary definition="msvcrt-$(ARCH).def" />
<include base="msvcrt">.</include>
<include base="crt">include</include>
<define name="USE_MSVCRT_PREFIX" />

View file

@ -1,839 +0,0 @@
# msvcrt.dll - MS VC++ Run Time Library
@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT
@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT___non_rtti_object_copy_ctor
@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@PBD@Z(ptr) __thiscall_MSVCRT___non_rtti_object_ctor
@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_bad_cast_ctor
@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_cast_copy_ctor
@ cdecl -i386 -norelay ??0bad_typeid@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_typeid_copy_ctor
@ cdecl -i386 -norelay ??0bad_typeid@@QAE@PBD@Z(ptr) __thiscall_MSVCRT_bad_typeid_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_exception_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_exception_copy_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@XZ() __thiscall_MSVCRT_exception_default_ctor
@ cdecl -i386 -norelay ??1__non_rtti_object@@UAE@XZ() __thiscall_MSVCRT___non_rtti_object_dtor
@ cdecl -i386 -norelay ??1bad_cast@@UAE@XZ() __thiscall_MSVCRT_bad_cast_dtor
@ cdecl -i386 -norelay ??1bad_typeid@@UAE@XZ() __thiscall_MSVCRT_bad_typeid_dtor
@ cdecl -i386 -norelay ??1exception@@UAE@XZ() __thiscall_MSVCRT_exception_dtor
@ cdecl -i386 -norelay ??1type_info@@UAE@XZ() __thiscall_MSVCRT_type_info_dtor
@ cdecl ??2@YAPAXI@Z(long) MSVCRT_operator_new
@ cdecl ??_U@YAPAXI@Z(long) MSVCRT_operator_new
@ cdecl ??3@YAXPAX@Z(ptr) MSVCRT_operator_delete
@ cdecl ??_V@YAXPAX@Z(ptr) MSVCRT_operator_delete
@ cdecl -i386 -norelay ??4__non_rtti_object@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT___non_rtti_object_opequals
@ cdecl -i386 -norelay ??4bad_cast@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_cast_opequals
@ cdecl -i386 -norelay ??4bad_typeid@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_typeid_opequals
@ cdecl -i386 -norelay ??4exception@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_exception_opequals
@ cdecl -i386 -norelay ??8type_info@@QBEHABV0@@Z(ptr) __thiscall_MSVCRT_type_info_opequals_equals
@ cdecl -i386 -norelay ??9type_info@@QBEHABV0@@Z(ptr) __thiscall_MSVCRT_type_info_opnot_equals
@ extern -i386 ??_7__non_rtti_object@@6B@ MSVCRT___non_rtti_object_vtable
@ extern -i386 ??_7bad_cast@@6B@ MSVCRT_bad_cast_vtable
@ extern -i386 ??_7bad_typeid@@6B@ MSVCRT_bad_typeid_vtable
@ extern -i386 ??_7exception@@6B@ MSVCRT_exception_vtable
@ cdecl -i386 -norelay ??_E__non_rtti_object@@UAEPAXI@Z(long) __thiscall_MSVCRT___non_rtti_object_vector_dtor
@ cdecl -i386 -norelay ??_Ebad_cast@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_cast_vector_dtor
@ cdecl -i386 -norelay ??_Ebad_typeid@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_typeid_vector_dtor
@ cdecl -i386 -norelay ??_Eexception@@UAEPAXI@Z(long) __thiscall_MSVCRT_exception_vector_dtor
@ cdecl -i386 -norelay ??_G__non_rtti_object@@UAEPAXI@Z(long) __thiscall_MSVCRT___non_rtti_object_scalar_dtor
@ cdecl -i386 -norelay ??_Gbad_cast@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_cast_scalar_dtor
@ cdecl -i386 -norelay ??_Gbad_typeid@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_typeid_scalar_dtor
@ cdecl -i386 -norelay ??_Gexception@@UAEPAXI@Z(long) __thiscall_MSVCRT_exception_scalar_dtor
@ cdecl ?_query_new_handler@@YAP6AHI@ZXZ() MSVCRT__query_new_handler
@ cdecl ?_query_new_mode@@YAHXZ() MSVCRT__query_new_mode
@ cdecl ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z(ptr) MSVCRT__set_new_handler
@ cdecl ?_set_new_mode@@YAHH@Z(long) MSVCRT__set_new_mode
@ cdecl ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z(ptr) MSVCRT__set_se_translator
@ cdecl -i386 -norelay ?before@type_info@@QBEHABV1@@Z(ptr) __thiscall_MSVCRT_type_info_before
@ cdecl -i386 -norelay ?name@type_info@@QBEPBDXZ() __thiscall_MSVCRT_type_info_name
@ cdecl -i386 -norelay ?raw_name@type_info@@QBEPBDXZ() __thiscall_MSVCRT_type_info_raw_name
@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_new_handler
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_terminate
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_unexpected
@ cdecl ?terminate@@YAXXZ() MSVCRT_terminate
@ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected
@ cdecl -i386 -norelay ?what@exception@@UBEPBDXZ() __thiscall_MSVCRT_what_exception
@ cdecl -arch=i386 _CIacos()
@ cdecl -arch=i386 _CIasin()
@ cdecl -arch=i386 _CIatan()
@ cdecl -arch=i386 _CIatan2()
@ cdecl -arch=i386 _CIcos()
@ cdecl -arch=i386 _CIcosh()
@ cdecl -arch=i386 _CIexp()
@ cdecl -arch=i386 _CIfmod()
@ cdecl -arch=i386 _CIlog()
@ cdecl -arch=i386 _CIlog10()
@ cdecl -arch=i386 _CIpow()
@ cdecl -arch=i386 _CIsin()
@ cdecl -arch=i386 _CIsinh()
@ cdecl -arch=i386 _CIsqrt()
@ cdecl -arch=i386 _CItan()
@ cdecl -arch=i386 _CItanh()
@ cdecl _CxxThrowException(long long)
@ cdecl -i386 -norelay _EH_prolog()
@ cdecl _Getdays()
@ cdecl _Getmonths()
@ cdecl _Gettnames()
@ extern _HUGE
@ cdecl _Strftime(str long str ptr ptr)
@ cdecl _XcptFilter(long ptr)
@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler
@ cdecl __CppXcptFilter(long ptr)
@ cdecl __CxxDetectRethrow(ptr)
@ cdecl -i386 -norelay __CxxFrameHandler(ptr ptr ptr ptr)
# 88 56 0002AE4C __CxxFrameHandler2
# 89 57 0002ADC8 __CxxFrameHandler3
# 90 58 00029794 __DestructExceptionObject
@ stdcall -i386 __CxxLongjmpUnwind(ptr)
@ cdecl __CxxQueryExceptionSize()
@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid
@ cdecl __STRINGTOLD(ptr ptr str long)
#@ cdecl ___lc_codepage_func()
#@ cdecl ___lc_collate_cp_func()
#@ cdecl ___lc_handle_func()
#@ cdecl ___mb_cur_max_func()
@ cdecl ___setlc_active_func()
@ cdecl ___unguarded_readlc_active_add_func()
@ extern __argc
@ extern __argv
@ extern __badioinfo
@ cdecl __crtCompareStringA(long long str long str long) kernel32.CompareStringA
@ cdecl __crtCompareStringW(long long wstr long wstr long) kernel32.CompareStringW
@ cdecl __crtGetLocaleInfoW(long long ptr long)kernel32.GetLocaleInfo
@ cdecl __crtGetStringTypeW(long wstr long ptr) kernel32.GetStringTypeW
@ cdecl __crtLCMapStringA(long long str long ptr long long long)
# 109 6B 000414E0 __crtLCMapStringW
# 110 6C 00068CC4 __daylight
@ cdecl __dllonexit(ptr ptr ptr)
@ cdecl __doserrno()
@ cdecl __fpecode()
@ stub __get_app_type
@ cdecl __getmainargs(ptr ptr ptr long ptr)
@ extern __initenv
@ cdecl __iob_func()
@ cdecl __isascii(long)
@ cdecl __iscsym(long)
@ cdecl __iscsymf(long)
@ extern __lc_codepage
@ stub __lc_collate
@ extern __lc_collate_cp
@ extern __lc_handle
@ cdecl __lconv_init()
@ extern __mb_cur_max
@ cdecl -arch=i386 __p___argc()
@ cdecl -arch=i386 __p___argv()
@ cdecl -arch=i386 __p___initenv()
#@ cdecl -arch=i386 __p___mb_cur_max() ___mb_cur_max_func
@ cdecl -arch=i386 __p___wargv()
@ cdecl -arch=i386 __p___winitenv()
@ cdecl -arch=i386 __p__acmdln()
@ cdecl -arch=i386 __p__amblksiz()
@ cdecl -arch=i386 __p__commode()
@ cdecl -arch=i386 __p__daylight()
@ cdecl -arch=i386 __p__dstbias()
@ cdecl -arch=i386 __p__environ()
@ stub -arch=i386 __p__fileinfo #()
@ cdecl -arch=i386 __p__fmode()
@ cdecl -arch=i386 __p__iob() __iob_func
@ stub -arch=i386 __p__mbcasemap #()
@ cdecl -arch=i386 __p__mbctype()
@ cdecl -arch=i386 __p__osver()
@ cdecl -arch=i386 __p__pctype() __pctype_func
@ cdecl -arch=i386 __p__pgmptr()
@ stub -arch=i386 __p__pwctype #()
@ cdecl -arch=i386 __p__timezone() __p__timezone
@ cdecl -arch=i386 __p__tzname()
@ cdecl -arch=i386 __p__wcmdln()
@ cdecl -arch=i386 __p__wenviron()
@ cdecl -arch=i386 __p__winmajor()
@ cdecl -arch=i386 __p__winminor()
@ cdecl -arch=i386 __p__winver()
@ cdecl -arch=i386 __p__wpgmptr()
@ cdecl __pctype_func() __pctype_func
@ extern __pioinfo
@ stub __pxcptinfoptrs #()
@ cdecl __set_app_type(long)
@ extern __setlc_active
@ cdecl __setusermatherr(ptr)
@ cdecl __threadhandle() kernel32.GetCurrentThread
@ cdecl __threadid() kernel32.GetCurrentThreadId
@ cdecl __toascii(long)
@ cdecl __uncaught_exception()
@ cdecl __unDName(ptr str long ptr ptr long)
@ cdecl __unDNameEx(ptr str long ptr ptr ptr long)
@ extern __unguarded_readlc_active
@ extern __wargv
@ cdecl __wgetmainargs(ptr ptr ptr long ptr)
@ extern __winitenv
@ cdecl _abnormal_termination()
@ cdecl _access(str long)
@ extern _acmdln
@ stdcall -arch=i386 _adj_fdiv_m16i(long)
@ stdcall -arch=i386 _adj_fdiv_m32(long)
@ stdcall -arch=i386 _adj_fdiv_m32i(long)
@ stdcall -arch=i386 _adj_fdiv_m64(double)
@ cdecl -arch=i386 _adj_fdiv_r()
@ stdcall -arch=i386 _adj_fdivr_m16i(long)
@ stdcall -arch=i386 _adj_fdivr_m32(long)
@ stdcall -arch=i386 _adj_fdivr_m32i(long)
@ stdcall -arch=i386 _adj_fdivr_m64(double)
@ cdecl -arch=i386 _adj_fpatan()
@ cdecl -arch=i386 _adj_fprem()
@ cdecl -arch=i386 _adj_fprem1()
@ cdecl -arch=i386 _adj_fptan()
@ extern -arch=i386 _adjust_fdiv
# extern _aexit_rtn
@ cdecl _aligned_free(ptr)
@ cdecl _aligned_malloc(long long)
@ cdecl _aligned_offset_malloc(long long long)
@ cdecl _aligned_offset_realloc(ptr long long long)
@ cdecl _aligned_realloc(ptr long long)
@ cdecl _amsg_exit(long)
@ cdecl _assert(str str long)
@ stub _atodbl #(ptr str)
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ cdecl _atoldbl(ptr str)
@ cdecl _beep(long long)
@ cdecl _beginthread (ptr long ptr)
@ cdecl _beginthreadex (ptr long ptr ptr long ptr)
@ cdecl _c_exit()
@ cdecl _cabs(long)
@ cdecl _callnewh(long)
@ cdecl _cexit()
@ cdecl _cgets(str)
@ cdecl _chdir(str)
@ cdecl _chdrive(long)
@ cdecl _chgsign( double )
@ cdecl -i386 -norelay _chkesp()
@ cdecl _chmod(str long)
@ cdecl _chsize (long long)
@ cdecl _clearfp()
@ cdecl _close(long)
@ cdecl _commit(long)
@ extern _commode
@ cdecl _control87(long long)
@ cdecl _controlfp(long long)
@ cdecl _copysign( double double )
@ varargs _cprintf(str)
@ cdecl _cputs(str)
@ cdecl _creat(str long)
@ varargs _cscanf(str)
@ cdecl _ctime32(ptr)
@ cdecl _ctime64(ptr)
@ extern _ctype
@ cdecl _cwait(ptr long long)
@ extern _daylight
@ cdecl _difftime32(long long)
@ cdecl _difftime64(long long)
@ extern _dstbias
@ cdecl _dup (long)
@ cdecl _dup2 (long long)
@ cdecl _ecvt(double long ptr ptr)
@ cdecl _endthread ()
@ cdecl _endthreadex(long)
@ extern _environ
@ cdecl _eof(long)
@ cdecl _errno()
@ cdecl _except_handler2(ptr ptr ptr ptr)
@ cdecl _except_handler3(ptr ptr ptr ptr)
@ varargs _execl(str str)
@ varargs _execle(str str)
@ varargs _execlp(str str)
@ varargs _execlpe(str str)
@ cdecl _execv(str ptr)
@ cdecl _execve(str ptr ptr)
@ cdecl _execvp(str ptr)
@ cdecl _execvpe(str ptr ptr)
@ cdecl _exit(long)
@ cdecl _expand(ptr long)
@ cdecl _fcloseall()
@ cdecl _fcvt(double long ptr ptr)
@ cdecl _fdopen(long str)
@ cdecl _fgetchar()
@ cdecl _fgetwchar()
@ cdecl _filbuf(ptr)
# extern _fileinfo
@ cdecl _filelength(long)
@ cdecl -ret64 _filelengthi64(long)
@ cdecl _fileno(ptr)
@ cdecl _findclose(long)
@ cdecl _findfirst(str ptr)
@ cdecl _findfirsti64(str ptr)
@ cdecl _findnext(long ptr)
@ cdecl _findnexti64(long ptr)
@ cdecl _finite( double )
@ cdecl _flsbuf(long ptr)
@ cdecl _flushall()
@ extern _fmode
@ cdecl _fpclass(double)
@ stub _fpieee_flt #(long ptr ptr)
@ cdecl _fpreset()
@ cdecl _fputchar(long)
@ cdecl _fputwchar(long)
@ cdecl _fsopen(str str long)
@ cdecl _fstat(long ptr)
@ cdecl _fstat64(long ptr)
@ cdecl _fstati64(long ptr)
@ cdecl _ftime(ptr)
@ cdecl _ftime32(ptr)
@ cdecl _ftime64(ptr)
@ cdecl -ret64 _ftol() ntdll._ftol
@ cdecl -ret64 _ftol2_sse() ntdll._ftol #FIXME: SSE variant should be implemented
@ cdecl _fullpath(ptr str long)
@ cdecl _futime(long ptr)
@ cdecl _futime32(long ptr)
@ cdecl _futime64(long ptr)
@ cdecl _gcvt(double long str)
@ cdecl _get_osfhandle(long)
@ cdecl _get_sbh_threshold()
@ stub _get_terminate
@ stub _get_unexpected
@ cdecl _getch()
@ cdecl _getche()
@ cdecl _getcwd(str long)
@ cdecl _getdcwd(long str long)
@ cdecl _getdiskfree(long ptr)
@ cdecl _getdllprocaddr(long str long)
@ cdecl _getdrive()
@ cdecl _getdrives() kernel32.GetLogicalDrives
@ cdecl _getmaxstdio()
@ cdecl _getmbcp()
@ cdecl _getpid() kernel32.GetCurrentProcessId
@ stub _getsystime #(ptr)
@ cdecl _getw(ptr)
@ cdecl _getws(ptr)
@ cdecl _global_unwind2(ptr)
@ cdecl _gmtime32(ptr)
@ cdecl _gmtime64(ptr)
@ cdecl _heapadd (ptr long)
@ cdecl _heapchk()
@ cdecl _heapmin()
@ cdecl _heapset(long)
@ stub _heapused #(ptr ptr)
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _i64toa(long long ptr long) ntdll._i64toa
@ cdecl _i64tow(long long ptr long) ntdll._i64tow
@ cdecl _initterm(ptr ptr)
@ stub _inp #(long) -i386
@ stub _inpd #(long) -i386
@ stub _inpw #(long) -i386
@ extern _iob
@ cdecl _isatty(long)
@ cdecl _isctype(long long)
@ stub _ismbbalnum #(long)
@ stub _ismbbalpha #(long)
@ stub _ismbbgraph #(long)
@ stub _ismbbkalnum #(long)
@ cdecl _ismbbkana(long)
@ stub _ismbbkprint #(long)
@ stub _ismbbkpunct #(long)
@ cdecl _ismbblead(long)
@ stub _ismbbprint #(long)
@ stub _ismbbpunct #(long)
@ cdecl _ismbbtrail(long)
@ cdecl _ismbcalnum(long)
@ cdecl _ismbcalpha(long)
@ cdecl _ismbcdigit(long)
@ cdecl _ismbcgraph(long)
@ cdecl _ismbchira(long)
@ cdecl _ismbckata(long)
@ stub _ismbcl0 #(long)
@ stub _ismbcl1 #(long)
@ stub _ismbcl2 #(long)
@ stub _ismbclegal #(long)
@ cdecl _ismbclower(long)
@ cdecl _ismbcprint(long)
@ cdecl _ismbcpunct(long)
@ cdecl _ismbcspace(long)
@ cdecl _ismbcsymbol(long)
@ cdecl _ismbcupper(long)
@ cdecl _ismbslead(ptr ptr)
@ cdecl _ismbstrail(ptr ptr)
@ cdecl _isnan( double )
@ cdecl _itoa(long ptr long) ntdll._itoa
@ cdecl _itow(long ptr long) ntdll._itow
#@ cdecl _j0(double)
#@ cdecl _j1(double)
#@ cdecl _jn(long double)
@ cdecl _kbhit()
@ cdecl _lfind(ptr ptr ptr long ptr)
@ cdecl _loaddll(str)
@ cdecl -i386 _local_unwind2(ptr long)
@ cdecl _localtime32(ptr)
@ cdecl _localtime64(ptr)
@ cdecl _lock(long)
@ cdecl _locking(long long long)
@ cdecl _logb( double )
@ cdecl -i386 _longjmpex(ptr long) longjmp
@ cdecl _lrotl(long long)
@ cdecl _lrotr(long long)
@ cdecl _lsearch(ptr ptr long long ptr)
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long double long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _makepath(ptr str str str str)
@ cdecl _matherr(ptr)
@ cdecl _mbbtombc(long)
@ cdecl _mbbtype(long long)
# extern _mbcasemap
@ cdecl _mbccpy (str str)
@ cdecl _mbcjistojms (long)
@ cdecl _mbcjmstojis (long)
@ cdecl _mbclen(ptr)
@ cdecl _mbctohira (long)
@ cdecl _mbctokata (long)
@ cdecl _mbctolower(long)
@ cdecl _mbctombb (long)
@ cdecl _mbctoupper(long)
@ extern _mbctype _mbctype
@ cdecl _mbsbtype(str long)
@ cdecl _mbscat(str str)
@ cdecl _mbschr(str long)
@ cdecl _mbscmp(str str)
@ cdecl _mbscoll(str str)
@ cdecl _mbscpy(ptr str)
@ cdecl _mbscspn (str str)
@ cdecl _mbsdec(ptr ptr)
@ cdecl _mbsdup(str) _strdup
@ cdecl _mbsicmp(str str)
@ cdecl _mbsicoll(str str)
@ cdecl _mbsinc(str)
@ cdecl _mbslen(str)
@ cdecl _mbslwr(str)
@ cdecl _mbsnbcat (str str long)
@ cdecl _mbsnbcmp(str str long)
@ cdecl _mbsnbcnt(ptr long)
@ cdecl _mbsnbcoll (str str long)
@ cdecl _mbsnbcpy(ptr str long)
@ cdecl _mbsnbcpy_s(ptr long str long)
@ cdecl _mbsnbicmp(str str long)
@ cdecl _mbsnbicoll (str str long)
@ cdecl _mbsnbset(str long long)
@ cdecl _mbsncat(str str long)
@ cdecl _mbsnccnt(str long)
@ cdecl _mbsncmp(str str long)
@ cdecl _mbsncoll (str str long)
@ cdecl _mbsncpy(str str long)
@ cdecl _mbsnextc(str)
@ cdecl _mbsnicmp(str str long)
@ cdecl _mbsnicoll (str str long)
@ cdecl _mbsninc(str long)
@ cdecl _mbsnset(str long long)
@ cdecl _mbspbrk(str str)
@ cdecl _mbsrchr(str long)
@ cdecl _mbsrev(str)
@ cdecl _mbsset(str long)
@ cdecl _mbsspn(str str)
@ cdecl _mbsspnp(str str)
@ cdecl _mbsstr(str str)
@ cdecl _mbstok(str str)
@ cdecl _mbstrlen(str)
@ cdecl _mbsupr(str)
@ cdecl _memccpy(ptr ptr long long) ntdll._memccpy
@ cdecl _memicmp(str str long) ntdll._memicmp
@ cdecl _mkdir(str)
@ cdecl _mktemp(str)
@ cdecl _mktime32(ptr)
@ cdecl _mktime64(ptr)
@ cdecl _msize(ptr)
@ cdecl _nextafter(double double)
@ cdecl _onexit(ptr)
@ varargs _open(str long)
@ cdecl _open_osfhandle(long long)
@ extern _osver
@ stub _outp #(long long)
@ stub _outpd #(long long)
@ stub _outpw #(long long)
@ cdecl _pclose (ptr)
@ extern _pctype
@ extern _pgmptr
@ cdecl _pipe (ptr long long)
@ cdecl _popen (str str)
@ cdecl _purecall()
@ cdecl _putch(long)
@ cdecl _putenv(str)
@ cdecl _putw(long ptr)
@ cdecl _putws(wstr)
# extern _pwctype
@ cdecl _read(long ptr long)
@ cdecl _rmdir(str)
@ cdecl _rmtmp()
@ cdecl _rotl(long long)
@ cdecl _rotr(long long)
@ cdecl -arch=i386 _safe_fdiv()
@ cdecl -arch=i386 _safe_fdivr()
@ cdecl -arch=i386 _safe_fprem()
@ cdecl -arch=i386 _safe_fprem1()
@ cdecl _scalb( double long)
@ cdecl _searchenv(str str ptr)
@ stdcall -i386 _seh_longjmp_unwind(ptr)
@ cdecl _set_error_mode(long)
@ cdecl _set_sbh_threshold(long)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr)
@ cdecl -i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ stub _setsystime #(ptr long)
@ cdecl _sleep(long)
@ varargs _snprintf(ptr long str)
@ varargs _snwprintf(ptr long wstr)
@ varargs _sopen(str long long)
@ varargs _spawnl(long str str)
@ varargs _spawnle(long str str)
@ varargs _spawnlp(long str str)
@ varargs _spawnlpe(long str str)
@ cdecl _spawnv(long str ptr)
@ cdecl _spawnve(long str ptr ptr)
@ cdecl _spawnvp(long str ptr)
@ cdecl _spawnvpe(long str ptr ptr)
@ cdecl _splitpath(str ptr ptr ptr ptr) ntdll._splitpath
@ cdecl _stat(str ptr)
@ cdecl _stat64(str ptr)
@ cdecl _stati64(str ptr)
@ cdecl _statusfp()
@ cdecl _strcmpi(str str) ntdll._strcmpi
@ cdecl _strdate(ptr)
@ cdecl _strdup(str)
@ cdecl _strerror(long)
@ cdecl _stricmp(str str) ntdll._stricmp
@ cdecl _stricoll(str str)
@ cdecl _strlwr(str) ntdll._strlwr
@ cdecl _strncoll (str str long)
@ cdecl _strnicmp(str str long) ntdll._strnicmp
@ cdecl _strnicoll (str str long)
@ cdecl _strnset(str long long)
@ cdecl _strrev(str)
@ cdecl _strset(str long)
@ cdecl _strtime(ptr)
@ cdecl _strtoui64(ptr ptr long) strtoull
@ cdecl _strupr(str) ntdll._strupr
@ cdecl _swab(str str long)
@ extern _sys_errlist
@ extern _sys_nerr
@ cdecl _tell(long)
@ cdecl -ret64 _telli64(long)
@ cdecl _tempnam(str str)
@ cdecl _time32(ptr)
@ cdecl _time64(ptr)
@ extern _timezone
@ cdecl _tolower(long)
@ cdecl _toupper(long)
@ extern _tzname
@ cdecl _tzset()
@ cdecl _ui64toa(long long ptr long) ntdll._ui64toa
@ cdecl _ui64tow(long long ptr long) ntdll._ui64tow
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _umask(long)
@ cdecl _ungetch(long)
@ cdecl _unlink(str)
@ cdecl _unloaddll(long)
@ cdecl _unlock(long)
@ cdecl _utime32(str ptr)
@ cdecl _utime64(str ptr)
@ cdecl _utime(str ptr)
#@ cdecl _vscprintf(str ptr)
#@ cdecl _vscwprintf(wstr ptr)
@ cdecl _vsnprintf(ptr long str ptr)
@ cdecl _vsnwprintf(ptr long wstr ptr)
@ cdecl _waccess(wstr long)
@ cdecl _wasctime(ptr)
@ cdecl _wchdir(wstr)
@ cdecl _wchmod(wstr long)
@ extern _wcmdln
@ cdecl _wcreat(wstr long)
@ cdecl _wcsdup(wstr)
@ cdecl _wcsicmp(wstr wstr) ntdll._wcsicmp
@ cdecl _wcsicoll(wstr wstr)
@ cdecl _wcslwr(wstr) ntdll._wcslwr
@ cdecl _wcsncoll (wstr wstr long)
@ cdecl _wcsnicmp(wstr wstr long) ntdll._wcsnicmp
@ cdecl _wcsnicoll (wstr wstr long)
@ cdecl _wcsnset(wstr long long)
@ cdecl _wcsrev(wstr)
@ cdecl _wcsset(wstr long)
@ cdecl _wcsupr(wstr) ntdll._wcsupr
@ cdecl _wcsupr_s(wstr long)
@ cdecl _wctime(ptr)
@ cdecl _wctime32(ptr)
@ cdecl _wctime64(ptr)
@ extern _wenviron
@ varargs _wexecl(wstr wstr)
@ varargs _wexecle(wstr wstr)
@ varargs _wexeclp(wstr wstr)
@ varargs _wexeclpe(wstr wstr)
@ cdecl _wexecv(wstr ptr)
@ cdecl _wexecve(wstr ptr ptr)
@ cdecl _wexecvp(wstr ptr)
@ cdecl _wexecvpe(wstr ptr ptr)
@ cdecl _wfdopen(long wstr)
@ cdecl _wfindfirst(wstr ptr)
@ cdecl _wfindfirsti64(wstr ptr)
@ cdecl _wfindnext(long ptr)
@ cdecl _wfindnexti64(long ptr)
@ cdecl _wfopen(wstr wstr)
@ cdecl _wfreopen(wstr wstr ptr)
@ cdecl _wfsopen(wstr wstr long)
@ cdecl _wfullpath(ptr wstr long)
@ cdecl _wgetcwd(wstr long)
@ cdecl _wgetdcwd(long wstr long)
@ cdecl _wgetenv(wstr)
@ extern _winmajor
@ extern _winminor
@ extern _winver
@ cdecl _wmakepath(wstr wstr wstr wstr wstr)
@ cdecl _wmkdir(wstr)
@ cdecl _wmktemp(wstr)
@ varargs _wopen(wstr long)
@ stub _wperror #(wstr)
@ extern _wpgmptr
@ cdecl _wpopen (wstr wstr)
@ cdecl _wputenv(wstr)
@ cdecl _wremove(wstr)
@ cdecl _wrename(wstr wstr)
@ cdecl _write(long ptr long)
@ cdecl _wrmdir(wstr)
@ cdecl _wsearchenv(wstr wstr ptr)
@ cdecl _wsetlocale(long wstr)
@ varargs _wsopen (wstr long long)
@ varargs _wspawnl(long wstr wstr)
@ varargs _wspawnle(long wstr wstr)
@ varargs _wspawnlp(long wstr wstr)
@ varargs _wspawnlpe(long wstr wstr)
@ cdecl _wspawnv(long wstr ptr)
@ cdecl _wspawnve(long wstr ptr ptr)
@ cdecl _wspawnvp(long wstr ptr)
@ cdecl _wspawnvpe(long wstr ptr ptr)
@ cdecl _wsplitpath(wstr ptr ptr ptr ptr)
#@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long)
@ cdecl _wstat(wstr ptr)
@ cdecl _wstati64(wstr ptr)
@ cdecl _wstat64(wstr ptr)
@ cdecl _wstrdate(ptr)
@ cdecl _wstrtime(ptr)
@ cdecl _wsystem(wstr)
@ cdecl _wtempnam(wstr wstr)
@ stub _wtmpnam #(ptr)
@ cdecl _wtoi(wstr) ntdll._wtoi
@ cdecl _wtoi64(wstr) ntdll._wtoi64
@ cdecl _wtol(wstr) ntdll._wtol
@ cdecl _wunlink(wstr)
@ cdecl _wutime(wstr ptr)
@ cdecl _wutime32(wstr ptr)
@ cdecl _wutime64(wstr ptr)
#@ cdecl _y0(double)
#@ cdecl _y1(double)
#@ cdecl _yn(long double )
@ cdecl abort()
@ cdecl abs(long) ntdll.abs
@ cdecl acos(double)
@ cdecl asctime(ptr)
@ cdecl asin(double)
@ cdecl atan(double)
@ cdecl atan2(double double)
@ cdecl atexit(ptr)
@ cdecl atof(str)
@ cdecl atoi(str) ntdll.atoi
@ cdecl atol(str) ntdll.atol
@ cdecl bsearch(ptr ptr long long ptr) ntdll.bsearch
@ cdecl calloc(long long)
@ cdecl ceil(double)
@ cdecl ceilf(double)
@ cdecl clearerr(ptr)
@ cdecl clock()
@ cdecl cos(double)
@ cdecl cosh(double)
@ cdecl cosf(double)
@ cdecl ctime(ptr)
@ cdecl difftime(long long)
@ cdecl div(long long)
@ cdecl exit(long)
@ cdecl exp(double)
@ cdecl fabs(double)
@ cdecl fclose(ptr)
@ cdecl feof(ptr)
@ cdecl ferror(ptr)
@ cdecl fflush(ptr)
@ cdecl fgetc(ptr)
@ cdecl fgetpos(ptr ptr)
@ cdecl fgets(ptr long ptr)
@ cdecl fgetwc(ptr)
@ cdecl fgetws(ptr long ptr)
@ cdecl floor(double)
@ cdecl fmod(double double)
@ cdecl fmodf(double double)
@ cdecl fopen(str str)
@ varargs fprintf(ptr str)
@ cdecl fputc(long ptr)
@ cdecl fputs(str ptr)
@ cdecl fputwc(long ptr)
@ cdecl fputws(wstr ptr)
@ cdecl fread(ptr long long ptr)
@ cdecl free(ptr)
@ cdecl freopen(str str ptr)
@ cdecl frexp(double ptr)
@ varargs fscanf(ptr str)
@ cdecl fseek(ptr long long)
@ cdecl fsetpos(ptr ptr)
@ cdecl ftell(ptr)
@ varargs fwprintf(ptr wstr)
@ cdecl fwrite(ptr long long ptr)
@ varargs fwscanf(ptr wstr)
@ cdecl getc(ptr)
@ cdecl getchar()
@ cdecl getenv(str)
@ cdecl gets(str)
@ cdecl getwc(ptr)
@ cdecl getwchar()
@ cdecl gmtime(ptr)
@ cdecl is_wctype(long long) ntdll.iswctype
@ cdecl isalnum(long)
@ cdecl isalpha(long)
@ cdecl iscntrl(long)
@ cdecl isdigit(long)
@ cdecl isgraph(long)
@ cdecl isleadbyte(long)
@ cdecl islower(long)
@ cdecl isprint(long)
@ cdecl ispunct(long)
@ cdecl isspace(long)
@ cdecl isupper(long)
@ cdecl iswalnum(long)
@ cdecl iswalpha(long) ntdll.iswalpha
@ cdecl iswascii(long)
@ cdecl iswcntrl(long)
@ cdecl iswctype(long long) ntdll.iswctype
@ cdecl iswdigit(long)
@ cdecl iswgraph(long)
@ cdecl iswlower(long)
@ cdecl iswprint(long)
@ cdecl iswpunct(long)
@ cdecl iswspace(long)
@ cdecl iswupper(long)
@ cdecl iswxdigit(long)
@ cdecl isxdigit(long)
@ cdecl labs(long) ntdll.labs
@ cdecl ldexp( double long)
@ cdecl ldiv(long long)
@ cdecl localeconv()
@ cdecl localtime(ptr)
@ cdecl log(double)
@ cdecl logf(double)
@ cdecl log10(double)
@ cdecl longjmp(ptr long)
@ cdecl malloc(long)
@ cdecl mblen(ptr long)
@ cdecl mbstowcs(ptr str long) ntdll.mbstowcs
@ cdecl mbtowc(wstr str long)
@ cdecl memchr(ptr long long) ntdll.memchr
@ cdecl memcmp(ptr ptr long) ntdll.memcmp
@ cdecl memcpy(ptr ptr long) ntdll.memcpy
@ cdecl memmove(ptr ptr long) ntdll.memmove
@ cdecl memset(ptr long long) ntdll.memset
@ cdecl mktime(ptr)
@ cdecl modf(double ptr)
@ cdecl perror(str)
@ cdecl pow(double double)
@ varargs printf(str)
@ cdecl putc(long ptr)
@ cdecl putchar(long)
@ cdecl puts(str)
@ cdecl putwc(long ptr) fputwc #redirection is hack
@ cdecl putwchar(long) _fputwchar #redirection is hack
@ cdecl qsort(ptr long long ptr) ntdll.qsort
@ cdecl raise(long)
@ cdecl rand()
#@ cdecl rand_s(ptr)
@ cdecl realloc(ptr long)
@ cdecl remove(str)
@ cdecl rename(str str)
@ cdecl rewind(ptr)
@ varargs scanf(str)
@ cdecl setbuf(ptr ptr)
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)
@ cdecl sin(double)
@ cdecl sinh(double)
@ varargs sprintf(ptr str)
#@ varargs sprintf_s(ptr long str)
@ cdecl sqrt(double)
@ cdecl sqrtf(double)
@ cdecl srand(long)
@ varargs sscanf(str str)
@ cdecl strcat(str str) ntdll.strcat
@ cdecl strcat_s(str long str)
@ cdecl strchr(str long) ntdll.strchr
@ cdecl strcmp(str str) ntdll.strcmp
@ cdecl strcoll(str str)
@ cdecl strcpy(ptr str) ntdll.strcpy
@ cdecl strcpy_s(ptr long str)
@ cdecl strcspn(str str) ntdll.strcspn
@ cdecl strerror(long)
@ cdecl strftime(str long str ptr)
@ cdecl strlen(str) ntdll.strlen
@ cdecl strncat(str str long) ntdll.strncat
@ cdecl strncmp(str str long) ntdll.strncmp
@ cdecl strncpy(ptr str long) ntdll.strncpy
@ cdecl strpbrk(str str) ntdll.strpbrk
@ cdecl strrchr(str long) ntdll.strrchr
@ cdecl strspn(str str) ntdll.strspn
@ cdecl strstr(str str) ntdll.strstr
@ cdecl strtod(str ptr)
@ cdecl strtok(str str)
@ cdecl strtol(str ptr long)
@ cdecl strtoul(str ptr long)
@ cdecl strxfrm(ptr str long)
@ varargs swprintf(ptr wstr)
@ varargs swscanf(wstr wstr)
@ cdecl system(str)
@ cdecl tan(double)
@ cdecl tanh(double)
@ cdecl time(ptr)
@ cdecl tmpfile()
@ cdecl tmpnam(ptr)
@ cdecl tolower(long) ntdll.tolower
@ cdecl toupper(long) ntdll.toupper
@ cdecl towlower(long) ntdll.towlower
@ cdecl towupper(long) ntdll.towupper
@ cdecl ungetc(long ptr)
@ cdecl ungetwc(long ptr)
@ cdecl vfprintf(ptr str ptr)
@ cdecl vfwprintf(ptr wstr ptr)
@ cdecl vprintf(str ptr)
@ cdecl vsprintf(ptr str ptr)
#@ cdecl vsprintf_s(ptr long str ptr)
@ cdecl vswprintf(ptr wstr ptr)
#@ cdecl vswprintf_s(ptr long wstr ptr)
@ cdecl vwprintf(wstr ptr)
@ cdecl wcscat(wstr wstr) ntdll.wcscat
#@ cdecl wcscat_s(wstr long wstr)
@ cdecl wcschr(wstr long) ntdll.wcschr
@ cdecl wcscmp(wstr wstr) ntdll.wcscmp
@ cdecl wcscoll(wstr wstr)
@ cdecl wcscpy(ptr wstr) ntdll.wcscpy
@ cdecl wcscpy_s(ptr long wstr)
@ cdecl wcscspn(wstr wstr) ntdll.wcscspn
@ cdecl wcsftime(ptr long wstr ptr)
@ cdecl wcslen(wstr) ntdll.wcslen
@ cdecl wcsncat(wstr wstr long) ntdll.wcsncat
@ cdecl wcsncmp(wstr wstr long) ntdll.wcsncmp
@ cdecl wcsncpy(ptr wstr long) ntdll.wcsncpy
@ cdecl wcsncpy_s(ptr long wstr long)
@ cdecl wcspbrk(wstr wstr)
@ cdecl wcsrchr(wstr long) ntdll.wcsrchr
@ cdecl wcsspn(wstr wstr) ntdll.wcsspn
@ cdecl wcsstr(wstr wstr) ntdll.wcsstr
@ cdecl wcstod(wstr ptr)
@ cdecl wcstok(wstr wstr)
@ cdecl wcstol(wstr ptr long) ntdll.wcstol
@ cdecl wcstombs(ptr ptr long) ntdll.wcstombs
@ cdecl wcstoul(wstr ptr long) ntdll.wcstoul
@ stub wcsxfrm #(ptr wstr long)
@ cdecl wctomb(ptr long)
@ varargs wprintf(wstr)
@ varargs wscanf(wstr)

View file

@ -187,8 +187,31 @@ extern "C" {
return (_Df);
}
//missing in msvcrt but needed by gdiplus
#if !defined(__x86_64) && !defined(_M_AMD64)
__CRT_INLINE float acosf(float _X) { return ((float)acos((double)_X)); }
__CRT_INLINE float asinf(float _X) { return ((float)asin((double)_X)); }
__CRT_INLINE float atanf(float _X) { return ((float)atan((double)_X)); }
__CRT_INLINE float atan2f(float _X,float _Y) { return ((float)atan2((double)_X,(double)_Y)); }
__CRT_INLINE float ceilf(float _X) { return ((float)ceil((double)_X)); }
__CRT_INLINE float cosf(float _X) { return ((float)cos((double)_X)); }
__CRT_INLINE float coshf(float _X) { return ((float)cosh((double)_X)); }
__CRT_INLINE float expf(float _X) { return ((float)exp((double)_X)); }
__CRT_INLINE float floorf(float _X) { return ((float)floor((double)_X)); }
__CRT_INLINE float fmodf(float _X,float _Y) { return ((float)fmod((double)_X,(double)_Y)); }
__CRT_INLINE float logf(float _X) { return ((float)log((double)_X)); }
__CRT_INLINE float log10f(float _X) { return ((float)log10((double)_X)); }
__CRT_INLINE float modff(float _X,float *_Y) {
double _Di,_Df = modf((double)_X,&_Di);
*_Y = (float)_Di;
return ((float)_Df);
}
__CRT_INLINE float powf(float _X,float _Y) { return ((float)pow((double)_X,(double)_Y)); }
__CRT_INLINE float sinf(float _X) { return ((float)sin((double)_X)); }
__CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); }
__CRT_INLINE float sqrtf(float _X) { return ((float)sqrt((double)_X)); }
__CRT_INLINE float tanf(float _X) { return ((float)tan((double)_X)); }
__CRT_INLINE float tanhf(float _X) { return ((float)tanh((double)_X)); }
#endif
#ifndef NO_OLDNAMES
#define DOMAIN _DOMAIN

View file

@ -22,7 +22,6 @@
<define name="__MINGW_IMPORT">extern</define>
<define name="USE_MSVCRT_PREFIX" />
<define name="_MSVCRT_LIB_" />
<define name="_CRTBLD" />
<define name="_MSVCRT_" />
<define name="_MT" />
<directory name="conio">
@ -107,84 +106,87 @@
<file>locale.c</file>
</directory>
<directory name="math">
<file>abs.c</file>
<file>acos.c</file>
<file>acosf.c</file>
<file>adjust.c</file>
<file>asin.c</file>
<file>asinf.c</file>
<file>atan.c</file>
<file>atan2.c</file>
<file>atan2f.c</file>
<file>atanf.c</file>
<file>cabs.c</file>
<file>copysign.c</file>
<file>copysignf.c</file>
<file>cosf.c</file>
<file>cosh.c</file>
<file>div.c</file>
<file>exp.c</file>
<file>expf.c</file>
<file>fabs.c</file>
<file>fdivbug.c</file>
<file>fmod.c</file>
<file>fmodf.c</file>
<file>frexp.c</file>
<file>huge_val.c</file>
<file>hypot.c</file>
<file>hypotf.c</file>
<file>ldexp.c</file>
<file>ldiv.c</file>
<file>log10f.c</file>
<file>logb.c</file>
<file>logbf.c</file>
<file>logf.c</file>
<file>modf.c</file>
<file>modff.c</file>
<file>nextafter.c</file>
<file>nextafterf.c</file>
<file>powf.c</file>
<file>rand.c</file>
<file>s_modf.c</file>
<file>sinf.c</file>
<file>sinh.c</file>
<file>sinhf.c</file>
<file>sqrt.c</file>
<file>sqrtf.c</file>
<file>tanf.c</file>
<file>tanh.c</file>
<file>tanhf.c</file>
<file>pow_asm.c</file>
<if property="ARCH" value="i386">
<directory name="i386">
<file>ceil.S</file>
<file>ceilf.S</file>
<file>cos.S</file>
<file>floor.S</file>
<file>floorf.S</file>
<file>log.S</file>
<file>log10.S</file>
<file>sin.S</file>
<file>tan.S</file>
<file>ci.c</file>
<file>alldiv_asm.s</file>
<file>alldvrm_asm.s</file>
<file>allmul_asm.s</file>
<file>allrem_asm.s</file>
<file>allshl_asm.s</file>
<file>allshr_asm.s</file>
<file>atan_asm.s</file>
<file>aulldiv_asm.s</file>
<file>aulldvrm_asm.s</file>
<file>aullrem_asm.s</file>
<file>aullshr_asm.s</file>
<file>ceil_asm.s</file>
<file>cos_asm.s</file>
<file>fabs_asm.s</file>
<file>floor_asm.s</file>
<file>ftol_asm.s</file>
<file>log_asm.s</file>
<file>log10_asm.s</file>
<file>pow_asm.s</file>
<file>sin_asm.s</file>
<file>sqrt_asm.s</file>
<file>tan_asm.s</file>
<file>atan2.c</file>
<file>ci.c</file>
<file>exp.c</file>
<file>fmod.c</file>
<file>ldexp.c</file>
</directory>
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
<!--<file>j0_y0.c</file>
<file>j1_y1.c</file>
<file>jn_yn.c</file>-->
</if>
<if property="ARCH" value="amd64">
<directory name="i386">
<directory name="amd64">
<file>alldiv.S</file>
<file>atan.S</file>
<file>atan2.S</file>
<file>ceil.S</file>
<file>ceilf.S</file>
<file>cos.S</file>
<file>exp.S</file>
<file>fabs.S</file>
<file>floor.S</file>
<file>floorf.S</file>
<file>fmod.S</file>
<file>fmodf.S</file>
<file>ldexp.S</file>
<file>log.S</file>
<file>log10.S</file>
<file>sin.S</file>
<file>tan.S</file>
<file>ci.c</file>
</directory>
<directory name="amd64">
<file>pow.S</file>
<file>sin.S</file>
<file>sqrt.S</file>
<file>sqrtf.S</file>
<file>tan.S</file>
</directory>
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
<!--<file>j0_y0.c</file>
<file>j1_y1.c</file>
<file>jn_yn.c</file>-->
</if>
<ifnot property="ARCH" value="i386">
<file>stubs.c</file>

View file

@ -491,11 +491,3 @@ unsigned int CDECL __CxxQueryExceptionSize(void)
{
return sizeof(cxx_exception_type);
}
/******************************************************************
* MSVCRT___uncaught_exception
*/
BOOL CDECL __uncaught_exception(void)
{
return FALSE;
}

View file

@ -1,7 +1,6 @@
#define WIN32_NO_STATUS
#include <precomp.h>
#include <windows.h>
#include <setjmp.h>
#define NTOS_MODE_USER
#include <ndk/umtypes.h>
#include <ndk/extypes.h>
@ -26,6 +25,23 @@ typedef struct _MSVCRT_EXCEPTION_FRAME
PEXCEPTION_POINTERS xpointers;
} MSVCRT_EXCEPTION_FRAME;
typedef struct __JUMP_BUFFER
{
unsigned long Ebp;
unsigned long Ebx;
unsigned long Edi;
unsigned long Esi;
unsigned long Esp;
unsigned long Eip;
unsigned long Registration;
unsigned long TryLevel;
/* Start of new struct members */
unsigned long Cookie;
unsigned long UnwindFunc;
unsigned long UnwindData[6];
} _JUMP_BUFFER;
void
_local_unwind2(MSVCRT_EXCEPTION_FRAME *RegistrationFrame,
LONG TryLevel);

View file

@ -6,7 +6,6 @@
<define name="NO_RTL_INLINES" />
<define name="_NTSYSTEM_" />
<define name="_NTDLLBUILD_" />
<define name="_CRTBLD" />
<define name="_LIBCNT_" />
<if property="ARCH" value="i386">
<define name="__MINGW_IMPORT">"extern __attribute__ ((dllexport))"</define>
@ -41,44 +40,48 @@
<file>allrem_asm.s</file>
<file>allshl_asm.s</file>
<file>allshr_asm.s</file>
<file>atan_asm.s</file>
<file>aulldiv_asm.s</file>
<file>aulldvrm_asm.s</file>
<file>aullrem_asm.s</file>
<file>aullshr_asm.s</file>
<file>ci.c</file>
<file>ceil_asm.s</file>
<file>cos_asm.s</file>
<file>fabs_asm.s</file>
<file>floor_asm.s</file>
<file>ftol_asm.s</file>
<file>log_asm.s</file>
<file>pow_asm.s</file>
<file>ceil.S</file>
<file>cos.S</file>
<file>log.S</file>
<file>log10.S</file>
<file>sin.S</file>
<file>tan.S</file>
<file>sin_asm.s</file>
<file>sqrt_asm.s</file>
<file>tan_asm.s</file>
</directory>
</if>
<if property="ARCH" value="amd64">
<directory name="i386">
<file>ceil.S</file>
<file>cos.S</file>
<file>floor.S</file>
<file>log.S</file>
<file>log10.S</file>
<file>sin.S</file>
<file>tan.S</file>
</directory>
<directory name="amd64">
<file>alldiv.S</file>
<file>atan.S</file>
<file>atan2.S</file>
<file>ceil.S</file>
<file>cos.S</file>
<file>exp.S</file>
<file>fabs.S</file>
<file>floor.S</file>
<file>fmod.S</file>
<file>ldexp.S</file>
<file>log.S</file>
<file>log10.S</file>
<file>pow.S</file>
<file>sin.S</file>
<file>sqrt.S</file>
<file>tan.S</file>
</directory>
</if>
<file>abs.c</file>
<file>atan.c</file>
<file>fabs.c</file>
<file>div.c</file>
<file>labs.c</file>
<file>rand_nt.c</file>
<file>sqrt.c</file>
</directory>
<directory name="mem">

View file

@ -1,29 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*/
#include <math.h>
float
acosf (float x)
{
float res = 0.0F;
#ifdef __GNUC__
/* acosl = atanl (sqrtl(1 - x^2) / x) */
asm ( "fld %%st\n\t"
"fmul %%st(0)\n\t" /* x^2 */
"fld1\n\t"
"fsubp\n\t" /* 1 - x^2 */
"fsqrt\n\t" /* sqrtl (1 - x^2) */
"fxch %%st(1)\n\t"
"fpatan"
: "=t" (res) : "0" (x) : "st(1)");
#endif
return res;
}

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of atan
* FILE: lib/sdk/crt/math/amd64/atan.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc atan
UNIMPLEMENTED atan
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of atan2
* FILE: lib/sdk/crt/math/amd64/atan2.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc atan2
UNIMPLEMENTED atan2
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of ceil
* FILE: lib/sdk/crt/math/amd64/ceil.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc ceil
UNIMPLEMENTED ceil
ret
.endproc

View file

@ -0,0 +1,40 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of tan
* FILE: lib/sdk/crt/math/amd64/ceilf.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc ceilf
/* Put parameter on the stack */
movss [rsp - 0x10], xmm0
fld dword ptr [rsp]
/* Change fpu control word to round up */
fstcw [rsp - 0x10]
mov eax, [rsp - 0x10]
or eax, 0x00800
and eax, 0x0fbff
mov [rsp - 0x08], eax
fldcw [rsp - 0x08]
/* Round to integer */
frndint
/* Restore fpu control word */
fldcw [rsp - 0x10]
fstp dword ptr [rsp - 0x10]
movss xmm0, [rsp - 0x10]
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of cos
* FILE: lib/sdk/crt/math/amd64/cos.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc cos
UNIMPLEMENTED cos
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of exp
* FILE: lib/sdk/crt/math/amd64/exp.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc exp
UNIMPLEMENTED exp
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of fabs
* FILE: lib/sdk/crt/math/amd64/fabs.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc fabs
UNIMPLEMENTED fabs
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of floor
* FILE: lib/sdk/crt/math/amd64/floor.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc floor
UNIMPLEMENTED floor
ret
.endproc

View file

@ -0,0 +1,40 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of tan
* FILE: lib/sdk/crt/math/amd64/floorf.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc floorf
/* Put parameter on the stack */
movss [rsp - 0x10], xmm0
fld dword ptr [rsp]
/* Change fpu control word to round down */
fstcw [rsp - 0x10]
mov eax, [rsp - 0x10]
or eax, 0x00400
and eax, 0x0f7ff
mov [rsp - 0x08], eax
fldcw [rsp - 0x08]
/* Round to integer */
frndint
/* Restore fpu control word */
fldcw [rsp - 0x10]
fstp dword ptr [rsp - 0x10]
movss xmm0, [rsp - 0x10]
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of fmod
* FILE: lib/sdk/crt/math/amd64/fmod.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc fmod
UNIMPLEMENTED fmod
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of fmodf
* FILE: lib/sdk/crt/math/amd64/fmodf.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc fmodf
UNIMPLEMENTED fmodf
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of ldexp
* FILE: lib/sdk/crt/math/amd64/ldexp.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc ldexp
UNIMPLEMENTED ldexp
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of log
* FILE: lib/sdk/crt/math/amd64/log.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc log
UNIMPLEMENTED log
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of log10
* FILE: lib/sdk/crt/math/amd64/log10.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc log10
UNIMPLEMENTED log10
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of sin
* FILE: lib/sdk/crt/math/amd64/sin.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc sin
UNIMPLEMENTED sin
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of sqrt
* FILE: lib/sdk/crt/math/amd64/sqrt.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc sqrt
UNIMPLEMENTED sqrt
ret
.endproc

View file

@ -0,0 +1,20 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of tan
* FILE: lib/sdk/crt/math/amd64/sqrtf.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc sqrtf
sqrtss xmm0, xmm0
ret
.endproc

View file

@ -0,0 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: Implementation of tan
* FILE: lib/sdk/crt/math/amd64/tan.S
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
*/
/* INCLUDES ******************************************************************/
#include <ndk/amd64/asm.h>
#include <ndk/amd64/asmmacro.S>
.intel_syntax noprefix
.proc tan
UNIMPLEMENTED tan
ret
.endproc

View file

@ -1,27 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*/
/* asin = atan (x / sqrt(1 - x^2)) */
float asinf (float x);
float asinf (float x)
{
float res = 0.0F;
asm ( "fld %%st\n\t"
"fmul %%st(0)\n\t" /* x^2 */
"fld1\n\t"
"fsubp\n\t" /* 1 - x^2 */
"fsqrt\n\t" /* sqrt (1 - x^2) */
"fpatan"
: "=t" (res) : "0" (x) : "st(1)");
return res;
}

View file

@ -1,18 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
double
atan (double x)
{
double res = 0.0L;
#if defined(__GNUC__)
asm ("fld1\n\t"
"fpatan"
: "=t" (res) : "0" (x));
#endif
return res;
}

View file

@ -1,16 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
double
atan2 (double y, double x)
{
long double res = 0.0L;
#ifdef __GNUC__
asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)");
#endif
return res;
}

View file

@ -1,22 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
*/
#include <math.h>
float
atan2f (float y, float x)
{
float res = 0.0F;
#ifdef __GNUC__
asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)");
#endif
return res;
}

View file

@ -1,23 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
*/
#include <math.h>
float
atanf (float x)
{
float res = 0.0F;
#ifdef __GNUC__
asm ("fld1\n\t"
"fpatan" : "=t" (res) : "0" (x));
#endif
return res;
}

View file

@ -1,21 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
typedef union U
{
unsigned int u[2];
double d;
} U;
double copysign(double x, double y)
{
U h,j;
h.d = x;
j.d = y;
h.u[1] = (h.u[1] & 0x7fffffff) | (j.u[1] & 0x80000000);
return h.d;
}

View file

@ -1,19 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
typedef union ui_f {
float f;
unsigned int ui;
} ui_f;
float copysignf(float aX, float aY)
{
ui_f x,y;
x.f=aX; y.f=aY;
x.ui= (x.ui & 0x7fffffff) | (y.ui & 0x80000000);
return x.f;
}

View file

@ -1,11 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float cosf(float _X)
{
return ((float)cos((double)_X));
}

View file

@ -1,55 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
#define MAXLOG 7.09782712893383996843E2
#define MINLOG -7.08396418532264106224E2
static double c0 = 1.44268798828125L;
static double c1 = 7.05260771340735992468e-6L;
static double
__exp(double x)
{
double res = 0.0L;
#ifdef __GNUC__
asm ("fldl2e\n\t" /* 1 log2(e) */
"fmul %%st(1),%%st\n\t" /* 1 x log2(e) */
"frndint\n\t" /* 1 i */
"fld %%st(1)\n\t" /* 2 x */
"frndint\n\t" /* 2 xi */
"fld %%st(1)\n\t" /* 3 i */
"fldt %2\n\t" /* 4 c0 */
"fld %%st(2)\n\t" /* 5 xi */
"fmul %%st(1),%%st\n\t" /* 5 c0 xi */
"fsubp %%st,%%st(2)\n\t" /* 4 f = c0 xi - i */
"fld %%st(4)\n\t" /* 5 x */
"fsub %%st(3),%%st\n\t" /* 5 xf = x - xi */
"fmulp %%st,%%st(1)\n\t" /* 4 c0 xf */
"faddp %%st,%%st(1)\n\t" /* 3 f = f + c0 xf */
"fldt %3\n\t" /* 4 */
"fmul %%st(4),%%st\n\t" /* 4 c1 * x */
"faddp %%st,%%st(1)\n\t" /* 3 f = f + c1 * x */
"f2xm1\n\t" /* 3 2^(fract(x * log2(e))) - 1 */
"fld1\n\t" /* 4 1.0 */
"faddp\n\t" /* 3 2^(fract(x * log2(e))) */
"fstp %%st(1)\n\t" /* 2 */
"fscale\n\t" /* 2 scale factor is st(1); e^x */
"fstp %%st(1)\n\t" /* 1 */
"fstp %%st(1)\n\t" /* 0 */
: "=t" (res) : "0" (x), "m" (c0), "m" (c1) : "ax", "dx");
#endif
return res;
}
double exp (double x)
{
if (x > MAXLOG)
return INFINITY;
else if (x < MINLOG)
return 0.0L;
else
return __exp (x);
}

View file

@ -1,10 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float expf (float x)
{
return (float) exp (x);
}

View file

@ -1,16 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
double
fabs (double x)
{
double res = 0.0;
#ifdef __GNUC__
asm ("fabs;" : "=t" (res) : "0" (x));
#endif
return res;
}

View file

@ -1,21 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
double
fmod (double x, double y)
{
double res = 0.0L;
#ifdef __GNUC__
asm ("1:\tfprem\n\t"
"fstsw %%ax\n\t"
"sahf\n\t"
"jp 1b\n\t"
"fstp %%st(1)"
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
#endif
return res;
}

View file

@ -1,29 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
* Adapted for float type by Danny Smith
* <dannysmith@users.sourceforge.net>.
*/
#include <math.h>
float
fmodf (float x, float y)
{
float res = 0.0F;
#ifdef __GNUC__
asm ("1:\tfprem\n\t"
"fstsw %%ax\n\t"
"sahf\n\t"
"jp 1b\n\t"
"fstp %%st(1)"
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
#endif
return res;
}

View file

@ -1,12 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float hypotf (float x, float y)
{
return (float) _hypot (x, y);
}

View file

@ -0,0 +1,50 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/atan.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _atan
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_atan:
push ebp
mov ebp,esp
fld qword ptr [ebp+8] // Load real from stack
fld1 // Load constant 1
fpatan // Take the arctangent
pop ebp
ret

View file

@ -1,54 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "ceil.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _ceil
.def _ceil; .scl 2; .type 32; .endef
_ceil:
#ifdef _WIN64
fldt (%rdx)
subq $24,%rsp
fstcw 8(%rsp) /* store fpu control word */
/* We use here %edx although only the low 1 bits are defined.
But none of the operations should care and they are faster
than the 16 bit operations. */
movl $0x0800,%edx /* round towards +oo */
orl 8(%rsp),%edx
andl $0xfbff,%edx
movl %edx,(%rsp)
fldcw (%rsp) /* load modified control word */
frndint /* round */
fldcw 8(%rsp) /* restore original control word */
addq $24,%rsp
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldt 4(%esp)
subl $8,%esp
fstcw 4(%esp)
movl $0x0800,%edx
orl 4(%esp),%edx
andl $0xfbff,%edx
movl %edx,(%esp)
fldcw (%esp)
frndint
fldcw 4(%esp)
addl $8,%esp
ret
#endif

View file

@ -0,0 +1,57 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/ceil.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _ceil
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_ceil:
push ebp
mov ebp,esp
sub esp,4 // Allocate temporary space
fld qword ptr [ebp+8] // Load real from stack
fstcw [ebp-2] // Save control word
fclex // Clear exceptions
mov word ptr [ebp-4],0xb63 // Rounding control word
fldcw [ebp-4] // Set new rounding control
frndint // Round to integer
fclex // Clear exceptions
fldcw [ebp-2] // Restore control word
mov esp,ebp // Deallocate temporary space
pop ebp
ret

View file

@ -1,54 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "ceilf.S"
.text
.align 4
.globl _ceilf
.def _ceilf; .scl 2; .type 32; .endef
_ceilf:
#ifdef _WIN64
subq $24,%rsp
movss %xmm0,8(%rsp)
flds 8(%rsp)
fstcw 4(%rsp) /* store fpu control word */
movl $0x0800,%edx /* round towards +oo */
orl 4(%rsp),%edx
andl $0xfbff,%edx
movl %edx,(%rsp)
fldcw (%rsp) /* load modified control word */
frndint /* round */
fldcw 4(%rsp) /* restore original control word */
fstps 8(%rsp)
movss 8(%rsp),%xmm0
addq $24,%rsp
ret
#else
flds 4(%esp)
subl $8,%esp
fstcw 4(%esp) /* store fpu control word */
/* We use here %edx although only the low 1 bits are defined.
But none of the operations should care and they are faster
than the 16 bit operations. */
movl $0x0800,%edx /* round towards +oo */
orl 4(%esp),%edx
andl $0xfbff,%edx
movl %edx,(%esp)
fldcw (%esp) /* load modified control word */
frndint /* round */
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
ret
#endif

View file

@ -1,53 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "cos.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _cos
.def _cos; .scl 2; .type 32; .endef
_cos:
#ifdef _WIN64
fldt (%rdx)
fcos
fnstsw %ax
testl $0x400,%eax
jz 1f
fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fnstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fcos
1: movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldt 4(%esp)
fcos
fnstsw %ax
testl $0x400,%eax
jnz 1f
ret
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fnstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fcos
ret
#endif

View file

@ -0,0 +1,49 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/cos.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _cos
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_cos:
push ebp
mov ebp,esp // Point to the stack frame
fld qword ptr [ebp+8] // Load real from stack
fcos // Take the cosine
pop ebp
ret

View file

@ -0,0 +1,49 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/fabs.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _fabs
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_fabs:
push ebp
mov ebp,esp
fld qword ptr [ebp+8] // Load real from stack
fabs // Take the absolute value
pop ebp
ret

View file

@ -1,62 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "floor.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _floor
.def _floor; .scl 2; .type 32; .endef
_floor:
#ifdef _WIN64
fldt (%rdx)
subq $24,%rsp
fstcw 8(%rsp) /* store fpu control word */
/* We use here %edx although only the low 1 bits are defined.
But none of the operations should care and they are faster
than the 16 bit operations. */
movl $0x400,%edx /* round towards -oo */
orl 8(%rsp),%edx
andl $0xf7ff,%edx
movl %edx,(%rsp)
fldcw (%rsp) /* load modified control word */
frndint /* round */
fldcw 8(%rsp) /* restore original control word */
addq $24,%rsp
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldt 4(%esp)
subl $8,%esp
fstcw 4(%esp) /* store fpu control word */
/* We use here %edx although only the low 1 bits are defined.
But none of the operations should care and they are faster
than the 16 bit operations. */
movl $0x400,%edx /* round towards -oo */
orl 4(%esp),%edx
andl $0xf7ff,%edx
movl %edx,(%esp)
fldcw (%esp) /* load modified control word */
frndint /* round */
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
ret
#endif

View file

@ -1,61 +0,0 @@
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
* Changes for long double by Ulrich Drepper <drepper@cygnus.com>
*
* Removed header file dependency for use in libmingwex.a by
* Danny Smith <dannysmith@users.sourceforge.net>
*/
.file "floorf.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _floorf
.def _floorf; .scl 2; .type 32; .endef
_floorf:
#ifdef _WIN64
subq $24,%rsp
movss %xmm0,8(%rsp)
flds 8(%rsp)
fstcw 4(%rsp) /* store fpu control word */
movl $0x400,%edx /* round towards -oo */
orl 4(%rsp),%edx
andl $0xf7ff,%edx
movl %edx,(%rsp)
fldcw (%rsp) /* load modified control word */
frndint /* round */
fldcw 4(%rsp) /* restore original control word */
fstps 8(%rsp)
movss 8(%rsp),%xmm0
addq $24,%rsp
ret
#else
flds 4(%esp)
subl $8,%esp
fstcw 4(%esp) /* store fpu control word */
/* We use here %edx although only the low 1 bits are defined.
But none of the operations should care and they are faster
than the 16 bit operations. */
movl $0x400,%edx /* round towards -oo */
orl 4(%esp),%edx
andl $0xf7ff,%edx
movl %edx,(%esp)
fldcw (%esp) /* load modified control word */
frndint /* round */
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
ret
#endif

View file

@ -1,65 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "log.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
one: .double 1.0
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
limit: .double 0.29
.globl _log
.def _log; .scl 2; .type 32; .endef
_log:
#ifdef _WIN64
fldln2 // log(2)
fldt (%rdx) // x : log(2)
fld %st // x : x : log(2)
fsubl one // x-1 : x : log(2)
fld %st // x-1 : x-1 : x : log(2)
fabs // |x-1| : x-1 : x : log(2)
fcompl limit // x-1 : x : log(2)
fnstsw // x-1 : x : log(2)
andb $0x45, %ah
jz 2f
fstp %st(1) // x-1 : log(2)
fyl2xp1 // log(x)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
2: fstp %st(0) // x : log(2)
fyl2x // log(x)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldln2 // log(2)
fldt 4(%esp) // x : log(2)
fld %st // x : x : log(2)
fsubl one // x-1 : x : log(2)
fld %st // x-1 : x-1 : x : log(2)
fabs // |x-1| : x-1 : x : log(2)
fcompl limit // x-1 : x : log(2)
fnstsw // x-1 : x : log(2)
andb $0x45, %ah
jz 2f
fstp %st(1) // x-1 : log(2)
fyl2xp1 // log(x)
ret
2: fstp %st(0) // x : log(2)
fyl2x // log(x)
ret
#endif

View file

@ -1,92 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "log10.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
one: .double 1.0
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
limit: .double 0.29
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _log10
.def _log10; .scl 2; .type 32; .endef
_log10:
#ifdef _WIN64
fldlg2 // log10(2)
fldt (%rdx) // x : log10(2)
fxam
fnstsw
fld %st // x : x : log10(2)
sahf
jc 3f // in case x is NaN or ±Inf
4: fsubl one // x-1 : x : log10(2)
fld %st // x-1 : x-1 : x : log10(2)
fabs // |x-1| : x-1 : x : log10(2)
fcompl limit // x-1 : x : log10(2)
fnstsw // x-1 : x : log10(2)
andb $0x45, %ah
jz 2f
fstp %st(1) // x-1 : log10(2)
fyl2xp1 // log10(x)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
2: fstp %st(0) // x : log10(2)
fyl2x // log10(x)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
3: jp 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldlg2 // log10(2)
fldt 4(%esp) // x : log10(2)
fxam
fnstsw
fld %st // x : x : log10(2)
sahf
jc 3f // in case x is NaN or ±Inf
4: fsubl one // x-1 : x : log10(2)
fld %st // x-1 : x-1 : x : log10(2)
fabs // |x-1| : x-1 : x : log10(2)
fcompl limit // x-1 : x : log10(2)
fnstsw // x-1 : x : log10(2)
andb $0x45, %ah
jz 2f
fstp %st(1) // x-1 : log10(2)
fyl2xp1 // log10(x)
ret
2: fstp %st(0) // x : log10(2)
fyl2x // log10(x)
ret
3: jp 4b // in case x is ±Inf
fstp %st(1)
fstp %st(1)
ret
#endif

View file

@ -0,0 +1,27 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE:
* FILE:
* PROGRAMER: Magnus Olsen (magnus@greatlord.com)
*
*/
.globl _log10
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_log10:
push ebp
mov ebp,esp
fld qword ptr [ebp+8] // Load real from stack
fldlg2 // Load log base 10 of 2
fxch st(1) // Exchange st, st(1)
fyl2x // Compute the log base 10(x)
pop ebp
ret

View file

@ -0,0 +1,51 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/log.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _log
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_log:
push ebp
mov ebp,esp
fld qword ptr [ebp+8] // Load real from stack
fldln2 // Load log base e of 2
fxch st(1) // Exchange st, st(1)
fyl2x // Compute the natural log(x)
pop ebp
ret

View file

@ -1,57 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "sin.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _sin
.def _sin; .scl 2; .type 32; .endef
_sin:
#ifdef _WIN64
fldt (%rdx)
fsin
fnstsw %ax
testl $0x400,%eax
jnz 1f
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fnstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fsin
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldt 4(%esp)
fsin
fnstsw %ax
testl $0x400,%eax
jnz 1f
ret
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fnstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fsin
ret
#endif

View file

@ -0,0 +1,49 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/sin.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _sin
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_sin:
push ebp // Save register bp
mov ebp,esp // Point to the stack frame
fld qword ptr [ebp+8] // Load real from stack
fsin // Take the sine
pop ebp // Restore register bp
ret

View file

@ -0,0 +1,49 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/sqrt.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _sqrt
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_sqrt:
push ebp
mov ebp,esp
fld qword ptr [ebp+8] // Load real from stack
fsqrt // Take the square root
pop ebp
ret

View file

@ -1,61 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
.file "tan.S"
.text
#ifdef _WIN64
.align 8
#else
.align 4
#endif
.globl _tan
.def _tan; .scl 2; .type 32; .endef
_tan:
#ifdef _WIN64
fldt (%rdx)
fptan
fnstsw %ax
testl $0x400,%eax
jnz 1f
fstp %st(0)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fptan
fstp %st(0)
movq %rcx,%rax
movq $0,8(%rcx)
fstpt (%rcx)
ret
#else
fldt 4(%esp)
fptan
fnstsw %ax
testl $0x400,%eax
jnz 1f
fstp %st(0)
ret
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fptan
fstp %st(0)
ret
#endif

View file

@ -0,0 +1,52 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Run-Time Library
* FILE: lib/rtl/i386/tan.S
* PROGRAMER: Alex Ionescu (alex@relsoft.net)
*
* Copyright (C) 2002 Michael Ringgaard.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.globl _tan
.intel_syntax noprefix
/* FUNCTIONS ***************************************************************/
_tan:
push ebp
mov ebp,esp
sub esp,4 // Allocate temporary space
fld qword ptr [ebp+8] // Load real from stack
fptan // Take the tangent
fstp dword ptr [ebp-4] // Throw away the constant 1
mov esp,ebp // Deallocate temporary space
pop ebp
ret

View file

@ -0,0 +1,30 @@
#include <math.h>
typedef int fpclass_t;
fpclass_t _fpclass(double __d);
int *_errno(void);
/*
* @unimplemented
*/
double _j0(double num)
{
/* FIXME: errno handling */
return j0(num);
}
/*
* @implemented
*/
double _y0(double num)
{
double retval;
if (!isfinite(num)) *_errno() = EDOM;
retval = y0(num);
if (_fpclass(retval) == _FPCLASS_NINF)
{
*_errno() = EDOM;
retval = sqrt(-1);
}
return retval;
}

View file

@ -0,0 +1,30 @@
#include <math.h>
typedef int fpclass_t;
fpclass_t _fpclass(double __d);
int *_errno(void);
/*
* @unimplemented
*/
double _j1(double num)
{
/* FIXME: errno handling */
return j1(num);
}
/*
* @implemented
*/
double _y1(double num)
{
double retval;
if (!isfinite(num)) *_errno() = EDOM;
retval = y1(num);
if (_fpclass(retval) == _FPCLASS_NINF)
{
*_errno() = EDOM;
retval = sqrt(-1);
}
return retval;
}

View file

@ -0,0 +1,30 @@
#include <math.h>
typedef int fpclass_t;
fpclass_t _fpclass(double __d);
int *_errno(void);
/*
* @unimplemented
*/
double _jn(int n, double num)
{
/* FIXME: errno handling */
return jn(n, num);
}
/*
* @implemented
*/
double _yn(int order, double num)
{
double retval;
if (!isfinite(num)) *_errno() = EDOM;
retval = yn(order,num);
if (_fpclass(retval) == _FPCLASS_NINF)
{
*_errno() = EDOM;
retval = sqrt(-1);
}
return retval;
}

View file

@ -1,11 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float log10f(float _X)
{
return ((float)log10((double)_X));
}

View file

@ -1,23 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Changes for long double by Ulrich Drepper <drepper@cygnus.com>
* Public domain.
*/
#include <math.h>
double
logb (double x)
{
double res = 0.0;
#ifdef __GNUC__
asm ("fxtract\n\t"
"fstp %%st" : "=t" (res) : "0" (x));
#endif
return res;
}

View file

@ -1,23 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Changes for long double by Ulrich Drepper <drepper@cygnus.com>
* Public domain.
*/
#include <math.h>
float
logbf (float x)
{
float res = 0.0F;
#ifndef __GNUC__
asm ("fxtract\n\t"
"fstp %%st" : "=t" (res) : "0" (x));
#endif
return res;
}

View file

@ -1,11 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float logf(float _X)
{
return ((float)log((double)_X));
}

View file

@ -1,27 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <fenv.h>
#include <math.h>
#include <errno.h>
#define FE_ROUNDING_MASK \
(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO)
float
modff (float value, float* iptr)
{
float int_part = 0.0F;
unsigned short saved_cw;
unsigned short tmp_cw;
/* truncate */
asm ("fnstcw %0;" : "=m" (saved_cw)); /* save control word */
tmp_cw = (saved_cw & ~FE_ROUNDING_MASK) | FE_TOWARDZERO;
asm ("fldcw %0;" : : "m" (tmp_cw));
asm ("frndint;" : "=t" (int_part) : "0" (value)); /* round */
asm ("fldcw %0;" : : "m" (saved_cw)); /* restore saved cw */
if (iptr)
*iptr = int_part;
return (isinf (value) ? 0.0F : value - int_part);
}

View file

@ -1,66 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
/*
nextafterl.c
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
No copyright claimed, absolutely no warranties.
2005-05-09
*/
#include <math.h>
double
nextafter (double x, double y)
{
union {
long double ld;
struct {
/* packed attribute is unnecessary on x86/x64 for these three variables */
unsigned long long mantissa;
unsigned short expn;
unsigned short pad;
} parts;
} u;
/* The normal bit is explicit for long doubles, unlike
float and double. */
static const unsigned long long normal_bit = 0x8000000000000000ull;
u.ld = 0.0L;
if (isnan (y) || isnan (x))
return x + y;
if (x == y )
/* nextafter (0.0, -O.0) should return -0.0. */
return y;
u.ld = x;
if (x == 0.0L)
{
u.parts.mantissa = 1ull;
return y > 0.0L ? u.ld : -u.ld;
}
if (((x > 0.0L) ^ (y > x)) == 0)
{
u.parts.mantissa++;
if ((u.parts.mantissa & ~normal_bit) == 0ull)
u.parts.expn++;
}
else
{
if ((u.parts.mantissa & ~normal_bit) == 0ull)
u.parts.expn--;
u.parts.mantissa--;
}
/* If we have updated the expn of a normal number,
or moved from denormal to normal, [re]set the normal bit. */
if (u.parts.expn & 0x7fff)
u.parts.mantissa |= normal_bit;
return u.ld;
}

View file

@ -1,32 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float
nextafterf (float x, float y)
{
union
{
float f;
unsigned int i;
} u;
if (isnan (y) || isnan (x))
return x + y;
if (x == y )
/* nextafter (0.0, -O.0) should return -0.0. */
return y;
u.f = x;
if (x == 0.0F)
{
u.i = 1;
return y > 0.0F ? u.f : -u.f;
}
if (((x > 0.0F) ^ (y > x)) == 0)
u.i++;
else
u.i--;
return u.f;
}

View file

@ -21,24 +21,11 @@
#include <math.h>
double ldexp (double __x, int __y);
/*
* @implemented
*/
double ldexp (double __x, int __y)
long double powl (long double __x,long double __y)
{
register double __val;
#ifdef __GNUC__
__asm __volatile__
("fscale"
: "=t" (__val) : "0" (__x), "u" ((double) __y));
#else
register double __dy = (double)__y;
__asm
{
fld __dy
fld __x
fscale
fstp __val
}
#endif /*__GNUC__*/
return __val;
return pow(__x,__y/2)*pow(__x,__y/2);
}

View file

@ -1,10 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float powf (float x, float y)
{
return (float) pow ((double) x, (double) y);
}

View file

@ -1,11 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float sinf(float _X)
{
return ((float) sin ((double) _X));
}

View file

@ -1,10 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float sinhf (float x)
{
return (float) sinh (x);
}

View file

@ -1,25 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
#include <errno.h>
double
sqrt (double x)
{
if (x < 0.0L )
{
#ifndef _LIBCNT_
errno = EDOM;
#endif
return NAN;
}
else
{
long double res = 0.0L;
asm ("fsqrt" : "=t" (res) : "0" (x));
return res;
}
}

View file

@ -1,23 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
#include <errno.h>
float
sqrtf (float x)
{
if (x < 0.0F )
{
errno = EDOM;
return NAN;
}
else
{
float res = 0.0F;
asm ("fsqrt" : "=t" (res) : "0" (x));
return res;
}
}

View file

@ -1,11 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float tanf(float _X)
{
return ((float)tan((double)_X));
}

View file

@ -1,10 +0,0 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <math.h>
float tanhf (float x)
{
return (float) tanh (x);
}

View file

@ -117,6 +117,11 @@ static CRITICAL_SECTION FILE_cs;
#define LOCK_FILES() do { EnterCriticalSection(&FILE_cs); } while (0)
#define UNLOCK_FILES() do { LeaveCriticalSection(&FILE_cs); } while (0)
FILE *__cdecl __iob_func()
{
return _iob;
}
static inline BOOL is_valid_fd(int fd)
{
return fd >= 0 && fd < fdend && (fdesc[fd].wxflag & WX_OPEN);
@ -447,11 +452,11 @@ static void int_to_base32(int num, char *str)
}
/*********************************************************************
* __iob_func(MSVCRT.@)
* __p__iob(MSVCRT.@)
*/
FILE * CDECL __iob_func(void)
FILE * CDECL __p__iob(void)
{
return &_iob[0];
return _iob;
}
/*********************************************************************

View file

@ -292,12 +292,12 @@ const unsigned short _ctype[] = {
const unsigned short *_pctype = _ctype + 1;
const unsigned short *_pwctype = _ctype + 1;
/*********************************************************************
* __pctype_func (MSVCRT.@)
/*
* @implemented
*/
const unsigned short* __cdecl __pctype_func(void)
const unsigned short **__p__pctype(void)
{
return _pctype;
return &_pctype;
}
/*

View file

@ -5,7 +5,6 @@
* PURPOSE: Implementation of asctime(), _asctime_s()
* PROGRAMERS: Timo Kreuzer
*/
#define MINGW_HAS_SECURE_API
#include <precomp.h>
#include <tchar.h>
#include <time.h>

View file

@ -5,7 +5,7 @@
* PURPOSE: Implementation of ctime, _ctime_s
* PROGRAMERS: Timo Kreuzer
*/
#define MINGW_HAS_SECURE_API
#define MINGW_HAS_SECURE_API 1
#include <tchar.h>
#include <time.h>

View file

@ -10,7 +10,7 @@
#include <sys/utime.h>
#include "bitsfixup.h"
int __cdecl
int
_tutime(const _TCHAR* path, struct _utimbuf *t)
{
int fd = _topen(path, _O_WRONLY | _O_BINARY);