[M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Sun Jan 3 21:55:22 CET 2010


But why is 64-bit checksign being used in the first place?

Surely it should be using CheckSign for the target not the host?

On 2 Jan 2010, at 22:40, Jay Krell wrote:

> 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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20100103/4ce76bfa/attachment-0002.html>


More information about the M3commit mailing list