1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

scm->u64, scm->s64, scm->u64/truncate intrinsics

* libguile/intrinsics.c (scm_to_uint64_truncate): New intrinsic.
  (scm_bootstrap_intrinsics): Init new intrinsics.
* libguile/intrinsics.h: Add scm->u64, scm->u64/truncate, and scm->s64
  as intrinsics, with their corresponding types.
* libguile/vm-engine.c (call-u64<-scm, call-s64<-scm): New intrinsic
  calling ops.
  (scm->u64, scm->s64, scm->u64/truncate): Disable opcodes.
* module/language/cps/reify-primitives.scm (compute-known-primitives):
  Add intrinsics as new macroinstructions.
* module/system/vm/assembler.scm: Declare new intrinsic assemblers.
This commit is contained in:
Andy Wingo 2018-04-12 16:22:40 +02:00
parent 2db7c2df64
commit dd88fc569d
5 changed files with 66 additions and 24 deletions

View file

@ -230,6 +230,9 @@
symbol->keyword
class-of
scm->f64
scm->u64
scm->u64/truncate
scm->s64
u64->s64
s64->u64
cache-current-module!