tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] ARM hardfloat prolog


From: Thomas Preud'homme
Subject: Re: [Tinycc-devel] ARM hardfloat prolog
Date: Thu, 2 May 2013 13:02:19 +0200
User-agent: KMail/1.13.7 (Linux/3.2.0-4-amd64; KDE/4.8.4; x86_64; ; )

Le mercredi 1 mai 2013 21:14:08, Daniel Glöckner a écrit :
> On Wed, May 01, 2013 at 05:02:54PM +0200, Thomas Preud'homme wrote:
> > Le mercredi 1 mai 2013 16:59:25, Daniel Glöckner a écrit :
> > > In my 2nd edition ARM ARM this maps to the FSTMS instruction and there
> > > is a note allowing implementations to keep the values in an internal
> > > representation and just convert them to IEEE format for storing to
> > > memory. So I don't think we can use this instruction to store double
> > > arguments and need one FSTMS/FSTMD for each run of consecutive fpu
> > > registers of same precision to be stored. Or have read otherwise?
> > 
> > Nope, I didn't see that line. Please go ahead if you want to fix it,
> > otherwise I'll do it later (I'm working right now).
> 
> I did some more research.
> 
> ARM ARM 2nd edition (= Issue E) has several paragraphs below figure 2-1
> in chapter C2 talking about that no assumptions can be made as to how
> single-precision registers overlap double-precision registers and that
> the value of double-precision registers after their corresponding single-
> precision registers have been loaded with a value becomes UNPREDICTABLE.
> 
> Issue I, which can be downloaded after registering with ARM, replaces
> that half page of text with
> "The mapping between a double-precision register and its pair of
> single-precision registers is as follows:
> - S<2n> lies in the least significant half of D<n>
> - S<2n+1> lies in the most significant half of D<n>."

That's what I read in my manual indeed. Or maybe I read it in AAPCS.

> 
> So we are safe with the current implementation, at least on little-endian
> ARM. On big-endian ARM the halves will have the wrong order if we don't
> use FSTMD, but there is a lot more that needs to be done until we support
> big-endian ARM.

Do you know where big-endian is used and by who? There once was a port of 
Debian for ARM big endian but it never got much traction so it seems to me 
there is not much interest for such a port anyway.

> 
>   Daniel

Best regards,

Thomas

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]