summaryrefslogtreecommitdiff
path: root/libguile/intrinsics.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-04-12 16:43:57 +0200
committerAndy Wingo <wingo@pobox.com>2018-04-12 16:43:57 +0200
commit7e386bbc70c5b299f7077687722dd5d267e2bd00 (patch)
tree4281a78d0b932af8d4ab3506a4619a55d87d2369 /libguile/intrinsics.c
parent1457f4efb3f623711d47f392eba458be310d8401 (diff)
downloadguile-7e386bbc70c5b299f7077687722dd5d267e2bd00.tar.gz
u64->scm, s64->scm intrinsics
* libguile/intrinsics.h (u64->scm, s64->scm): New intrinsics. * libguile/intrinsics.c (scm_bootstrap_intrinsics): Initialize new intrinsics. * libguile/vm-engine.c (call-scm<-u64, call-scm<-s64): New intrinsic callers. (u64->scm, s64->scm): Disable instructions. * module/language/cps/reify-primitives.scm (compute-known-primitives): Add new intrinsics as macro-instructions. * module/system/vm/assembler.scm (define-scm<-u64-intrinsic): (define-scm<-s64-intrinsic, u64->scm, s64->scm): Wire up new intrinsics.
Diffstat (limited to 'libguile/intrinsics.c')
-rw-r--r--libguile/intrinsics.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/intrinsics.c b/libguile/intrinsics.c
index d8b58ad25..a200995bf 100644
--- a/libguile/intrinsics.c
+++ b/libguile/intrinsics.c
@@ -104,6 +104,8 @@ scm_bootstrap_intrinsics (void)
scm_vm_intrinsics.scm_to_u64 = scm_to_uint64;
scm_vm_intrinsics.scm_to_u64_truncate = scm_to_uint64_truncate;
scm_vm_intrinsics.scm_to_s64 = scm_to_int64;
+ scm_vm_intrinsics.u64_to_scm = scm_from_uint64;
+ scm_vm_intrinsics.s64_to_scm = scm_from_int64;
scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
"scm_init_intrinsics",