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:
parent
f63d064a10
commit
1cb0e18c7b
2 changed files with 12 additions and 4 deletions
|
@ -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>
|
||||
|
||||
* lib/jit_arm.c: Correct check to guard overflow of index
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue