https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a67f36888c6e371a88fe0…
commit a67f36888c6e371a88fe0c31f661e2187141a862
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Fri Oct 11 17:07:58 2024 +0300
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
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 */