Commit Graph

30 Commits

Author SHA1 Message Date
Dmitry Borisov
655d3ee756 [VCRUNTIME] Fix string I/O inline asm (#8743)
Avoid clobbering buffer operands when performing string I/O operations.

CORE-20078, CORE-16216, CORE-17977
2026-04-08 19:22:24 +03:00
Timo Kreuzer
d31b043fff [VCRUNTIME] comutil.h: Remove redundant _variant_t::operator VARIANT()
_variant_t inherits from tagVARIANT aka VARIANT and C++ will always prioritize the built-in conversion to the base class over the use of a user-defined conversion operator.

Fixes GCC 13 warning:

In file included from C:/ReactOS/reactos/sdk/include/vcruntime/comdef.h:19,
                 from C:/ReactOS/reactos/sdk/lib/comsupp/comsupp.cpp:16:
C:/ReactOS/reactos/sdk/include/vcruntime/comutil.h:423:3: error: converting '_variant_t' to a base class 'VARIANT' {aka 'tagVARIANT'} will never use a type conversion operator [-Werror=class-conversion]
  423 |   operator VARIANT() const throw();
      |   ^~~~~~~~
2026-03-18 17:29:12 +02:00
Justin Miller
5a36dd6006 [SDK] Small SDK fixes for ARM64 - Prepping for GCC work (#8458)
* [SDK] add ARM64 entry to ioaccess.h
* [SDK] Add arm64 target to win64 spec2def entry
* [SDK] Implement NtCurrentTeb for ARM64
CORE-18200

Co-authored-by: Laura Konopinska <alula@tuta.io>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2025-11-17 05:47:53 -08:00
Timo Kreuzer
d7761b1296 [VCRUNTIME][ASM] Fix definition of x64 _JUMP_BUFFER 2025-08-22 09:12:51 +03:00
Timo Kreuzer
c70f741627 [VCRUNTIME] Add initial intrin0.inl.h 2025-08-03 10:37:24 +03:00
Timo Kreuzer
41478e978c [VCRUNTIME] Add initial arm64intr.h 2025-08-03 10:37:24 +03:00
Timo Kreuzer
55b3e641ef [SDK] immintrin.h: add (f)xsave/restore intrinsics 2025-06-21 07:55:06 +00:00
Timo Kreuzer
2f30fda4f9 [VCRUNTIME] emmintrin.h: don expect _STATIC_ASSERT to be defined
Legacy headers, like the Wine msvcrt headers, do not define _STATIC_ASSERT
2025-05-20 18:13:16 +00:00
Timo Kreuzer
13356a9001 [VCRUNTIME] Fix _rotl64/_rotr64 inline asm
%k is only valid for 32 bit operands.
2025-01-22 18:56:08 +02:00
Timo Kreuzer
a015b91e6b [VCRUNTIME] Fix emmintrin.h for GCC 2025-01-22 18:56:08 +02:00
Timo Kreuzer
478317abcb [PSEH] Fix SEH compatibility macros for dummy PSEH
This is used with Clang, which does have native SEH, but it's broken and can cause the compiler to crash. Previously some code was not handling this and instead used native SEH for clang. Fix this by always using _SEH2_* macros instead of relying on __USE_PSEH2__ to be defined.

Try to improve things
2025-01-14 13:34:24 +02:00
Timo Kreuzer
12139bcde7 [VCRUNTIME] Fix some intrinsics with clang-cl 17
For some unknow reason some intrinsics fail to get inlined. Using extern inline results in a linker error. Change it to static inline, so that there is a static implementation in case it doesn't get inlined
2025-01-14 13:34:24 +02:00
Timo Kreuzer
25723b4239 [VCRUNTIME] Fix a warning with GCC 13 2025-01-14 13:34:24 +02:00
Timo Kreuzer
53f498c968 [SDK][PSEH] Improve PSEH a bit
Add PSEH include dir globally, include pseh2.h from excpt.h and add compatibility macros to reduce hacks in 3rd-perty code.
2024-11-27 10:50:03 +02:00
Timo Kreuzer
9dedcb67e9 [VCRUNTIME][CRT] Change WCHAR_MIN/WCHAR_MAX to match native headers
This avoids conflicting definitions with MS CRT headers.
2024-11-16 20:01:49 +02:00
Timo Kreuzer
53d3cc5f3f [VCRUNTIME] stdint.h: Update include guard for MIN/MAX macros
Include MIN/MAX macros for C++11 and above without the need to define __STDC_LIMIT_MACROS. This is what mingw uses.
2024-11-16 20:01:49 +02:00
Timo Kreuzer
e5633f656f [VCRUNTIME] Add missing definitions 2024-11-16 20:01:49 +02:00
Timo Kreuzer
e202420456 [VCRUNTIME] Allow disabling GCC attributes for SAL 2024-11-16 20:01:49 +02:00
Timo Kreuzer
764cb5b8a5 [VCRUNTIME] Add pmmintrin.h 2024-11-16 20:01:49 +02:00
Timo Kreuzer
a67f36888c [VCRUNTIME] Fix emmintrin.h 2024-11-16 20:01:49 +02:00
Timo Kreuzer
f493606999 [VCRUNTIME] Add immintrin.h 2024-11-16 20:01:49 +02:00
Timo Kreuzer
be8bbcbe92 [VCRUNTIME] Add isa_availability.h 2024-11-16 20:01:49 +02:00
Timo Kreuzer
fb49e9126e [VCRUNTIME] Fix eh.h 2024-11-16 20:01:49 +02:00
Timo Kreuzer
b75d476bb7 [VCRUNTIME] Add __nullptr definition for non-MSVC compilers 2024-11-16 20:01:49 +02:00
Timo Kreuzer
abbc784010 [VCRUNTIME] Stop including crtdefs.h 2024-11-02 12:52:59 +02:00
Timo Kreuzer
2955b1f0e9 [VCRUNTIME] Add some missing definitions to vcruntime*.h 2024-11-02 12:52:59 +02:00
Timo Kreuzer
90e95d15a2 [VCRUNTIME] Move some definitions from crtdefs.h to vadefs.h 2024-11-02 12:52:59 +02:00
Timo Kreuzer
1d01b8c6f0 [VCRUNTIME] Move some definitions from crtdefs.h to vcruntime.h
This reflects what native headers do.
TODO: Move _CRT_ALIGN to corecrt.h
2024-11-02 12:52:59 +02:00
Timo Kreuzer
ff2c7c8720 [VCRUNTIME] Add vcruntime.h and related (mostly empty)
This is for compatibility with some 3rd-party code.
2024-11-02 12:52:59 +02:00
Timo Kreuzer
84344399b5 [VCRUNTIME] Move compiler runtime headers into their own folder
These headers come with the MS compiler. Some of them are standard, like emmintrin.h, others are MS specific like crtdefs.h
This separation will allow using MS CRT headers. Eventually it can allow compiling with the compilers' runtime headers.
2024-11-02 12:52:59 +02:00