guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 340/437: ARM: Flush cache page by page


From: Andy Wingo
Subject: [Guile-commits] 340/437: ARM: Flush cache page by page
Date: Mon, 2 Jul 2018 05:14:50 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 1cb0e18c7b217066d42ba48d956b5ba64d65725a
Author: Paulo Andrade <address@hidden>
Date:   Sun Dec 21 20:59:27 2014 -0200

    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.
---
 ChangeLog     | 7 +++++++
 lib/jit_arm.c | 9 +++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d10780a..b063de2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2014-12-21 Paulo Andrade <address@hidden>
 
+       * 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 <address@hidden>
+
        * lib/jit_arm.c: Correct check to guard overflow of index
        of constants from program counter.
 
diff --git a/lib/jit_arm.c b/lib/jit_arm.c
index d65d248..3393f85 100644
--- a/lib/jit_arm.c
+++ b/lib/jit_arm.c
@@ -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
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]