summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/language/cps/constructors.scm22
1 files changed, 7 insertions, 15 deletions
diff --git a/module/language/cps/constructors.scm b/module/language/cps/constructors.scm
index ce6ec84b2..c35ac7475 100644
--- a/module/language/cps/constructors.scm
+++ b/module/language/cps/constructors.scm
@@ -61,25 +61,17 @@
(with-cps out
(let$ next (initialize vec args (1+ n)))
(letk knext ($kargs () () ,next))
- (letv u64)
- (letk kunbox ($kargs ('idx) (u64)
- ($continue knext src
- ($primcall 'vector-set! #f (vec u64 arg)))))
- ($ (with-cps-constants ((idx n))
- (build-term ($continue kunbox src
- ($primcall 'scm->u64 #f (idx))))))))))
+ (build-term
+ ($continue knext src
+ ($primcall 'vector-set!/immediate n (vec arg))))))))
(with-cps out
(letv vec)
(let$ body (initialize vec args 0))
(letk kalloc ($kargs ('vec) (vec) ,body))
- ($ (with-cps-constants ((len (length args))
- (init #f))
- (letv u64)
- (letk kunbox ($kargs ('len) (u64)
- ($continue kalloc src
- ($primcall 'make-vector #f (u64 init)))))
- (build-term ($continue kunbox src
- ($primcall 'scm->u64 #f (len))))))))
+ ($ (with-cps-constants ((init #f))
+ (build-term
+ ($continue kalloc src
+ ($primcall 'make-vector/immediate (length args) (init))))))))
(define (find-constructor-inliner name)
(match name