mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-22 20:40:29 +02:00
Revert "Fix atomics usage in handle-interrupts JIT."
This reverts commit e8d34258be
.
This commit is contained in:
parent
49fa49c42d
commit
d0a95bfbe8
1 changed files with 10 additions and 2 deletions
|
@ -3010,8 +3010,16 @@ compile_handle_interrupts (scm_jit_state *j)
|
||||||
|
|
||||||
void *again = jit_address (j->jit);
|
void *again = jit_address (j->jit);
|
||||||
|
|
||||||
jit_addi (j->jit, T0, THREAD, thread_offset_pending_asyncs);
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
jit_ldr_atomic (j->jit, T0, T0);
|
/* 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_reloc_t none_pending = jit_beqi (j->jit, T0, SCM_UNPACK (SCM_EOL));
|
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_ldxi_i (j->jit, T0, THREAD, thread_offset_block_asyncs);
|
||||||
jit_reloc_t blocked = jit_bnei (j->jit, T0, 0);
|
jit_reloc_t blocked = jit_bnei (j->jit, T0, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue