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.