On Thu, Jul 3, 2014 at 4:15 PM, Richard Earnshaw <rearn...@arm.com> wrote:
> The VFP9 floating-point unit (as occasionally used with ARM9 devices)
> has an erratum (760019) whereby it is possible for floating-point
> division and square-root instructions to be executed twice.  This is not
> a problem if the destination register is not used as an input, but can
> cause incorrect results if they do.
>
> The safest work-around for this issue is to make the compiler treat
> these instructions as early-clobber; this ensures that the conditions
> for result corruption cannot occur.
>
> This patch takes that approach, but relaxes back to the original
> behaviour when either the architecture level is ARMv6 or higher or the
> VFP sub-architecture level is VFPv3 or higher; if either of these are
> true then the code cannot run on an affected part.
>
> 2014-07-03  Richard Earnshaw  <rearn...@arm.com>
>
>         * arm.md (arch): Add armv6_or_vfpv3.
>         (arch_enabled): Add test for the above.
>         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
>         on VFP9.
>         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
Richard, you would need full relative path for back-end files here.

Thanks,
bin
>
> Committed to trunk.
>
> R.

Reply via email to