summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKerry She <kerry.she@amd.com>2011-05-07 08:37:38 +0000
committerKerry She <Kerry.She@amd.com>2011-05-07 08:37:38 +0000
commit1c85c7794ebf7f98862d9c94541b02b6264c9a7f (patch)
tree7de8da4be498699bc1447093a3a2b808b9f43803
parent8c4b499ba57b78aa69735c95bbd9361d41f1a2c1 (diff)
downloadcoreboot-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
-rw-r--r--src/vendorcode/amd/agesa/Include/gcc-intrin.h2
-rw-r--r--src/vendorcode/amd/agesa/Lib/amdlib.c38
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);
+}
/*---------------------------------------------------------------------------------------*/
/**