From: Guillermo J. Rozas Date: Tue, 18 Aug 1987 21:24:54 +0000 (+0000) Subject: Fix syntaxing of displacement fields. X-Git-Tag: 20090517-FFI~13143 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b01a722d83c6b556792d2071e02945c95acf0cee;p=mit-scheme.git Fix syntaxing of displacement fields. --- diff --git a/v7/src/compiler/machines/vax/insmac.scm b/v7/src/compiler/machines/vax/insmac.scm index c8bd0a9d5..b04cef116 100644 --- a/v7/src/compiler/machines/vax/insmac.scm +++ b/v7/src/compiler/machines/vax/insmac.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/vax/insmac.scm,v 1.3 1987/08/18 08:23:38 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/vax/insmac.scm,v 1.4 1987/08/18 21:24:54 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -124,12 +124,21 @@ MIT in each case. |# (size (car desc))) (receiver `(CONS-SYNTAX - ,(integer-syntaxer expression 'DISPLACEMENT size) + ,(displacement-syntaxer expression size) ,tail) (+ size tail-size))))) (else (error "expand-fields: Unknown field kind" (caar fields)))))))) +;; Patterned after integer-syntaxer in back-end/syntax.scm + +(define (displacement-syntaxer expression size) + (let ((coercion (make-coercion-name 'DISPLACEMENT size))) + (if (and (pair? expression) + (memq (car expression) '(@PCO @PCR))) + `',((lexical-reference coercion-environment coercion) expression) + `(SYNTAX-EVALUATION ,expression ,coercion)))) + (define (collect-byte components tail receiver) (define (inner components receiver) (if (null? components)