From c64ada44f478a32e8b9bc577dfac875b4fd2599f Mon Sep 17 00:00:00 2001 From: "Brian A. LaMacchia" Date: Mon, 21 Mar 1988 21:46:31 +0000 Subject: [PATCH] Fixed more bugs. --- v7/src/compiler/machines/vax/rules1.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/v7/src/compiler/machines/vax/rules1.scm b/v7/src/compiler/machines/vax/rules1.scm index 2501967cd..bed11c6d7 100644 --- a/v7/src/compiler/machines/vax/rules1.scm +++ b/v7/src/compiler/machines/vax/rules1.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/vax/rules1.scm,v 4.3 1988/02/23 19:45:15 bal Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/vax/rules1.scm,v 4.4 1988/03/21 21:46:31 bal Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -53,6 +53,11 @@ MIT in each case. |# (let ((offset1 (* 4 offset))) (LAP (MOVA L (@RO ,(offset-type offset1) 14 ,offset1) (R 10))))) +(define-rule statement + (ASSIGN (REGISTER 10) (OFFSET-ADDRESS (REGISTER (? source)) (? offset))) + (QUALIFIER (pseudo-register? source)) + (LAP (MOVA L ,(indirect-reference! source offset) (R 10)))) + (define-rule statement (ASSIGN (REGISTER 10) (OBJECT->ADDRESS (REGISTER (? source)))) (QUALIFIER (pseudo-register? source)) @@ -104,7 +109,7 @@ MIT in each case. |# (QUALIFIER (pseudo-register? target)) (LAP (MOV L (@PCR ,(free-assignment-label name)) - ,(reference-assignment-alias! target 'DATA)))) + ,(reference-assignment-alias! target 'GENERAL)))) (define-rule statement (ASSIGN (REGISTER (? target)) (REGISTER (? source))) @@ -235,6 +240,13 @@ MIT in each case. |# (@R+ 12)) (MOV B ,(immediate-type (ucode-type compiled-expression)) (@RO B 12 -1)))) + +;; This pops the top of stack into the heap + +(define-rule statement + (ASSIGN (POST-INCREMENT (REGISTER 12) 1) (POST-INCREMENT (REGISTER 14) 1)) + (LAP (MOV L (@R+ 14) (@R+ 12)))) + ;;;; Pushes -- 2.25.1