mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 01:30:27 +02:00
load-f64, etc take immediate parameters
* module/language/cps/compile-bytecode.scm (compile-function): Make load-f64, load-s64, and load-u64 take an immediate parameter instead of a CPS value. * module/language/cps/effects-analysis.scm: Remove CPS argument from immediate load instructions. * module/language/cps/slot-allocation.scm (compute-needs-slot): Remove special case for load-64 etc. * module/language/cps/specialize-numbers.scm (specialize-u64-scm-comparison): Adapt. * module/language/cps/specialize-primcalls.scm (specialize-primcalls): Adapt. * module/language/cps/types.scm (define-type-inferrer*): Also take param argument. (define-type-inferrer, define-predicate-inferrer): Adapt. (define-type-inferrer/param): New helper. (load-f64, load-s64, load-u64): Adapt inferrers to pass on value from param. * module/language/cps/utils.scm (compute-constant-values): Adapt.
This commit is contained in:
parent
4fb538e90e
commit
6be04684e6
7 changed files with 31 additions and 27 deletions
|
@ -206,22 +206,22 @@
|
|||
(emit-builtin-ref asm (from-sp dst) (constant name)))
|
||||
(($ $primcall 'scm->f64 #f (src))
|
||||
(emit-scm->f64 asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'load-f64 #f (src))
|
||||
(emit-load-f64 asm (from-sp dst) (constant src)))
|
||||
(($ $primcall 'load-f64 val ())
|
||||
(emit-load-f64 asm (from-sp dst) val))
|
||||
(($ $primcall 'f64->scm #f (src))
|
||||
(emit-f64->scm asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'scm->u64 #f (src))
|
||||
(emit-scm->u64 asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'scm->u64/truncate #f (src))
|
||||
(emit-scm->u64/truncate asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'load-u64 #f (src))
|
||||
(emit-load-u64 asm (from-sp dst) (constant src)))
|
||||
(($ $primcall 'load-u64 val ())
|
||||
(emit-load-u64 asm (from-sp dst) val))
|
||||
(($ $primcall (or 'u64->scm 'u64->scm/unlikely) #f (src))
|
||||
(emit-u64->scm asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'scm->s64 #f (src))
|
||||
(emit-scm->s64 asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'load-s64 #f (src))
|
||||
(emit-load-s64 asm (from-sp dst) (constant src)))
|
||||
(($ $primcall 'load-s64 val ())
|
||||
(emit-load-s64 asm (from-sp dst) val))
|
||||
(($ $primcall (or 's64->scm 's64->scm/unlikely) #f (src))
|
||||
(emit-s64->scm asm (from-sp dst) (from-sp (slot src))))
|
||||
(($ $primcall 'bv-length #f (bv))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue