comp.lang.ada
 help / color / mirror / Atom feed
From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: GNAT for a PPC Mac OS X machine
Date: Mon, 18 Apr 2011 18:28:40 +0300
Date: 2011-04-18T18:28:40+03:00	[thread overview]
Message-ID: <9133l8FtmtU1@mid.individual.net> (raw)
In-Reply-To: <C9D209D9.9928%yaldnif.w@blueyonder.co.uk>

Bill Findlay wrote:

>>>> Bill Findlay <yaldnif.w@blueyonder.co.uk> writes:
>>>>
>>>>> I've an enthusiastic would-be user of my KDF9 emulator who has a G5 Mac.
>>>>>
>>>>> What is the most up-to-date compiler he can use, and where can he get it?

> The problem now is a portability issue.
> 
> I have the declarations:
> 
>    type word is mod 2**48;
> 
> ...
> 
>    type field_of_16_bits is mod 2**16;
> 
>    type Q_part is new field_of_16_bits;
> 
>    type Q_register is
>       record
>          C_part, I_part, M_part : Q_part;
>       end record;
>    for Q_register'Size use KDF9.word'Size;
> 
> And this is fine in Intel.  But on PPC, we get the error:
> 
>     92.    for Q_register'Size use word'Size;
>                                         |
>         >>> size for "Q_register" too small, minimum allowed is 64
> 
> It's puzzling that the compiler refuses to give Q_register the size that it
> happily gave to word.  (The aspect clause is there to support unchecked
> conversions between the word and Q_register types.)

Bill, even if you get the Size clause to work, I hope your code does not 
rely on the Q_register components C_part, I_part, M_part being 
Unchecked_Converted to or from some well-known bit positions within the 
"word" value, as that would unportable.

If you only intend to use the "word" as an opaque container for a 
Q_register value, and never access the integer value of the whole "word" 
or particular bits of the "word", Unchecked_Conversion is ok.

Otherwise it would be better to use shifting and masking operations to 
convert between the Q_register type and the word type; then you would 
know exactly which bits in the "word" contain which parts of the Q_register.

If the goal is a bit-precise simulation of a KDF9, I would feel safer 
with a shift-and-mask conversion.

Apologies if my comment is obvious to you. No offence meant.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
       .      @       .



  reply	other threads:[~2011-04-18 15:28 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-17 14:02 GNAT for a PPC Mac OS X machine Bill Findlay
2011-04-17 14:43 ` Simon Wright
2011-04-17 18:47   ` Bill Findlay
2011-04-18  1:50   ` Bill Findlay
2011-04-18  9:30     ` Simon Wright
2011-04-18 14:31       ` Bill Findlay
2011-04-18 15:28         ` Niklas Holsti [this message]
2011-04-18 15:46           ` Bill Findlay
2011-04-18 17:08             ` Niklas Holsti
2011-04-19  3:07               ` Bill Findlay
2011-04-18 15:52         ` Georg Bauhaus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox