Re: [RFA]: ARM: Fix parameter handling of FP types in arm_push_arguments()

Corinna Vinschen
2002-02-08T16:13:53Z

On Fri, Feb 08, 2002 at 04:05:13PM +0000, Richard Earnshaw wrote:
> > Hi,
> >
> > while running the testsuite on ARM, I found that the handling
> > of type `float' as argument type in the function arm_push_arguments()
> > is pretty buggy.
> >
> > For some reason the size of float arguments was always given as
> > sizeof(float) even when K&R style functions are called which
> > expect the float arguments with sizeof(double).
> > Up to this point one would expect that calling K&R functions with
> > float arguments is broken.
> >
> > As a matter of fact, arm_push_arguments() coerced float args
> > always to double types so that K&R functions were happy while
> > calling ANSI style functions getting float args were broken.
> >
> > The below fix is doing two things now.
> >
> > - It adds the macro COERCE_FLOAT_TO_DOUBLE() to config/arm/tm-arm.h,
> > calling standard_coerce_float_to_double(). This results in
> > floats being coerced to double already *before* arm_push_arguments()
> > is called.
> >
> > - It eliminates the now useless (and wrong) special float handling
> > from arm_push_arguments().
> >
> > Corinna
> >
> > 2002-02-08 Corinna Vinschen <vinschen@redhat.com>
> >
> > * arm-tdep.c (arm_push_arguments): Eliminate special float
> > type handling.
> > * config/arm/tm-arm.h (COERCE_FLOAT_TO_DOUBLE): Define to
> > call standard_coerce_float_to_double().
>
> This looks good to me. Is there a anything in the testsuite that is fixed
> by this? If not, can you provide one.

Together with the "Fix FP handling for non-multiarched targets"
patch from a few minutes ago this fixes at least the FAILs in
callfuncs.exp, display.exp and oct.exp. I don't have the whole
list handy by now.

Corinna

--
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:vinschen@redhat.com