From: Guillermo J. Rozas Date: Sun, 16 Feb 1992 02:47:12 +0000 (+0000) Subject: Revert register-copy-if-available, and use it correctly. X-Git-Tag: 20090517-FFI~9726 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=7ec782fcfc3ef2ccc4aa5db70269fb107093b328;p=mit-scheme.git Revert register-copy-if-available, and use it correctly. --- diff --git a/v7/src/compiler/machines/i386/rulfix.scm b/v7/src/compiler/machines/i386/rulfix.scm index d6be23f27..43a1d9b8a 100644 --- a/v7/src/compiler/machines/i386/rulfix.scm +++ b/v7/src/compiler/machines/i386/rulfix.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/rulfix.scm,v 1.17 1992/02/15 16:13:00 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/rulfix.scm,v 1.18 1992/02/16 02:47:12 jinx Exp $ $MC68020-Header: /scheme/src/compiler/machines/bobcat/RCS/rules1.scm,v 4.36 1991/10/25 06:49:58 cph Exp $ Copyright (c) 1992 Massachusetts Institute of Technology @@ -349,16 +349,19 @@ MIT in each case. |# (any-reference source2)))) ((register-copy-if-available source1 'GENERAL target) => - (lambda (alias-ref) - (operate alias-ref (if (= source2 source1) - alias-ref - (any-reference source2))))) + (lambda (get-alias-ref) + (if (= source2 source1) + (let ((ref (get-alias-ref))) + (operate ref ref)) + (let ((source2 (any-reference source2))) + (operate (get-alias-ref) source2))))) ((not commutative?) (new-target-alias!)) ((register-copy-if-available source2 'GENERAL target) => - (lambda (alias-ref) - (operate alias-ref source1))) + (lambda (get-alias-ref) + (let ((source1 (any-reference source1))) + (operate (get-alias-ref) source1)))) (else (new-target-alias!))))) @@ -420,12 +423,12 @@ MIT in each case. |# (standard target source1 source2 overflow?)) ((register-copy-if-available source1 'GENERAL target) => - (lambda (tgt) - (operate tgt (register-reference two)))) + (lambda (get-tgt) + (operate (get-tgt) (register-reference two)))) ((register-copy-if-available source2 'GENERAL target) => - (lambda (tgt) - (operate tgt (register-reference one)))) + (lambda (get-tgt) + (operate (get-tgt) (register-reference one)))) (else (let ((target (target-register-reference target))) (LAP (LEA ,target (@RI one two 1)))))))))))