summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-10-31 19:21:31 +0100
committerAndy Wingo <wingo@pobox.com>2013-10-31 19:21:31 +0100
commitc7cb2bc20042cbaa4058b92eb36762e5ea72a1e0 (patch)
tree2730a9ed7f9538531a317cd2f8a123199edfb989 /module
parent57a5cc97609bfb6e90952352095cc8245473b8c5 (diff)
downloadguile-c7cb2bc20042cbaa4058b92eb36762e5ea72a1e0.tar.gz
static-patch! for pair and vector fields
* module/system/vm/assembler.scm (intern-constant): Use static-patch! for fields.
Diffstat (limited to 'module')
-rw-r--r--module/system/vm/assembler.scm8
1 files changed, 4 insertions, 4 deletions
diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index bee62571e..811841e25 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -543,10 +543,10 @@ table, its existing label is used directly."
(define (field dst n obj)
(let ((src (recur obj)))
(if src
- (list (if (statically-allocatable? obj)
- `(make-non-immediate 1 ,src)
- `(static-ref 1 ,src))
- `(static-set! 1 ,dst ,n))
+ (if (statically-allocatable? obj)
+ `((static-patch! ,dst ,n ,src))
+ `((static-ref 1 ,src)
+ (static-set! 1 ,dst ,n)))
'())))
(define (intern obj label)
(cond