This is the mail archive of the
mailing list for the binutils project.
RE: GAS .fpu directive
- From: Matthew Fortune <Matthew dot Fortune at imgtec dot com>
- To: Renato Golin <renato dot golin at linaro dot org>, Peter Bergner <bergner at vnet dot ibm dot com>
- Cc: Richard Earnshaw <rearnsha at arm dot com>, Nicholas Clifton <nickc at redhat dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 21 Aug 2014 07:32:15 +0000
- Subject: RE: GAS .fpu directive
- Authentication-results: sourceware.org; auth=none
- References: <CAMSE1keWd0+uUS0fpaC3-yXsnN-z2_Bsa5anwvQAQwXgWuw_Yw at mail dot gmail dot com> <53F4C261 dot 8090900 at redhat dot com> <53F4CB31 dot 9080701 at arm dot com> <1408553484 dot 5894 dot 8 dot camel at otta> <CAMSE1kdDQOuuKhPcF8qasM-PMXBkAKDfjioCmYc39cORV3o4gA at mail dot gmail dot com> <1408562067 dot 5894 dot 23 dot camel at otta> <CAMSE1kfq3CoxR8KWOo6dzgoR4CxyLqyA+_o=ZVU_MfJwHf8-mA at mail dot gmail dot com>
Renato Golin <email@example.com> writes:
> On 20 August 2014 20:14, Peter Bergner <firstname.lastname@example.org> wrote:
> > Looking at the ARM directives:
> > https://sourceware.org/binutils/docs-2.24/as/ARM-Directives.html#ARM-
> > they don't seem to allow push and pop as values, but they don't preclude
> > resetting the value somewhere within the assembler file either.
> That's the question, should we be explicit about this intention, maybe
> hinting about IFUNC?
In case it is of interest... The MIPS assembler has the concept of a file
level setting and then region level settings. This pre-dates ifunc but
one important use of region level settings is ifunc. Such regions do not
have any impact on how the overall module is annotated. The true reason
for the feature appears to be that programmers generally need get-out
clauses in case they need to violate the normal rules. I.e. we shouldn't
presume to know or enforce exactly how an assembler is used but that doesnât
mean it has to be easy to get non-standard behaviour.
In recent work for MIPS I split the directives into a '.set' which is
(almost) exclusively region specific and '.module' which is module specific
and cannot be used once a code or data directive has been seen.
I guess the question for ARM is whether the .fpu directive changes the
annotation on the object file and if it does, does it do it every time it
is seen or just the first time. If it changes the overall module each time
then that sounds like a source of weird and had-to-find problems.
Hope that is useful.