From: Henry M. Wu Date: Tue, 10 May 1988 00:38:45 +0000 (+0000) Subject: CHAR/STRING open-coding, bug fix X-Git-Tag: 20090517-FFI~12768 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=fbb61f31146a5c2ce3bea8f4f2d1f86ffd461e06;p=mit-scheme.git CHAR/STRING open-coding, bug fix --- diff --git a/v7/src/compiler/machines/bobcat/rules1.scm b/v7/src/compiler/machines/bobcat/rules1.scm index 3670cd43d..fc8a2442a 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 4.8 1988/05/10 00:10:33 mhwu Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 4.9 1988/05/10 00:38:45 mhwu Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -293,14 +293,15 @@ MIT in each case. |# (define-rule statement (ASSIGN (REGISTER (? target)) (CHAR->ASCII (REGISTER (? source)))) (QUALIFIER (pseudo-register? target)) - (let ((machine-register - (if (machine-register? source) - source - (register-alias source false)))) + (let ((machine-register (if (machine-register? source) + source + (register-alias source false)))) (if machine-register - (LAP (BFEXTU ,(register-reference source) - (& 0) (& 8) - ,(register-reference (allocate-alias-register! target 'DATA)))) + (let ((source-ref (register-reference machine-register))) + (delete-dead-registers!) + (let ((target-ref + (register-reference (allocate-alias-register! target 'DATA)))) + (LAP (BFEXTU ,source-ref (& 0) (& 8) ,target-ref)))) (byte-offset->register (indirect-char/ascii-reference! regnum:regs-pointer (pseudo-register-offset source))