From: Guillermo J. Rozas Date: Thu, 8 Jul 1993 01:06:53 +0000 (+0000) Subject: Fix lurking bug found in the 386 back end. X-Git-Tag: 20090517-FFI~8205 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=87a1069a1a7b77c75d20bc5bc1adc4217ee34e39;p=mit-scheme.git Fix lurking bug found in the 386 back end. --- diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index d3d5c2119..a7e8f3f5f 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: lapgen.scm,v 4.48 1993/07/06 00:56:23 gjr Exp $ +$Id: lapgen.scm,v 4.49 1993/07/08 01:06:53 gjr Exp $ Copyright (c) 1988-1993 Massachusetts Institute of Technology @@ -40,12 +40,16 @@ MIT in each case. |# ;;;; Register-Allocator Interface (define (reference->register-transfer source target) - (if (or (and (effective-address/data-register? source) - (= (lap:ea-operand-1 source) target)) - (and (effective-address/address-register? source) - (= (+ 8 (lap:ea-operand-1 source)) target))) - (LAP) - (memory->machine-register source target))) + (cond ((or (and (effective-address/data-register? source) + (= (lap:ea-operand-1 source) target)) + (and (effective-address/address-register? source) + (= (+ 8 (lap:ea-operand-1 source)) target))) + (LAP)) + ((effective-address/float-register? source) + ;; Assume target is a float register + (LAP (FMOVE ,source ,(register-reference target)))) + (else + (memory->machine-register source target)))) (define (register->register-transfer source target) (machine->machine-register source target))