1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-05 06:50:21 +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

@ -1,3 +1,10 @@
2014-12-21 Paulo Andrade <pcpa@gnu.org>
* 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.
2014-12-21 Paulo Andrade <pcpa@gnu.org> 2014-12-21 Paulo Andrade <pcpa@gnu.org>
* lib/jit_arm.c: Correct check to guard overflow of index * lib/jit_arm.c: Correct check to guard overflow of index

View file

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