Hi Prathamesh,

Could you split out the ARM specific portions into a separate patch
please in a patch series?

>@deftypefn {Target Hook} void TARGET_EXPAND_DIVMOD_LIBFUNC (bool 
>@var{unsignedp}, machine_mode @var{mode}, @var{rtx}, @var{rtx}, rtx 
>*@var{quot}, rtx *@var{rem})
>Expand divmod libfunc
>@end deftypefn
>

This could do with some more detail here with respect to the
conditions when a port needs
to define this particular macro.

Based on the discussion it would be good to have an assert for
TARGET_IDIV in the hook
for the ARM port.

i.e gcc_assert (!TARGET_IDIV);


>
># Return 1 if the target supports divmod
>
>proc check_effective_target_divmod { } {
>    if { [istarget arm*-*-*] } {
>       return 1
>    }
>    return 0
>}
>

This will fail test cases in a configuration where a div instruction
exists. If you are looking to
check the transformation - I think you need to check for __ARM_ARCH_EXT_IDIV__
here similar to the way in which we test for FMA or __ARM_FEATURE_UNALIGNED.

Could you please repost with the changes so that I can take another look ?

Otherwise I think this is something we should queue up for GCC 7.

thanks,
Ramana

Reply via email to