diff options
author | Andy Wingo <wingo@pobox.com> | 2018-04-12 16:43:57 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-04-12 16:43:57 +0200 |
commit | 7e386bbc70c5b299f7077687722dd5d267e2bd00 (patch) | |
tree | 4281a78d0b932af8d4ab3506a4619a55d87d2369 /libguile/intrinsics.c | |
parent | 1457f4efb3f623711d47f392eba458be310d8401 (diff) | |
download | guile-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.c | 2 |
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", |