> __builtin_apply* and __builtin_return accesses the floating point registers
> on SPARC even when compiling with -msoft-float.

Ouch.  The fix is OK for all active branches but...

> 2015-06-26  Daniel Cederman  <ceder...@gaisler.com>
> 
>       * config/sparc/sparc.c (sparc_function_value_regno_p): Floating
>         point registers cannot be used when compiling for a target
>         without FPU.
>       * config/sparc/sparc.md: A function cannot return a value in a
>         floating point register when compiled without floating point
>         support.

ChangeLog must just describe the what, nothing more.  If the rationale is not 
obvious, then a comment must be added _in the code_ itself.

        * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
        true on %f0 for a target without FPU.
        * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
        without FPU.
        (untyped_return): Do not load %f0 for a target without FPU.

> +
> +  if ( TARGET_FPU )
> +    {
> +      rtx valreg2 = gen_rtx_REG (TARGET_ARCH64 ? TFmode : DFmode, 32);
> +      emit_move_insn (valreg2,
> +                      adjust_address (result, TARGET_ARCH64 ? TFmode :
> DFmode, 8)); +      emit_use (valreg2);
> +    }

Superfluous spaces around TARGET_FPU here.

-- 
Eric Botcazou

Reply via email to