X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvendorcode%2Famd%2Fagesa%2FInclude%2Fgcc-intrin.h;h=bacd83c1d696bb1f50f868edc5a0209aa4ef924a;hb=ec40260ade7f9d03978f3a15b5c4e8343d3e6065;hp=26bb46154b1bf152c364eb0163191d38770bed92;hpb=2f81c03d3a0d3183061ca56aecc306995dd648f2;p=coreboot.git diff --git a/src/vendorcode/amd/agesa/Include/gcc-intrin.h b/src/vendorcode/amd/agesa/Include/gcc-intrin.h index 26bb46154..bacd83c1d 100644 --- a/src/vendorcode/amd/agesa/Include/gcc-intrin.h +++ b/src/vendorcode/amd/agesa/Include/gcc-intrin.h @@ -27,8 +27,6 @@ */ #if defined (__GNUC__) -#include - /* I/O intrin functions. */ static __inline__ __attribute__((always_inline)) unsigned char __inbyte(unsigned short Port) @@ -558,6 +556,10 @@ static __inline__ __attribute__((always_inline)) unsigned long long __readfsdwor return value; } +#ifdef __SSE3__ +typedef long long __v2di __attribute__ ((__vector_size__ (16))); +typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); + static __inline__ __attribute__((always_inline)) void _mm_stream_si128_fs2 (void *__A, __m128i __B) { __asm__(".byte 0x64"); // fs prefix @@ -567,9 +569,10 @@ static __inline__ __attribute__((always_inline)) void _mm_stream_si128_fs2 (void static __inline__ __attribute__((always_inline)) void _mm_stream_si128_fs (void *__A, void *__B) { __m128i data; - data = _mm_lddqu_si128 (__B); + data = (__m128i) __builtin_ia32_lddqu ((char const *)__B); _mm_stream_si128_fs2 (__A, data); } +#endif static __inline__ __attribute__((always_inline)) void _mm_clflush_fs (void *__A) { @@ -577,6 +580,16 @@ static __inline__ __attribute__((always_inline)) void _mm_clflush_fs (void *__A) __builtin_ia32_clflush (__A); } +static __inline __attribute__(( __always_inline__)) void _mm_mfence (void) +{ + __builtin_ia32_mfence (); +} + +static __inline __attribute__(( __always_inline__)) void _mm_sfence (void) +{ + __builtin_ia32_sfence (); +} + static __inline__ __attribute__((always_inline)) void __stosb(unsigned char *dest, unsigned char data, size_t count) { __asm__ __volatile__ (