Re: [RFC] Unsolicited usage of VFP registers for Cortex-M4F

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

 



Hi Joey

Here I forward you the email that I have posted to GCC help mailing list
recently.

Ilija

On 24.09.2012 12:30, Ilija Kocho wrote:
> Hi colleagues
>
> In a course of implementing lazy context switching I the following link
> come to me:
> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0298a/DAFIFGGE.html
>
> Here is a quote in case the link renders broken (in future):
> -- Quote ------------
>
>
>         GNUC C compiler (gcc)
>
> If a program is compiled with the FPU option, gcc might make use of the
> floating-point registers if register pressure is high, and running low
> on available registers for data processing. In some cases, the memory
> copy might also utilize floating-point registers to hold data.
>
> It is possible to avoid the use of floating-point instructions in
> non-floating-point code by using |-mfloat-abi=soft|.
>
> By default, libraries are built with |-mfloat-abi=soft|. So they must
> not contain floating-point instructions. However, because there are
> various gcc vendors with different build options, you might have to
> check with your gcc tool chain supplier to find out the status of the
> libraries.
>
> -- end of quote ---------
>
> I did some research, googling and searching GCC mailing lists, and found
> no other reference that would confirm/deny or put some light on above text.
>
> Therefore here are my questions:
>
> 1) Does GCC use VFP registers for holding data other than floating point
> values (unsolicited VFP usage)?
>
> If (1) is true:
> 1.1) What conditions, in addition to selecting -mfloat-abi=hard (or
> softfp) shall cause such behaviour. I would appreciate some test case.
> 1.2) Any pointer to source code responsible for this [optimization]? I
> would appreciate this.
> 1.4) Can it be disabled? I found no such command line option for ARM
> targets.
>
> 2) Above quote states that -mfloat-abi=soft should be used for libs, but
> ld refuses to link them with code produced with -mfloat-abi=hard even if
> the libs do not use floating point operations. Is there a waay to tweak
> this?
>
> I am especially intersted for Cortex-M4F architecture, but also I would
> like to know about ARMv7 in general.
>
> Regards
> Ilija
>



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux