[M3devel] 64 bit fixes?
Jay
jayk123 at hotmail.com
Tue Feb 26 20:53:24 CET 2008
I haven't tested this but it looks very suspicious..
When targeting 64 bit targets, the compiler thinks [-1 .. 1] is empty. When compiling things like "compare" functions. I didn't debug it but just looked at the code.
=================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/TInt.i3,v retrieving revision 1.4 diff -r1.4 TInt.i3 26c26 < MOne = Int{NUMBER (IBytes), IBytes{16_ff,16_ff,..}}; --- > MOne = Int{NUMBER (IBytes), IBytes{16_ff,16_ff,16_ff,16_ff,16_ff,16_ff,16_ff,16_ff}}; another fix might be: > MOne = Int{1, IBytes{16_ff}};
IBytes used to be 16 bit integers but now is 8 bit integers. PM3 has:
Zero = Int { IChunks {16_0000, 16_0000, 16_0000, 16_0000}}; One = Int { IChunks {16_0001, 16_0000, 16_0000, 16_0000}}; MOne = Int { IChunks {16_ffff, 16_ffff, 16_ffff, 16_ffff}};
which seems adequate for what is likely going on in these parts.
I believe ".." fills with zeros, not the previous value.
Also, is this objectionable?
RCS file: /usr/cvs/cm3/m3-libs/m3core/src/text/TextLiteral.i3,v retrieving revision 1.2 diff -r1.2 TextLiteral.i3 15c15 < MaxBytes = LAST (INTEGER) DIV BITSIZE (Byte) - 32; --- > MaxBytes = 16_FFFFFCD; (* LAST (INTEGER) DIV BITSIZE (Byte) - 32; *)
Maybe. The 32 bit compiler doesn't like such large types (that follow from the use of this).
Maybe preferable to allow 32 bit hosted compiler to allow 64 bit sized types?
- Jay
From: jayk123 at hotmail.comTo: m3devel at elegosoft.comDate: Tue, 26 Feb 2008 18:53:58 +0000Subject: [M3devel] tangential 64 bit...
alpha/osf doesn't work because basictypes/ctypes has a problem with the 32bit or 64bit types.specifically "unsigned long" is "empty" for some reason and many errors cascade from that. if you change: unsigned_int = [16_0 .. 16_ffffffff];to unsigned_int = [16_0 .. 16_fffffffe]; you get: ****** runtime error:*** An array subscript was out of range.*** file "../src/TWord.m3", line 199***Presumably fixing this first problem is the first step in any "real" 64 bit target (SPARC64, PPC64, AMD64, IA64), and the second problem should just be fixed as a matter of course. I know this is the least of anyone's concerns.. - Jay
Connect and share in new ways with Windows Live. Get it now!
_________________________________________________________________
Helping your favorite cause is as easy as instant messaging. You IM, we give.
http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080226/a54170f4/attachment-0002.html>
More information about the M3devel
mailing list