diff options
author | Kerry She <kerry.she@amd.com> | 2011-05-07 08:37:38 +0000 |
---|---|---|
committer | Kerry She <Kerry.She@amd.com> | 2011-05-07 08:37:38 +0000 |
commit | 1c85c7794ebf7f98862d9c94541b02b6264c9a7f (patch) | |
tree | 7de8da4be498699bc1447093a3a2b808b9f43803 /src/vendorcode | |
parent | 8c4b499ba57b78aa69735c95bbd9361d41f1a2c1 (diff) | |
download | coreboot-1c85c7794ebf7f98862d9c94541b02b6264c9a7f.tar.xz |
1. move _mm_clflush_fs() to __SSE3__ block, because __builtin_ia32_sfence() is the sse built-in function
2. move the Amd Lib functions using sse build-in functions to __SSE3__ block
Signed-off-by: Kerry She <kerry.she@amd.com>
Acked-by: Marc Jones <marcj303@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6558 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/vendorcode')
-rw-r--r-- | src/vendorcode/amd/agesa/Include/gcc-intrin.h | 2 | ||||
-rw-r--r-- | src/vendorcode/amd/agesa/Lib/amdlib.c | 38 |
2 files changed, 22 insertions, 18 deletions
diff --git a/src/vendorcode/amd/agesa/Include/gcc-intrin.h b/src/vendorcode/amd/agesa/Include/gcc-intrin.h index bacd83c1d6..58438b9815 100644 --- a/src/vendorcode/amd/agesa/Include/gcc-intrin.h +++ b/src/vendorcode/amd/agesa/Include/gcc-intrin.h @@ -572,7 +572,6 @@ static __inline__ __attribute__((always_inline)) void _mm_stream_si128_fs (void 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) { @@ -589,6 +588,7 @@ static __inline __attribute__(( __always_inline__)) void _mm_sfence (void) { __builtin_ia32_sfence (); } +#endif static __inline__ __attribute__((always_inline)) void __stosb(unsigned char *dest, unsigned char data, size_t count) { diff --git a/src/vendorcode/amd/agesa/Lib/amdlib.c b/src/vendorcode/amd/agesa/Lib/amdlib.c index 1a30dd2f7a..192e34d1e5 100644 --- a/src/vendorcode/amd/agesa/Lib/amdlib.c +++ b/src/vendorcode/amd/agesa/Lib/amdlib.c @@ -401,6 +401,8 @@ LibAmdSimNowEnterDebugger ( }; ((VOID (*)(VOID)) (size_t) opcode) (); // call the function } + +#ifdef __SSE3__ VOID F10RevDProbeFilterCritical ( IN PCI_ADDR PciAddress, IN UINT32 PciRegister @@ -416,23 +418,7 @@ VOID F10RevDProbeFilterCritical ( _mm_mfence (); __writemsr (0xC001001F, msrsave); } -VOID -IdsOutPort ( - IN UINT32 Addr, - IN UINT32 Value, - IN UINT32 Flag - ) -{ - __outdword ((UINT16) Addr, Value); -} -VOID -StopHere ( - VOID - ) -{ - VOLATILE UINTN x = 1; - while (x); -} + VOID LibAmdCLFlush ( IN UINT64 Address, @@ -450,7 +436,25 @@ LibAmdCLFlush ( } RestoreHwcr (hwcrSave); } +#endif //__SSE3__ +VOID +IdsOutPort ( + IN UINT32 Addr, + IN UINT32 Value, + IN UINT32 Flag + ) +{ + __outdword ((UINT16) Addr, Value); +} +VOID +StopHere ( + VOID + ) +{ + VOLATILE UINTN x = 1; + while (x); +} /*---------------------------------------------------------------------------------------*/ /** |