diff options
author | Andy Wingo <wingo@pobox.com> | 2013-10-31 19:21:31 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-10-31 19:21:31 +0100 |
commit | c7cb2bc20042cbaa4058b92eb36762e5ea72a1e0 (patch) | |
tree | 2730a9ed7f9538531a317cd2f8a123199edfb989 /module | |
parent | 57a5cc97609bfb6e90952352095cc8245473b8c5 (diff) | |
download | guile-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.scm | 8 |
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 |