[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sat Jan 2 22:40:42 CET 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/01/02 22:40:42
Modified files:
cm3/m3-sys/m3middle/src/: TInt.m3
Log message:
a 64bit hosted compiler fails when targeting
a 32bit platform due to the use of
TYPE Regno = [-1 .. NRegs];
-1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0}
The problem is presumably that CheckSign doesn't like
the trailing zeros.
I believe the point of CheckSign(r.n:=4 to n:=8) is really
for the case of n > r.n, i.e.:
If you were to truncate
8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF
to
4:0xFF,0xFF,0xFF,0x00
that would be an error (it probably
fail earlier, when Target.Int doesn't
fit in n = 4)
CheckSign should always succeed when widening,
when host integer is bigger than target integer.
The for loops should already be empty for that case.
More information about the M3commit
mailing list