More changes.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 13 Feb 1992 19:55:02 +0000 (19:55 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 13 Feb 1992 19:55:02 +0000 (19:55 +0000)
v7/src/compiler/machines/i386/insmac.scm
v7/src/compiler/machines/i386/rules1.scm

index 2219fa409025d4de21bc8e19eda1336a5073ef36..cca5bfda6e8d52f3e11c317da90334386f039d28 100644 (file)
@@ -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)
index 483c2dbf723bf4e9343f0d18accfc8154997f34a..578e12a0c4618ce3ed137c7e779c6c047546b982 100644 (file)
@@ -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