summaryrefslogtreecommitdiff
path: root/libguile/vm-engine.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-26 20:45:26 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-26 20:45:26 +0200
commit0ce9a1f870d8e5d20c4f89bc0e5959fc0aa6fe03 (patch)
tree4263df6ecce9c7a5cb32b3112883de6928054055 /libguile/vm-engine.c
parent51e71a473f8ff114522a1b6fa054bdebeefb0575 (diff)
downloadguile-0ce9a1f870d8e5d20c4f89bc0e5959fc0aa6fe03.tar.gz
VM throw uses intrinsics
* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Add intrinsics for throw, throw/value, and throw/value+data. * libguile/intrinsics.c (throw_, throw_with_value): (throw_with_value_and_data): And here they are. * libguile/vm-engine.c (throw, throw/value, throw/value+data): Use intrinsics. * libguile/vm.c: Remove vm_throw et al.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r--libguile/vm-engine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 71b3dfd5a..18ae5a638 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -832,7 +832,7 @@ VM_NAME (scm_thread *thread, jmp_buf *registers, int resume)
args = SP_REF (b);
SYNC_IP ();
- vm_throw (key, args);
+ scm_vm_intrinsics.throw_ (key, args);
abort (); /* never reached */
}
@@ -861,7 +861,7 @@ VM_NAME (scm_thread *thread, jmp_buf *registers, int resume)
key_subr_and_message = SCM_PACK (key_subr_and_message_bits);
SYNC_IP ();
- vm_throw_with_value (val, key_subr_and_message);
+ scm_vm_intrinsics.throw_with_value (val, key_subr_and_message);
abort (); /* never reached */
}
@@ -890,7 +890,7 @@ VM_NAME (scm_thread *thread, jmp_buf *registers, int resume)
key_subr_and_message = SCM_PACK (key_subr_and_message_bits);
SYNC_IP ();
- vm_throw_with_value_and_data (val, key_subr_and_message);
+ scm_vm_intrinsics.throw_with_value_and_data (val, key_subr_and_message);
abort (); /* never reached */
}