Fix bug in rules to push or cons fixnums, so that they use temporary
authorChris Hanson <org/chris-hanson/cph>
Thu, 27 Apr 1989 20:06:32 +0000 (20:06 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 27 Apr 1989 20:06:32 +0000 (20:06 +0000)
hardware register in which to box the fixnum.  Previously they were
just clobbering the source register.

v7/src/compiler/machines/bobcat/rules1.scm

index 600e2545aa1fda944939d0cbce22b5c36eae0ced..4869b3e15624e4f986d5720e2b26304ce082c18d 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 4.21 1989/03/10 08:05:25 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 4.22 1989/04/27 20:06:32 cph Rel $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -366,9 +366,9 @@ MIT in each case. |#
 (define-rule statement
   (ASSIGN (POST-INCREMENT (REGISTER 13) 1)
          (FIXNUM->OBJECT (REGISTER (? r))))
-  (let ((source-ref (reference-alias-register! r 'DATA)))
-    (LAP ,@(fixnum->object source-ref)
-        (MOV L ,source-ref (@A+ 5)))))
+  (let ((temporary (move-to-temporary-register! r 'DATA)))
+    (LAP ,@(fixnum->object temporary)
+        (MOV L ,temporary (@A+ 5)))))
 
 (define-rule statement
   ;; This pops the top of stack into the heap
@@ -413,9 +413,9 @@ MIT in each case. |#
 (define-rule statement
   (ASSIGN (PRE-INCREMENT (REGISTER 15) -1)
          (FIXNUM->OBJECT (REGISTER (? r))))
-  (let ((source-ref (reference-alias-register! r 'DATA)))
-    (LAP ,@(fixnum->object source-ref)
-        (MOV L ,source-ref (@-A 7)))))
+  (let ((temporary (move-to-temporary-register! r 'DATA)))
+    (LAP ,@(fixnum->object temporary)
+        (MOV L ,temporary (@-A 7)))))
 \f
 ;;;; Fixnum Operations