Timo Kreuzer
c507b701ab
[CRT:MATH] Import frexp from musl
2025-06-30 09:19:47 +00:00
Timo Kreuzer
b734e3ba63
[CRT:MATH] Move some math functions from ucrt to crt
2025-06-30 09:19:47 +00:00
Timo Kreuzer
a9ee20cb9a
[CRT:MATH] Import nextafter, nextafterf and nexttowardf from musl
...
Note: On Windows, where a long double is the same as a double, nextafterl is the same as nextafter, nexttowardl is the same as nexttoward.
Also nexttoward is the same as nextafter.
2025-06-30 09:19:47 +00:00
Timo Kreuzer
5c26ccdb29
[CRT:MATH] Import scalbn/scalbnf from musl
2025-06-30 09:19:47 +00:00
Timo Kreuzer
3f71ab80ad
[CRT:MATH] Implement _isnan and _isnanf
2025-06-30 09:19:47 +00:00
Timo Kreuzer
e01231bd49
[CRT:MATH] Implement _finite, _finitef
2025-06-30 09:19:47 +00:00
Timo Kreuzer
50028685dc
[CRT:MATH] Implement _dsign and _dsignf
2025-06-30 09:19:47 +00:00
Timo Kreuzer
0e5d6af68e
[CRT:MATH] Implement x86 sse2 math functions
...
These are just wrappers around the normal functions and lack any optimization.
2025-06-30 09:19:47 +00:00
Timo Kreuzer
5c6912f561
[CRT][UCRTBASE] Add round/roundf
2025-06-30 09:19:47 +00:00
Timo Kreuzer
d736b55644
[CRT:MATH] Fix a bug in _handle_error
2025-06-30 09:19:47 +00:00
Timo Kreuzer
d74ab36324
[UCRTSUPPORT] Add ucrtsupport library
...
This library is compiled from our old CRT sources to supplement missing UCRT code.
2025-01-26 18:08:55 +02:00
Timo Kreuzer
f80d978fc0
[CRT] Fix link issues with __ftol2 when compiling for NT6
...
__ftol2 is exported from msvcrt on NT6+, not from ntdll for some reason. So native apps still need to statically link _ftol2 and _ftoul2_legacy, but apps linking to msvcrt only need to statically link _ftoul2_legacy (via msvcrtex), when on NT6+.
2024-08-30 06:29:13 +03:00
Timo Kreuzer
f637e6b809
[CRT] Implement __ftoul2_legacy
...
This is used by CL v19.41+. It replicates the behavior of the inline assembly code that previous CL versions generated. According to tests it works the same as with previous VS versions.
2024-08-27 21:34:50 +03:00
Timo Kreuzer
43beb913da
[CRT] Move rand to stdlib, where it belongs
2024-04-25 05:25:12 +02:00
Timo Kreuzer
a34f1ed03c
[CRT] Make ML based asm code GAS compatible
...
Our transpiler asmpp cannot handle rip relative addressing for "[symbol]".
2023-11-10 19:20:24 +02:00
Timo Kreuzer
dacbc603b6
[CRT] Add simplistic fallback implementation of sincos to make GCC 11 happy
2022-12-01 15:21:59 +02:00
Timo Kreuzer
28c41b7d22
[CRT] Replace amd64 math functions/stubs with libm
2022-12-01 15:21:59 +02:00
Timo Kreuzer
1ad4106b84
[CRT] Add basic version of handle_error
2022-12-01 15:21:59 +02:00
Timo Kreuzer
3d497ca883
[CRT] Improve _matherr handling
2022-12-01 15:21:59 +02:00
Timo Kreuzer
4d50f81419
[CRT] Implement _set_statfp
2022-12-01 15:21:59 +02:00
Timo Kreuzer
7277e26944
[LIBM] Fix ldexp.c / ldexpf.c
2022-12-01 15:21:59 +02:00
Timo Kreuzer
4f348ee971
[LIBM] Add ldexp.c and ldexpf.c from aocl-libm-ose
2022-12-01 15:21:59 +02:00
Timo Kreuzer
105426b81a
[LIBM] Fix up some asm files
...
This allows to compile them with GAS after translation
2022-12-01 15:21:59 +02:00
Timo Kreuzer
af6d3bb18f
[LIBM] Convert tables from asm to C
2022-12-01 15:21:59 +02:00
Timo Kreuzer
9e8ed3f817
[LIBM] Fix build
2022-12-01 15:21:59 +02:00
Timo Kreuzer
4afb647c78
[LIBM] Import win-libm from AMD
...
Source: https://github.com/amd/win-libm
2022-12-01 15:21:59 +02:00
Timo Kreuzer
3aa3b3af56
[CRT] Implement portable ceil/floor
2022-08-26 00:44:46 +02:00
Timo Kreuzer
bc9409daba
[CRT] Add round and roundf and add it to msvcrtex to make clang v14 happy
2022-07-17 17:32:32 +02:00
Timo Kreuzer
b85afdfd25
[CRT] Implement portable + amd64 asm version of fabs/fabsf
...
Note: older versions of ML64 are broken and don't understand the register form of movq.
See https://stackoverflow.com/questions/24789339/move-quadword-between-xmm-and-general-purpose-register-in-ml64
2022-06-26 19:13:47 +02:00
Justin Miller
be223b9de7
[SDK] Allow ARM64 MSVC to complete configuration ( #4045 )
...
- Add some of the missing CMake adjustments to continue the configure and compile process with ARM64 MSVC
- Created quick stubs for the functions in SDK needed to finish the configuration process
- Put in an ARM64 option for spec2def
CORE-17518 CORE-17615
2021-10-22 18:52:32 +03:00
Hermès Bélusca-Maïto
9393fc320e
[FORMATTING] Remove trailing whitespace. Addendum to 34593d93
.
...
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Roman Masanin
9c4e3234ba
[CRT/ARM] Integer to float conversion implementation ( #3866 )
...
CORE-17713 CORE-17706 CORE-17604
2021-09-09 16:02:03 +03:00
Timo Kreuzer
8043b76e85
[CRT] Improve CMake files
2021-08-04 02:03:07 +02:00
Roman Masanin
be3c532bf4
[ARM/CRT] Refactor several functions ( #3865 )
...
- Make __fto64 function more readable
- Call worker function directly for __rt_sdiv/udiv
- Adapt __rt_sdiv64/udiv64 asm shims accordingly
- Add header files to CMake source list
CORE-17607 CORE-17614 CORE-17703 CORE-17604
Addendum to f2bc1f0e
, e448094e
and 54406bf4
.
2021-07-31 11:24:03 +03:00
Stanislav Motylkov
54406bf4f0
[CRT/ARM] __fto64: Assembly wrappers are actually not needed anymore
...
Addendum to e448094e
. CORE-17703 CORE-17604
2021-07-30 22:48:03 +03:00
Roman Masanin
e448094e74
[CRT/ARM] Implement __dtoi64/dtou64/stoi64/stou64 functions ( #3848 )
...
CORE-17703 CORE-17604
2021-07-30 14:20:23 +03:00
Roman Masanin
fd8baca9f2
[CRT/ARM] Fix modulus on division ( #3856 )
...
This fixes all tests added in 759bdedc
. Addendum to f2bc1f0e
.
CORE-17607 CORE-17614 CORE-17604
2021-07-29 13:44:16 +03:00
Timo Kreuzer
da2a5673e7
[CRT] Fix _matherror and _setusermatherror
...
We previously used 2 different versions: one from wine and one from mingw-w64.
The former was used in msvcrt, the latter was statically compiled into the executable. When using MS libs, there is only one _matherr, which is statically linked into the executable and does nothing (it's not really a function for users to be called).
_setusermatherror should only exist in msvcrt and not statically, which wouldn't work at all.
2021-07-27 22:08:58 +02:00
Timo Kreuzer
f1e2c6cbd0
[CRT/arm] Update file headers to new format and change license to MIT
...
* Add Raman Masanin to copyrights
* Add some comments
* Return long long from __rt_sdiv (no functional difference, just for clarity)
2021-07-27 14:42:55 +02:00
Roman Masanin
f2bc1f0e11
__rt_div fixes for arm ( #3843 )
...
[CRT/arm] Fix __rt_udiv and __rt_sdiv
2021-07-24 20:23:58 +02:00
Timo Kreuzer
8c4aff39a8
[CRT] Refactor CMake files
2021-07-20 23:13:03 +02:00
Timo Kreuzer
aea4cfba55
[CRT] Add some missing #pragma function
2021-07-11 21:45:29 +02:00
Victor Perevertkin
34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces
2021-06-11 15:33:08 +03:00
Stanislav Motylkov
11687e9e43
[CRT][ARM] Fix uninitialized variables caught by RTC
...
CORE-17613
2021-06-02 13:18:40 +03:00
Timo Kreuzer
db0c59cbd4
[CRT] Use the asm version of sqrt on amd64
2021-05-28 11:52:42 +02:00
Serge Gautherie
b8ae966634
[CRT] exp2*.c: Add an explicit type for 'TWO' variable
...
Addendum to 199adee
.
2021-04-27 10:36:54 +03:00
Jérôme Gardou
199adee3fe
[CRT] Add a generic C version of exp2(f) and use it for all architecture
2021-04-09 14:59:07 +02:00
Hervé Poussineau
bbf7b5b72a
[CRT/x64] Correctly implement fabs for GCC
...
Note that MSVC does not recognize 'fabs' as a valid label name.
See fee844b6ff
and 2f7cf157d8
2021-02-01 19:57:12 +01:00
Jérôme Gardou
15c9f63b65
[MSVCRTEX] Add some floating point functions for CLang build
...
Clang makes optimisations requiring functions not present in msvcrt
2020-11-16 16:58:10 +01:00
Timo Kreuzer
2aca4b2795
[ASM] Fix boot with VS 16.7.3 / MSVC 19.27
...
See https://developercommunity.visualstudio.com/content/problem/1180800/ml-x86-assume-directive-causes-invalid-code-genera.html
2020-09-12 15:01:04 +02:00