diff options
author | Andy Wingo <wingo@pobox.com> | 2016-11-17 22:13:53 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-11-17 22:13:53 +0100 |
commit | 4985ef13e68c83adf3e83f2c981205806ed9b621 (patch) | |
tree | b5027ca3f4c0ce3c904c1e015ddae6d924db2c56 /libguile/async.c | |
parent | ca74e3fae52dd23f8e8f12194d07041e207f68e7 (diff) | |
download | guile-4985ef13e68c83adf3e83f2c981205806ed9b621.tar.gz |
Explicit interrupt handling in VM
* libguile/foreign.c (CODE, get_foreign_stub_code): Add explicit
handle-interrupts and return-values calls, as foreign-call will fall
through.
* libguile/gsubr.c (A, B, C, AB, AC, BC, ABC, SUBR_STUB_CODE)
(scm_i_primitive_call_ip): Same.
* libguile/vm-engine.c (VM_HANDLE_INTERRUPTS): Inline into
handle-interrupts.
(RETURN_ONE_VALUE, RETURN_VALUE_LIST): Inline into callers, and fall
through instead of returning.
(BR_BINARY, BR_UNARY, BR_ARITHMETIC, BR_U64_ARITHMETIC): Remove
conditional VM_HANDLE_INTERRUPTS, as the compiler already inserted the
handle-interrupts calls if needed.
(vm_engine): Remove VM_HANDLE_INTERRUPTS invocations except in the
handle-interrupts instruction.
Diffstat (limited to 'libguile/async.c')
0 files changed, 0 insertions, 0 deletions