summaryrefslogtreecommitdiff
path: root/rts/sm
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-06-21 22:15:22 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-06-21 22:16:29 +0100
commitc6fe403ec714bf29cad9d94196f0db3c80a02235 (patch)
tree5e5cbf881fef0c9a7fd39eea44a15e61dfc3b9f2 /rts/sm
parentc8370a821bb92ca3846953cb0b37250720087135 (diff)
downloadhaskell-c6fe403ec714bf29cad9d94196f0db3c80a02235.tar.gz
Revert "UNREG: use __builtin___clear_cache where available"
This reverts commit 6dd1257fdd4d18e84d32e89bf0ec664b3c8f7b93. Change fails vaildation: rts/sm/Storage.c:1351:20: error: error: ‘gcc_clear_cache’ defined but not used [-Werror=unused-function] STATIC_INLINE void gcc_clear_cache(void * begin, void * end)
Diffstat (limited to 'rts/sm')
-rw-r--r--rts/sm/Storage.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c
index 2e2834b4d7..4aa4b12868 100644
--- a/rts/sm/Storage.c
+++ b/rts/sm/Storage.c
@@ -1341,26 +1341,6 @@ StgWord calcTotalCompactW (void)
#include <libkern/OSCacheControl.h>
#endif
-#if defined(__GNUC__)
-/* __clear_cache is a libgcc function.
- * It existed before __builtin___clear_cache was introduced.
- * See Trac #8562.
- */
-extern void __clear_cache(char * begin, char * end);
-
-STATIC_INLINE void gcc_clear_cache(void * begin, void * end)
-{
- /* __builtin___clear_cache is supported since GNU C 4.3.6.
- * We pick 4.4 to simplify condition a bit.
- */
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
- __builtin___clear_cache(begin, end);
-#else
- __clear_cache(begin, end);
-#endif
-}
-#endif /* __GNUC__ */
-
/* On ARM and other platforms, we need to flush the cache after
writing code into memory, so the processor reliably sees it. */
void flushExec (W_ len, AdjustorExecutable exec_addr)
@@ -1376,7 +1356,7 @@ void flushExec (W_ len, AdjustorExecutable exec_addr)
/* For all other platforms, fall back to a libgcc builtin. */
unsigned char* begin = (unsigned char*)exec_addr;
unsigned char* end = begin + len;
- gcc_clear_cache((void*)begin, (void*)end);
+ __clear_cache((void*)begin, (void*)end);
#else
#error Missing support to flush the instruction cache
#endif