mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MIT-Scheme-devel] pseudo-register offsets


From: Taylor R Campbell
Subject: [MIT-Scheme-devel] pseudo-register offsets
Date: Sat, 18 Jun 2011 22:04:17 +0000
User-agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/9.1

I think LIAR has been generating bad register home offsets for all the
CISC back ends except for x86-64 (m68k, i386, vax) since basically
forever.  In particular, PSEUDO-REGISTER-OFFSET on all those back ends
is defined to yield

(+ (* bytes-per-word n-fixed)
   (* bytes-per-hook n-hooks)
   (* words-per-temporary (register-renumber register))),

and the resulting offset is used in word offset EAs, not byte offset
EAs.  I think the word offset should be

(+ n-fixed
   (* words-per-hook n-hooks)
   (* words-per-temporary (register-renumber register)))

instead.  But maybe I'm confused -- especially since I have never
observed a problem that I tracked down to this.  On the other hand,
since so little code actually flushes pseudo-registers to their homes
in practice, it wouldn't surprise me if this had never caused a
problem in practice.  Can anyone confirm my mental arithmetic?

(I believe the RISC back ends -- which are all defunct these days, of
course -- do the right calculation.)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]