From: Chris Hanson Date: Tue, 5 Dec 1989 20:39:58 +0000 (+0000) Subject: Force use of address registers for indirection. If the register is X-Git-Tag: 20090517-FFI~11633 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=ac0f11843530dcef389a1aaab3413f25171d828e;p=mit-scheme.git Force use of address registers for indirection. If the register is used once, the cost is about the same in both space and time. However, if it is used more than once, this is both faster and smaller. --- diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 29eda59b4..9284832fa 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.23 1989/11/30 16:05:44 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.24 1989/12/05 20:39:58 cph Exp $ Copyright (c) 1988, 1989 Massachusetts Institute of Technology @@ -289,10 +289,8 @@ MIT in each case. |# (define (indirect-byte-reference! register offset) (byte-offset-reference (allocate-indirection-register! register) offset)) -(define (allocate-indirection-register! register) - (if (machine-register? register) - register - (preferred-address-register register))) +(define-integrable (allocate-indirection-register! register) + (guarantee-alias-register! register 'ADDRESS)) (define (code-object-label-initialize code-object) code-object @@ -794,11 +792,6 @@ MIT in each case. |# (MOV L ,temp-ref ,(register-reference target))) (LAP (CLR L ,(register-reference target)) (MOV B ,source ,(register-reference target)))))) - -(define (indirect-register register) - (if (machine-register? register) - register - (register-alias register false))) ;;;; Registers/Entries