YJIT: Skip checking interrupt_mask (#6825)
This commit is contained in:
parent
67ae3e9738
commit
3e4d1a1dd1
Notes:
git
2022-11-29 15:09:57 +00:00
Merged-By: maximecb <maximecb@ruby-lang.org>
@ -642,12 +642,10 @@ fn gen_check_ints(asm: &mut Assembler, side_exit: CodePtr) {
|
|||||||
// see RUBY_VM_CHECK_INTS(ec) macro
|
// see RUBY_VM_CHECK_INTS(ec) macro
|
||||||
asm.comment("RUBY_VM_CHECK_INTS(ec)");
|
asm.comment("RUBY_VM_CHECK_INTS(ec)");
|
||||||
|
|
||||||
let not_mask = asm.not(Opnd::mem(32, EC, RUBY_OFFSET_EC_INTERRUPT_MASK));
|
// Not checking interrupt_mask since it's zero outside finalize_deferred_heap_pages,
|
||||||
|
// signal_exec, or rb_postponed_job_flush.
|
||||||
asm.test(
|
let interrupt_flag = asm.load(Opnd::mem(32, EC, RUBY_OFFSET_EC_INTERRUPT_FLAG));
|
||||||
Opnd::mem(32, EC, RUBY_OFFSET_EC_INTERRUPT_FLAG),
|
asm.test(interrupt_flag, interrupt_flag);
|
||||||
not_mask,
|
|
||||||
);
|
|
||||||
|
|
||||||
asm.jnz(Target::SideExitPtr(side_exit));
|
asm.jnz(Target::SideExitPtr(side_exit));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user