diff --git a/module/language/assembly.scm b/module/language/assembly.scm index 0d62fe9f9..734deb580 100644 --- a/module/language/assembly.scm +++ b/module/language/assembly.scm @@ -66,11 +66,11 @@ (map (lambda (x) (cons (cdr x) (car x))) *abbreviations*)) (define (assembly-pack code) - (or (assoc-ref code *abbreviations*) + (or (assoc-ref *abbreviations* code) code)) (define (assembly-unpack code) - (or (assoc-ref code *expansions*) + (or (assoc-ref *expansions* code) code)) diff --git a/module/language/glil/compile-assembly.scm b/module/language/glil/compile-assembly.scm index 1f0b88a32..650a3dac1 100644 --- a/module/language/glil/compile-assembly.scm +++ b/module/language/glil/compile-assembly.scm @@ -137,9 +137,9 @@ (define (glil->assembly glil nargs nexts-stack bindings source-alist label-alist object-alist addr) (define (emit-code x) - (values x bindings source-alist label-alist object-alist)) + (values (map assembly-pack x) bindings source-alist label-alist object-alist)) (define (emit-code/object x object-alist) - (values x bindings source-alist label-alist object-alist)) + (values (map assembly-pack x) bindings source-alist label-alist object-alist)) (record-case glil (( nargs nrest nlocs nexts meta body closure-level)