[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 383/437: ia64: Implement cache flush.
From: |
Andy Wingo |
Subject: |
[Guile-commits] 383/437: ia64: Implement cache flush. |
Date: |
Mon, 2 Jul 2018 05:15:00 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit f48e07b58b2a62dfdab3779e21e4802922f1bd29
Author: Paulo Andrade <address@hidden>
Date: Sun May 10 16:22:26 2015 -0300
ia64: Implement cache flush.
* lib/jit_ia64.c: Implement inline assembly cache flush,
required on multiprocessor systems.
---
ChangeLog | 5 +++++
lib/jit_ia64.c | 7 +++++++
2 files changed, 12 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 2914410..2e1d363 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-06-10 Paulo Andrade <address@hidden>
+
+ * lib/jit_ia64.c: Implement inline assembly cache flush,
+ required on multiprocessor systems.
+
2015-06-06 Paulo Andrade <address@hidden>
* lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c:
diff --git a/lib/jit_ia64.c b/lib/jit_ia64.c
index dc4ac85..172050b 100644
--- a/lib/jit_ia64.c
+++ b/lib/jit_ia64.c
@@ -1494,7 +1494,14 @@ jit_flush(void *fptr, void *tptr)
s = sysconf(_SC_PAGE_SIZE);
f = (jit_word_t)fptr & -s;
t = (((jit_word_t)tptr) + s - 1) & -s;
+# if 0
__clear_cache((void *)f, (void *)t);
+# else
+ /* __clear_cache is a noop in (old?) gcc, but cache flush is
+ * required on a multi processor Linux system. */
+ for (s = f; s < t; s += 32)
+ asm volatile("fc %0" :: "r"(s) : "memory");
+# endif
#endif
}
- [Guile-commits] 327/437: Force creation of the m4 directory on a clean checkout, (continued)
- [Guile-commits] 327/437: Force creation of the m4 directory on a clean checkout, Andy Wingo, 2018/07/02
- [Guile-commits] 314/437: Add back files missed when reapplying patches, Andy Wingo, 2018/07/02
- [Guile-commits] 354/437: Implement the jit_arg_register_p predicate., Andy Wingo, 2018/07/02
- [Guile-commits] 381/437: Remove wrong comment after cut and paste, Andy Wingo, 2018/07/02
- [Guile-commits] 209/437: Correct float division and LX with stop code generation., Andy Wingo, 2018/07/02
- [Guile-commits] 280/437: Implement the new jit_set_code interface., Andy Wingo, 2018/07/02
- [Guile-commits] 284/437: ARM: Do not emit a nop stack adjust instruction., Andy Wingo, 2018/07/02
- [Guile-commits] 345/437: PPC: Implement and use mcrxr emulation by default, Andy Wingo, 2018/07/02
- [Guile-commits] 246/437: Use the logic to workaround float NaN and Inf Hercules bug conditional, Andy Wingo, 2018/07/02
- [Guile-commits] 363/437: Correct typo, Andy Wingo, 2018/07/02
- [Guile-commits] 383/437: ia64: Implement cache flush.,
Andy Wingo <=
- [Guile-commits] 371/437: Correct read of freed memory, Andy Wingo, 2018/07/02
- [Guile-commits] 342/437: x86: Implement support for the x32 abi, Andy Wingo, 2018/07/02
- [Guile-commits] 416/437: Build and pass all tests on 32 and 64 bit sparc, Andy Wingo, 2018/07/02
- [Guile-commits] 400/437: Correct missing jit_unget_reg calls, Andy Wingo, 2018/07/02
- [Guile-commits] 418/437: Correct typo and values in jit_sparc-sz.c, Andy Wingo, 2018/07/02
- [Guile-commits] 359/437: ARM: Regenerate size table for hard float armv7 or newer., Andy Wingo, 2018/07/02
- [Guile-commits] 396/437: Move definition of jit_va_ codes, cosmetic change., Andy Wingo, 2018/07/02
- [Guile-commits] 407/437: Update copyright year, Andy Wingo, 2018/07/02
- [Guile-commits] 435/437: Add GUILE_ENABLE_JIT macro, Andy Wingo, 2018/07/02
- [Guile-commits] 367/437: X86: No longer make st7 available as a temporary, Andy Wingo, 2018/07/02