Teach `expression->machine-register!' about (UNASSIGNED) expression.
authorChris Hanson <org/chris-hanson/cph>
Mon, 1 Jun 1987 11:21:41 +0000 (11:21 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 1 Jun 1987 11:21:41 +0000 (11:21 +0000)
v7/src/compiler/machines/bobcat/lapgen.scm

index 826a2d4ad0068580ac5c1dcb4332489b84a8c7b9..9042adb29ec8e8d0b3a2e87747ff1d1c0d586bb3 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.171 1987/05/31 23:00:30 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.172 1987/06/01 11:21:41 cph Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -151,13 +151,19 @@ MIT in each case. |#
   (let ((target (register-reference register)))
     (let ((result
           (case (car expression)
-            ((REGISTER) `((MOVE L ,(coerce->any (cadr expression)) ,target)))
+            ((REGISTER)
+             `((MOVE L ,(coerce->any (cadr expression)) ,target)))
             ((OFFSET)
-             `((MOVE L ,(indirect-reference! (cadadr expression)
-                                             (caddr expression))
+             `((MOVE L
+                     ,(indirect-reference! (cadadr expression)
+                                           (caddr expression))
                      ,target)))
-            ((CONSTANT) `(,(load-constant (cadr expression) target)))
-            (else (error "Bad expression type" (car expression))))))
+            ((CONSTANT)
+             `(,(load-constant (cadr expression) target)))
+            ((UNASSIGNED)
+             `(,(load-non-pointer type-code:unassigned 0 target)))
+            (else
+             (error "Unknown expression type" (car expression))))))
       (delete-machine-register! register)
       result)))