[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