https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a67f36888c6e371a88fe0c31f661e2187141a862

commit a67f36888c6e371a88fe0c31f661e2187141a862
Author:     Timo Kreuzer <[email protected]>
AuthorDate: Fri Oct 11 17:07:58 2024 +0300
Commit:     Timo Kreuzer <[email protected]>
CommitDate: Sat Nov 16 20:01:49 2024 +0200

    [VCRUNTIME] Fix emmintrin.h
---
 sdk/include/vcruntime/emmintrin.h | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/sdk/include/vcruntime/emmintrin.h 
b/sdk/include/vcruntime/emmintrin.h
index 2fbb5bd0c9f..2c053599e0d 100644
--- a/sdk/include/vcruntime/emmintrin.h
+++ b/sdk/include/vcruntime/emmintrin.h
@@ -63,13 +63,20 @@ typedef signed char __v16qs 
__attribute__((__vector_size__(16)));
 
 #ifdef __clang__
 #define __ATTRIBUTE_SSE2__ 
__attribute__((__target__("sse2"),__min_vector_width__(128)))
+#define __ATTRIBUTE_MMXSSE2__ 
__attribute__((__target__("mmx,sse2"),__min_vector_width__(128)))
 #else
 #define __ATTRIBUTE_SSE2__ __attribute__((__target__("sse2")))
+#define __ATTRIBUTE_MMXSSE2__ __attribute__((__target__("mmx,sse2")))
 #endif
 #define __INTRIN_INLINE_SSE2 __INTRIN_INLINE __ATTRIBUTE_SSE2__
+#define __INTRIN_INLINE_MMXSSE2 __INTRIN_INLINE __ATTRIBUTE_MMXSSE2__
 
 #endif /* _MSC_VER */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern __m128d _mm_add_sd(__m128d a, __m128d b);
 extern __m128d _mm_add_pd(__m128d a, __m128d b);
 extern __m128d _mm_sub_sd(__m128d a, __m128d b);
@@ -495,12 +502,12 @@ void _mm_pause(void);
 #pragma intrinsic(_mm_loadu_si128)
 #pragma intrinsic(_mm_loadl_epi64)
 //#pragma intrinsic(_mm_undefined_si128)
-#pragma intrinsic(_mm_set_epi64x)
+//#pragma intrinsic(_mm_set_epi64x)
 //#pragma intrinsic(_mm_set_epi64)
 #pragma intrinsic(_mm_set_epi32)
 #pragma intrinsic(_mm_set_epi16)
 #pragma intrinsic(_mm_set_epi8)
-#pragma intrinsic(_mm_set1_epi64x)
+//#pragma intrinsic(_mm_set1_epi64x)
 //#pragma intrinsic(_mm_set1_epi64)
 #pragma intrinsic(_mm_set1_epi32)
 #pragma intrinsic(_mm_set1_epi16)
@@ -904,17 +911,17 @@ __INTRIN_INLINE_SSE2 int _mm_cvttsd_si32(__m128d a)
     return __builtin_ia32_cvttsd2si((__v2df)a);
 }
 
-__INTRIN_INLINE_MMX __m64 _mm_cvtpd_pi32(__m128d a)
+__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvtpd_pi32(__m128d a)
 {
     return (__m64)__builtin_ia32_cvtpd2pi((__v2df)a);
 }
 
-__INTRIN_INLINE_MMX __m64 _mm_cvttpd_pi32(__m128d a)
+__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvttpd_pi32(__m128d a)
 {
     return (__m64)__builtin_ia32_cvttpd2pi((__v2df)a);
 }
 
-__INTRIN_INLINE_SSE __m128d _mm_cvtpi32_pd(__m64 a)
+__INTRIN_INLINE_MMXSSE2 __m128d _mm_cvtpi32_pd(__m64 a)
 {
     return __builtin_ia32_cvtpi2pd((__v2si)a);
 }
@@ -1130,7 +1137,7 @@ __INTRIN_INLINE_SSE2 __m128i _mm_add_epi32(__m128i a, 
__m128i b)
     return (__m128i)((__v4su)a + (__v4su)b);
 }
 
-__INTRIN_INLINE_MMX __m64 _mm_add_si64(__m64 a, __m64 b)
+__INTRIN_INLINE_MMXSSE2 __m64 _mm_add_si64(__m64 a, __m64 b)
 {
     return (__m64)__builtin_ia32_paddq((__v1di)a, (__v1di)b);
 }
@@ -1242,7 +1249,7 @@ __INTRIN_INLINE_SSE2 __m128i _mm_mullo_epi16(__m128i a, 
__m128i b)
     return (__m128i)((__v8hu)a * (__v8hu)b);
 }
 
-__INTRIN_INLINE_MMX __m64 _mm_mul_su32(__m64 a, __m64 b)
+__INTRIN_INLINE_MMXSSE2 __m64 _mm_mul_su32(__m64 a, __m64 b)
 {
     return (__m64)__builtin_ia32_pmuludq((__v2si)a, (__v2si)b);
 }
@@ -1272,7 +1279,7 @@ __INTRIN_INLINE_SSE2 __m128i _mm_sub_epi32(__m128i a, 
__m128i b)
     return (__m128i)((__v4su)a - (__v4su)b);
 }
 
-__INTRIN_INLINE_MMX __m64 _mm_sub_si64(__m64 a, __m64 b)
+__INTRIN_INLINE_MMXSSE2 __m64 _mm_sub_si64(__m64 a, __m64 b)
 {
     return (__m64)__builtin_ia32_psubq((__v1di)a, (__v1di)b);
 }
@@ -1936,6 +1943,8 @@ void _mm_pause(void);
 
 #endif /* _MSC_VER */
 
-
+#ifdef __cplusplus
+} // extern "C"
+#endif
 
 #endif /* _INCLUDED_EMM */

Reply via email to