mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-22 19:44:10 +02:00
Add scm->f64 intrinsic
* libguile/vm-engine.c (call-f64<-scm): New intrinsic kind. (scm->f64): Disable instruction. * libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): * libguile/intrinsics.c (scm_bootstrap_intrinsics): * module/language/cps/reify-primitives.scm (compute-known-primitives): * module/system/vm/assembler.scm (define-f64<-scm-intrinsic): Add scm->f64.
This commit is contained in:
parent
59f1f5a6a7
commit
b9f7621e13
5 changed files with 27 additions and 9 deletions
|
@ -200,6 +200,7 @@
|
|||
emit-string->symbol
|
||||
emit-symbol->keyword
|
||||
emit-class-of
|
||||
emit-scm->f64
|
||||
|
||||
emit-call
|
||||
emit-call-label
|
||||
|
@ -261,7 +262,6 @@
|
|||
emit-srsh/immediate
|
||||
emit-ulsh/immediate
|
||||
emit-make-array
|
||||
emit-scm->f64
|
||||
emit-load-f64
|
||||
emit-f64->scm
|
||||
emit-scm->u64
|
||||
|
@ -1294,6 +1294,9 @@ returned instead."
|
|||
(define-syntax-rule (define-scm<-scm-intrinsic name)
|
||||
(define-macro-assembler (name asm dst src)
|
||||
(emit-call-scm<-scm asm dst src (intrinsic-name->index 'name))))
|
||||
(define-syntax-rule (define-f64<-scm-intrinsic name)
|
||||
(define-macro-assembler (name asm dst src)
|
||||
(emit-call-f64<-scm asm dst src (intrinsic-name->index 'name))))
|
||||
|
||||
(define-scm<-scm-scm-intrinsic add)
|
||||
(define-scm<-scm-uimm-intrinsic add/immediate)
|
||||
|
@ -1312,6 +1315,7 @@ returned instead."
|
|||
(define-scm<-scm-intrinsic string->symbol)
|
||||
(define-scm<-scm-intrinsic symbol->keyword)
|
||||
(define-scm<-scm-intrinsic class-of)
|
||||
(define-f64<-scm-intrinsic scm->f64)
|
||||
|
||||
(define-macro-assembler (begin-program asm label properties)
|
||||
(emit-label asm label)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue