Hi Keith,

> This option (enabled by default) preserves existing behavior by
> allowing use of Advanced SIMD registers while expanding
> memset/memcpy/memmove operations into inline instructions.
>
> Disabling this option prevents use of these registers for environments
> where the FPU may be disabled to reduce the cost of saving/restoring
> the processor state, such as in interrupt handlers.
>
> The second patch in this series disables this option by default for
> aarch64*-*-elf targets as those are often used for embedded systems
> with interrupt handlers.

I don't see how this makes any sense. If TARGET_SIMD or TARGET_FP
are true, the compiler may at any time use a SIMD register for anything -
including in integer-only code. And making it the default for embedded
targets would make code slower&larger for everybody - I don't see how
that could be justified given that interrupt handlers always need special
consideration anyway and represent a tiny fraction of all code...

AArch64 has -mgeneral-regs-only which does exactly what you want,
so any interrupt code can be built using that.

Cheers,
Wilco

Reply via email to