[M3devel] __int128 coming to gcc

Tony Hosking hosking at cs.purdue.edu
Thu Jan 21 01:03:01 CET 2010


Yes, exactly.

Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484




On 20 Jan 2010, at 11:30, hendrik at topoi.pooq.com wrote:

> On Wed, Jan 20, 2010 at 11:20:03AM +0000, Jay K wrote:
>> 
>> Ok with changing LONGINT to be __int128, *but*
>> 
>> you really should not change it with a compiler flag.
>> 
>> For any given platform, "basics" like this should not change meaning.
>> 
>> It makes it such that you can't link code safely.
>> 
>> 
>> 
>> 
>> 
>> Basically, "platform" or "target" should map to one "ABI".
>> 
>> 
>> 
>> 
>> 
>> I really kind of like what I proposed earlier.
>> 
>>  Let the user define things.
>> 
>>  TYPE INT64 = BITS 64 FOR INTEGER;
>> 
>>  TYPE INT128 = BITS 128 FOR INTEGER;
>> 
>> 
>> TYPE INT256 = BITS 256 FOR INTEGER;
>> 
>> 
>>  (* either an error, or the compiler generates calls to multi-precision library *)
> 
> Well, with INTEGER being defined as the type for efficient integer 
> arithmetic, you's have to say
> 
>  TYPE INT64 = BITS 64 FOR LONGINT;
> 
>  TYPE INT128 = BITS 128 FOR LONGINT;
> 
> 
> 
> TYPE INT256 = BITS 256 FOR LONGINT;
> 
> and on many current machines, file offset should then be defined as 
> BITS64 instead of LONGINT.
> 
> -- hendrik
> 
>> This is btw why the user thread stuff should be either 1) a runtime alterable decision

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100120/db678408/attachment-0002.html>


More information about the M3devel mailing list