diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-06-21 22:15:22 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-06-21 22:16:29 +0100 |
commit | c6fe403ec714bf29cad9d94196f0db3c80a02235 (patch) | |
tree | 5e5cbf881fef0c9a7fd39eea44a15e61dfc3b9f2 /rts/sm/Storage.c | |
parent | c8370a821bb92ca3846953cb0b37250720087135 (diff) | |
download | haskell-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/Storage.c')
-rw-r--r-- | rts/sm/Storage.c | 22 |
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 |