[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