From cca37b6d577819c676f935cd2fe999dff50b33c1 Mon Sep 17 00:00:00 2001 From: "Henry M. Wu" Date: Tue, 10 May 1988 00:10:33 +0000 Subject: [PATCH] CHAR/STRING open-coding, bug fix --- v7/src/compiler/machines/bobcat/rules1.scm | 24 +++++++++++++--------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/v7/src/compiler/machines/bobcat/rules1.scm b/v7/src/compiler/machines/bobcat/rules1.scm index c9ca0bd65..3670cd43d 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.7 1988/05/09 19:57:17 mhwu Exp $ +$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 $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -293,15 +293,19 @@ MIT in each case. |# (define-rule statement (ASSIGN (REGISTER (? target)) (CHAR->ASCII (REGISTER (? source)))) (QUALIFIER (pseudo-register? target)) - (if (machine-register? source) - (LAP (BFEXTU ,(register-reference source) - (& 0) (& 8) - ,(register-reference (allocate-alias-register! target 'DATA)))) - (byte-offset->register - (indirect-char/ascii-reference! regnum:regs-pointer - (pseudo-register-offset source)) - (indirect-register regnum:regs-pointer) - target))) + (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)))) + (byte-offset->register + (indirect-char/ascii-reference! regnum:regs-pointer + (pseudo-register-offset source)) + (indirect-register regnum:regs-pointer) + target)))) (define-rule statement (ASSIGN (BYTE-OFFSET (REGISTER (? address)) (? offset)) -- 2.25.1