summaryrefslogtreecommitdiff
path: root/module/system/vm/assembler.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-08-13 14:24:44 +0200
committerAndy Wingo <wingo@pobox.com>2018-08-13 14:30:01 +0200
commitd4abe8bbed4327ae46b493d3256c792ef6b3bb7b (patch)
tree33930b663295aeba596e0647f4ec72db2812f272 /module/system/vm/assembler.scm
parent11940f4c72102fc3f5147aa5529c5ed77ff09fcc (diff)
downloadguile-d4abe8bbed4327ae46b493d3256c792ef6b3bb7b.tar.gz
Avoid needless 64-bit args on 32-bit machines for some intrinsics
* libguile/intrinsics.h: * libguile/intrinsics.c (string_set_x): Change to take size_t and u32 as args. (allocate_words): Change to take size_t as arg. * libguile/vm.c (expand_apply_argument): Rename from rest_arg_length, and also handle the stack manipulation. * libguile/vm-engine.c (expand-apply-argument): Update for intrinsic change. (call-scm-sz-u32): Rename from call-scm-u64-u64, as it matches its uses and will compile better on 32-bit systems. * module/system/vm/assembler.scm (define-scm-sz-u32-intrinsic): (string-set!): Update for new instrinsic call inst. * libguile/jit.c (compile_call_scm_sz_u32): Adapt.
Diffstat (limited to 'module/system/vm/assembler.scm')
-rw-r--r--module/system/vm/assembler.scm6
1 files changed, 3 insertions, 3 deletions
diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index ca24b03db..e949a9fc6 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -1313,9 +1313,9 @@ returned instead."
(define-syntax-rule (define-scm<-scm-uimm-intrinsic name)
(define-macro-assembler (name asm dst a b)
(emit-call-scm<-scm-uimm asm dst a b (intrinsic-name->index 'name))))
-(define-syntax-rule (define-scm-u64-u64-intrinsic name)
+(define-syntax-rule (define-scm-sz-u32-intrinsic name)
(define-macro-assembler (name asm a b c)
- (emit-call-scm-u64-u64 asm a b c (intrinsic-name->index 'name))))
+ (emit-call-scm-sz-u32 asm a b c (intrinsic-name->index 'name))))
(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))))
@@ -1369,7 +1369,7 @@ returned instead."
(define-scm<-scm-scm-intrinsic logior)
(define-scm<-scm-scm-intrinsic logxor)
(define-scm<-scm-scm-intrinsic logsub)
-(define-scm-u64-u64-intrinsic string-set!)
+(define-scm-sz-u32-intrinsic string-set!)
(define-scm<-scm-intrinsic string->number)
(define-scm<-scm-intrinsic string->symbol)
(define-scm<-scm-intrinsic symbol->keyword)