From 3fc79ca2c461e43020fbeb484daf2b77f7cfcf14 Mon Sep 17 00:00:00 2001
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 6 Apr 2004 18:05:05 +0000
Subject: [PATCH] 2004-04-06  H.J. Lu  <hongjiu.lu@intel.com>

	* include/private/gcconfig.h (PREFETCH): Use __builtin_prefetch
	for gcc >= 3.0.
	(PREFETCH_FOR_WRITE): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80459 138bc75d-0d04-0410-961f-82ee72b054a4
---
 boehm-gc/ChangeLog                  | 6 ++++++
 boehm-gc/include/private/gcconfig.h | 8 ++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index a8409143c1e1..182fef1cab35 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* include/private/gcconfig.h (PREFETCH): Use __builtin_prefetch
+	for gcc >= 3.0.
+	(PREFETCH_FOR_WRITE): Likewise.
+
 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
 
 	* configure.ac: Bump AC_PREREQ to 2.59.
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index a13ad2ef835f..32b6e482cfe9 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -1801,10 +1801,10 @@
 	     extern int etext[];
 #            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
 #       endif
-#	define PREFETCH(x) \
-	  __asm__ __volatile__ ("	prefetch	%0": : "m"(*(char *)(x)))
-#	define PREFETCH_FOR_WRITE(x) \
-	  __asm__ __volatile__ ("	prefetchw	%0": : "m"(*(char *)(x)))
+#	if defined(__GNUC__) && __GNUC__ >= 3
+#	    define PREFETCH(x) __builtin_prefetch ((x), 0, 0)
+#	    define PREFETCH_FOR_WRITE(x) __builtin_prefetch ((x), 1)
+#	endif
 #   endif
 # endif
 
-- 
GitLab