From 565f765ecce347b8f36c5ec17d474091c59cd88e Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Thu, 13 Feb 1992 19:55:02 +0000 Subject: [PATCH] More changes. --- v7/src/compiler/machines/i386/insmac.scm | 11 +++++------ v7/src/compiler/machines/i386/rules1.scm | 16 ++++++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/v7/src/compiler/machines/i386/insmac.scm b/v7/src/compiler/machines/i386/insmac.scm index 2219fa409..cca5bfda6 100644 --- a/v7/src/compiler/machines/i386/insmac.scm +++ b/v7/src/compiler/machines/i386/insmac.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/insmac.scm,v 1.8 1992/02/13 19:03:31 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/insmac.scm,v 1.9 1992/02/13 19:55:02 jinx Exp $ $Vax-Header: insmac.scm,v 1.12 89/05/17 20:29:15 GMT jinx Exp $ Copyright (c) 1992 Massachusetts Institute of Technology @@ -159,14 +159,13 @@ MIT in each case. |# (r/m (caddr field))) (receiver `(CONS-SYNTAX - ,(integer-syntaxer `(EA/MODE ,r/m) 'UNSIGNED 2) + (EA/REGISTER ,r/m) (CONS-SYNTAX ,(integer-syntaxer digit-or-reg 'UNSIGNED 3) (CONS-SYNTAX - ,(integer-syntaxer `(EA/REGISTER ,r/m) 'UNSIGNED 3) - (APPEND-SYNTAX - (EA/EXTRA ,r/m) - ,tail)))) + (EA/MODE ,r/m) + (APPEND-SYNTAX! (EA/EXTRA ,r/m) + ,tail)))) (+ 8 tail-size)))))) ;; For immediate operands whose size depends on the operand ;; size for the instruction (halfword vs. longword) diff --git a/v7/src/compiler/machines/i386/rules1.scm b/v7/src/compiler/machines/i386/rules1.scm index 483c2dbf7..578e12a0c 100644 --- a/v7/src/compiler/machines/i386/rules1.scm +++ b/v7/src/compiler/machines/i386/rules1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/rules1.scm,v 1.9 1992/02/13 19:04:16 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/rules1.scm,v 1.10 1992/02/13 19:54:50 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 @@ -278,11 +278,15 @@ MIT in each case. |# ;;;; Utilities specific to rules1 (define (load-displaced-register target source n) - (if (zero? n) - (assign-register->register target source) - (let* ((source (source-indirect-reference! source n)) - (target (target-register-reference target))) - (LAP (LEA ,target ,source))))) + (cond ((zero? n) + (assign-register->register target source)) + ((and (= target source) + (= target esp)) + (LAP (ADD W (R ,esp) (& ,n)))) + (else + (let* ((source (indirect-byte-reference! source n)) + (target (target-register-reference target))) + (LAP (LEA ,target ,source)))))) (define (load-displaced-register/typed target source type n) (load-displaced-register target -- 2.25.1