From: Chris Hanson Date: Wed, 18 Nov 1987 22:32:07 +0000 (+0000) Subject: Fix bug in rule: target register being allocated BEFORE deletion of X-Git-Tag: 20090517-FFI~13053 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=3b6744d361e8d1099da363161f65ae3100edf5ba;p=mit-scheme.git Fix bug in rule: target register being allocated BEFORE deletion of dead registers rather than AFTER. --- diff --git a/v7/src/compiler/machines/bobcat/rules1.scm b/v7/src/compiler/machines/bobcat/rules1.scm index bee3510b1..4551ebdcc 100644 --- a/v7/src/compiler/machines/bobcat/rules1.scm +++ b/v7/src/compiler/machines/bobcat/rules1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 1.7 1987/10/05 20:35:54 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 1.8 1987/11/18 22:32:07 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -130,15 +130,15 @@ MIT in each case. |# (ASSIGN (REGISTER (? target)) (CONS-POINTER (CONSTANT (? type)) (REGISTER (? datum)))) (QUALIFIER (pseudo-register? target)) - (let ((target* (coerce->any target)) - (datum (coerce->any datum))) + (let ((datum (coerce->any datum))) (delete-dead-registers!) - (if (register-effective-address? target*) - (LAP (MOV L ,datum ,reg:temp) - (MOV B (& ,type) ,reg:temp) - (MOV L ,reg:temp ,target*)) - (LAP (MOV L ,datum ,target*) - (MOV B (& ,type) ,target*))))) + (let ((target* (coerce->any target))) + (if (register-effective-address? target*) + (LAP (MOV L ,datum ,reg:temp) + (MOV B (& ,type) ,reg:temp) + (MOV L ,reg:temp ,target*)) + (LAP (MOV L ,datum ,target*) + (MOV B (& ,type) ,target*)))))) ;;;; Transfers to Memory