From: Chris Hanson Date: Mon, 5 Jan 1987 02:20:43 +0000 (+0000) Subject: Revert previous change since experiment proved that this was X-Git-Tag: 20090517-FFI~13768 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=4d57a4ac8067fed1180e773e2ac6ff7112348f48;p=mit-scheme.git Revert previous change since experiment proved that this was not the source of the bug being tracked down. Leave in the other bug fix which apparently never was used before. --- diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 99c71d055..a834fe775 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -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) @@ -379,14 +379,7 @@ (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) @@ -519,19 +512,14 @@ (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)))