[Top][All Lists]
[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.)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [MIT-Scheme-devel] pseudo-register offsets,
Taylor R Campbell <=