1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 22:40:25 +02:00

ARM: Flush cache page by page

* lib/jit_arm.c: Call __clear_cache for every page.
	This should only be required for older boards or
	toolchain setup, but has been reported to be required
	for lightning at some point.
This commit is contained in:
Paulo Andrade 2014-12-21 20:59:27 -02:00
parent f63d064a10
commit 1cb0e18c7b
2 changed files with 12 additions and 4 deletions

View file

@ -1606,12 +1606,13 @@ void
jit_flush(void *fptr, void *tptr)
{
#if defined(__GNUC__)
jit_word_t f, t, s;
jit_uword_t i, f, t, s;
s = sysconf(_SC_PAGE_SIZE);
f = (jit_word_t)fptr & -s;
t = (((jit_word_t)tptr) + s - 1) & -s;
__clear_cache((void *)f, (void *)t);
f = (jit_uword_t)fptr & -s;
t = (((jit_uword_t)tptr) + s - 1) & -s;
for (i = f; i < t; i += s)
__clear_cache((void *)i, (void *)(i + s));
#endif
}