[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 07/09: Fix atomics usage in handle-interrupts JIT.
From: |
Andy Wingo |
Subject: |
[Guile-commits] 07/09: Fix atomics usage in handle-interrupts JIT. |
Date: |
Mon, 27 May 2019 08:27:05 -0400 (EDT) |
wingo pushed a commit to branch master
in repository guile.
commit e8d34258beab2799951e16d21d547299d4659364
Author: Andy Wingo <address@hidden>
Date: Mon May 27 12:08:58 2019 +0200
Fix atomics usage in handle-interrupts JIT.
* libguile/jit.c (compile_handle_interrupts): Use atomics in
handle-interrupts.
---
libguile/jit.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/libguile/jit.c b/libguile/jit.c
index 20116c1..6cea8bb 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -3010,16 +3010,8 @@ compile_handle_interrupts (scm_jit_state *j)
void *again = jit_address (j->jit);
-#if defined(__i386__) || defined(__x86_64__)
- /* Disassembly of atomic_ref_scm is just a mov. */
- jit_ldxi (j->jit, T0, THREAD, thread_offset_pending_asyncs);
-#else
- emit_call_1 (j, scm_vm_intrinsics.atomic_ref_scm,
- jit_operand_addi (thread_operand (),
- thread_offset_pending_asyncs));
- emit_retval (j, T0);
- restore_reloadable_register_state (j, saved_state);
-#endif
+ jit_addi (j->jit, T0, THREAD, thread_offset_pending_asyncs);
+ jit_ldr_atomic (j->jit, T0, T0);
jit_reloc_t none_pending = jit_beqi (j->jit, T0, SCM_UNPACK (SCM_EOL));
jit_ldxi_i (j->jit, T0, THREAD, thread_offset_block_asyncs);
jit_reloc_t blocked = jit_bnei (j->jit, T0, 0);
- [Guile-commits] branch master updated (8b8ce79 -> 09e4fc4), Andy Wingo, 2019/05/27
- [Guile-commits] 01/09: Switch to use atomic_compare_exchange_strong, Andy Wingo, 2019/05/27
- [Guile-commits] 06/09: Inline the atomic intrinsics, Andy Wingo, 2019/05/27
- [Guile-commits] 08/09: Fix accidental change to ARMv7 ldr, Andy Wingo, 2019/05/27
- [Guile-commits] 02/09: Correctly handle overflow when emitting literal pools, Andy Wingo, 2019/05/27
- [Guile-commits] 04/09: Merge remote-tracking branch 'lightening/master', Andy Wingo, 2019/05/27
- [Guile-commits] 07/09: Fix atomics usage in handle-interrupts JIT.,
Andy Wingo <=
- [Guile-commits] 05/09: Use new atomic instructions from lightening, Andy Wingo, 2019/05/27
- [Guile-commits] 09/09: Merge remote-tracking branch 'lightening/master', Andy Wingo, 2019/05/27
- [Guile-commits] 03/09: Add atomic operations, Andy Wingo, 2019/05/27