This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC][ARM] Naming for new switch to check for mixed hardfloat/softfloat compat
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: "Thomas Preud'homme" <thomas dot preudhomme at arm dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Sat, 22 Mar 2014 10:07:42 +0000
- Subject: Re: [RFC][ARM] Naming for new switch to check for mixed hardfloat/softfloat compat
- Authentication-results: sourceware.org; auth=none
- References: <873b32b6c5ab5233abff5083d7e7f57a at celest dot fr> <6D39441BF12EF246A7ABCE6654B023534B53F7 at LEMAIL01 dot le dot imgtec dot org> <93929e2462c9db9ad544a5fa33f91388 at celest dot fr> <87vbvtbzcc dot fsf at talisman dot default> <001c01cf428a$e9217dc0$bb647940$ at arm dot com> <87ha6vgxhv dot fsf at talisman dot default> <005201cf44d0$4100ede0$c302c9a0$ at arm dot com>
"Thomas Preud'homme" <thomas.preudhomme@arm.com> writes:
>> From: Richard Sandiford [mailto:rdsandiford@googlemail.com]
>>
>> "Thomas Preud'homme" <thomas.preudhomme@arm.com> writes:
>>
>> -mno-float causes gcc to define the macro __mips_no_float, which the
>> implementation can use when deciding whether to bother handling %f, etc.
>> I'm afraid there's nothing more sophisticated to it than that.
>>
>
> So the libc needs to be compiled with -mno-float as well so that printf and
> scanf drop the float handling?
Yes. The configurations that support -mno-float have separate -mno-float
multilibs. In a sense, the point of -mno-float instead of -msoft-float is
to select these cut-down libraries.
>> A more general restriction would be "must pass arguments in the same
>> way for both option set A and option set B". That too could be done
>> using existing hooks and SWITCHABLE_TARGET, although it might not be
>> hyper-efficient.
>
> I don't know how exactly that would work. You would switch twice for
> each function and ask the register used for each function call?
Yeah, that's the idea. More generally, run initialize_argument_information
once for each ABI and compare the two arg_data arrays. Similarly for
function.c.
Thanks,
Richard