Revert previous change since experiment proved that this was
authorChris Hanson <org/chris-hanson/cph>
Mon, 5 Jan 1987 02:20:43 +0000 (02:20 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 5 Jan 1987 02:20:43 +0000 (02:20 +0000)
not the source of the bug being tracked down.  Leave in the
other bug fix which apparently never was used before.

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

index 99c71d0550474b418143c82ef67644ea8008d6b4..a834fe7759fc84fb3e3c5496fce83e007c6e75b2 100644 (file)
@@ -37,7 +37,7 @@
 
 ;;;; RTL Rules for 68020
 
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.145 1987/01/05 02:04:25 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.146 1987/01/05 02:20:43 cph Exp $
 
 (declare (usual-integrations))
 (using-syntax (access lap-generator-syntax-table compiler-package)
 
 (define-rule statement
   (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (OFFSET (REGISTER (? r)) (? n)))
-  ;; Prevent probabilistic screws when the MOVE instruction's source
-  ;; operand is evaluated after the destination operand.
-  (if (= r 15)
-      (let ((temporary
-            (register-reference (allocate-temporary-register! false))))
-       `((MOVE L ,(indirect-reference! r n) ,temporary)
-         (MOVE L ,temporary (@-A 7))))
-      `((MOVE L ,(indirect-reference! r n) (@-A 7)))))
+  `((MOVE L ,(indirect-reference! r n) (@-A 7))))
 
 (define-rule statement
   (ASSIGN (PRE-INCREMENT (REGISTER 15) -1)
 (define (generate-invocation-prefix:move-frame-up frame-size how-far)
   (cond ((or (zero? frame-size) (zero? how-far)) '())
        ((= frame-size 1)
-        `((MOVE L (@A 7) ,(offset-reference a7 how-far))
-          ,@(increment-anl 7 how-far))
-        #|`((MOVE L (@A+ 7) ,(offset-reference a7 (-1+ how-far)))
-          ,@(increment-anl 7 (-1+ how-far)))|#)
+        `((MOVE L (@A+ 7) ,(offset-reference a7 (-1+ how-far)))
+          ,@(increment-anl 7 (-1+ how-far))))
        ((= frame-size 2)
-        `((MOVE L (@A 7) ,(offset-reference a7 how-far))
-          (MOVE L (@AO 7 4) ,(offset-reference a7 (1+ how-far)))
-          ,@(increment-anl 7 how-far))
-        #|(if (= how-far 1)
+        (if (= how-far 1)
             `((MOVE L (@AO 7 4) (@AO 7 8))
               (MOVE L (@A+ 7) (@A 7)))
             (let ((i `(MOVE L (@A+ 7) ,(offset-reference a7 (-1+ how-far)))))
-              `(,i ,i ,@(increment-anl 7 (- how-far 2)))))|#)
+              `(,i ,i ,@(increment-anl 7 (- how-far 2))))))
        (else
         (let ((temp-0 (allocate-temporary-register! 'ADDRESS))
               (temp-1 (allocate-temporary-register! 'ADDRESS)))