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
. @ .
next prev parent 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