On 27/11/13 02:07, Richard Earnshaw wrote: > On 23/11/13 01:54, Kugan wrote:
[snip] >> +2013-11-22 Kugan Vivekanandarajah <kug...@linaro.org> >> + >> + * libgcc/config/arm/pbapi-lib.h (HAVE_NO_HW_DIVIDE): Define for > > It's bpabi-lib.h Thanks for the review. >> + __ARM_ARCH_7_A__. >> + >> >> > > No, this will: > 1) Do the wrong thing for Cortex-a7, A12 and A15 (which all have HW > divide, and currently define __ARM_ARCH_7_A__). > 2) Do the wrong thing for v7-M and v7-R devices, which have Thumb HW > division instructions. > 3) Do the wrong thing for all pre-v7 devices, which don't have HW division. > > I think the correct solution is to test !defined(__ARM_ARCH_EXT_IDIV__) I understand it now and updated the code as attached. +2013-11-27 Kugan Vivekanandarajah <kug...@linaro.org> + + * config/arm/bpapi-lib.h (TARGET_HAS_NO_HW_DIVIDE): Define for + architectures that does not have hardware divide instruction. + i.e. architectures that does not define __ARM_ARCH_EXT_IDIV__. + Is this OK for trunk now? Thanks, Kugan
diff --git a/libgcc/config/arm/bpabi-lib.h b/libgcc/config/arm/bpabi-lib.h index e0e46a6..7c6b489 100644 --- a/libgcc/config/arm/bpabi-lib.h +++ b/libgcc/config/arm/bpabi-lib.h @@ -75,3 +75,7 @@ helper functions - not everything in libgcc - in the interests of maintaining backward compatibility. */ #define LIBGCC2_FIXEDBIT_GNU_PREFIX + +#if (!defined(__ARM_ARCH_EXT_IDIV__)) +# define TARGET_HAS_NO_HW_DIVIDE +#endif