[coreboot] [commit] r6555 - in trunk: . src/vendorcode/amd/agesa/Include
repository service
svn at coreboot.org
Thu May 5 18:45:36 CEST 2011
Author: mjones
Date: Thu May 5 18:45:36 2011
New Revision: 6555
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6555
Log:
Remove AMD Agesa requirement for standard include files
This change modifies Makefile.inc to add the -nostdinc flag to the default
CFLAGS value and removes the test for non-AMD Agesa builds. Other code is
added to the gcc-intrin.h file in the Agesa Include folder to make the
requirement for the standard includes obsolete from the Agesa perspective.
Signed-off-by: Frank Vibrans <frank.vibrans at amd.com>
Acked-by: Marc Jones <marcj303 at gmail.com>
Modified:
trunk/Makefile.inc
trunk/src/vendorcode/amd/agesa/Include/gcc-intrin.h
Modified: trunk/Makefile.inc
==============================================================================
--- trunk/Makefile.inc Tue May 3 09:55:43 2011 (r6554)
+++ trunk/Makefile.inc Thu May 5 18:45:36 2011 (r6555)
@@ -106,16 +106,13 @@
# abspath is a workaround for romcc
INCLUDES += -include $(abspath $(obj)/config.h)
-CFLAGS = $(INCLUDES) -Os -pipe -g
+CFLAGS = $(INCLUDES) -Os -pipe -g -nostdinc
CFLAGS += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
CFLAGS += -Wwrite-strings -Wredundant-decls -Wno-trigraphs
CFLAGS += -Wstrict-aliasing -Wshadow
ifeq ($(CONFIG_WARNINGS_ARE_ERRORS),y)
CFLAGS += -Werror
endif
-ifneq ($(CONFIG_AMD_AGESA),y)
-CFLAGS += -nostdinc
-endif
CFLAGS += -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer
additional-dirs := $(objutil)/cbfstool $(objutil)/romcc $(objutil)/options
Modified: trunk/src/vendorcode/amd/agesa/Include/gcc-intrin.h
==============================================================================
--- trunk/src/vendorcode/amd/agesa/Include/gcc-intrin.h Tue May 3 09:55:43 2011 (r6554)
+++ trunk/src/vendorcode/amd/agesa/Include/gcc-intrin.h Thu May 5 18:45:36 2011 (r6555)
@@ -27,8 +27,6 @@
*/
#if defined (__GNUC__)
-#include <pmmintrin.h>
-
/* I/O intrin functions. */
static __inline__ __attribute__((always_inline)) unsigned char __inbyte(unsigned short Port)
@@ -558,6 +556,10 @@
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_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 @@
__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__ (
More information about the coreboot
mailing list