diff options
author | Andy Wingo <wingo@pobox.com> | 2018-09-14 09:28:36 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-09-14 09:34:31 +0200 |
commit | 0ccd2d0d9ed6b4e233b0cad99d66d57e99ea99c6 (patch) | |
tree | ddd8384ce6b3ffcc510e490ffc1dff4c910b3ee7 /libguile/vm-engine.c | |
parent | bf31fe4cf6d75c96cc4ef29fea8808dd539da361 (diff) | |
download | guile-0ccd2d0d9ed6b4e233b0cad99d66d57e99ea99c6.tar.gz |
Remove hook intrinsics: hooks are just for the VM
* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Remove VM hook
intrinsics, now that we're going to rely on the interpreter for
stepping and breakpoints.
* libguile/jit.c (struct scm_jit_state): Remove "hooks_enabled" member,
now that we won't JIT. Remove all code related to calling hooks.
* libguile/vm-engine.c (RUN_HOOK): Call hooks directly instead of
through intrinsics. Use precise per-hook enable flags.
* libguile/vm.c (DEFINE_INVOKE_HOOK): New helper. Use to define the
hook invokers.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r-- | libguile/vm-engine.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c index 2d9be38ab..7ce306caa 100644 --- a/libguile/vm-engine.c +++ b/libguile/vm-engine.c @@ -110,23 +110,23 @@ #endif #if VM_USE_HOOKS -#define RUN_HOOK(h) \ - do { \ - if (SCM_UNLIKELY (VP->trace_level)) \ - { \ - SYNC_IP (); \ - CALL_INTRINSIC (invoke_##h##_hook, (thread)); \ - CACHE_SP (); \ - } \ +#define RUN_HOOK(H, h) \ + do { \ + if (SCM_UNLIKELY (VP->hooks_enabled[SCM_VM_##H##_HOOK])) \ + { \ + SYNC_IP (); \ + invoke_##h##_hook (thread); \ + CACHE_SP (); \ + } \ } while (0) #else -#define RUN_HOOK(h) +#define RUN_HOOK(H, h) #endif -#define APPLY_HOOK() RUN_HOOK (apply) -#define RETURN_HOOK() RUN_HOOK (return) -#define NEXT_HOOK() RUN_HOOK (next) -#define ABORT_HOOK() RUN_HOOK (abort) +#define APPLY_HOOK() RUN_HOOK (APPLY, apply) +#define RETURN_HOOK() RUN_HOOK (RETURN, return) +#define NEXT_HOOK() RUN_HOOK (NEXT, next) +#define ABORT_HOOK() RUN_HOOK (ABORT, abort) |