On 08/20/2016 07:07 PM, tbsaunde+...@tbsaunde.org wrote:
From: Trevor Saunders <tbsaunde+...@tbsaunde.org>
Hi,
its kind of silly, and this allows us to remove a few more #ifdefs.
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
-#if HARD_FRAME_POINTER_IS_ARG_POINTER
+#if HARD_FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM
GR_ARG_POINTER = GR_HARD_FRAME_POINTER,
#else
GR_ARG_POINTER,
I think this test here is the reason it's needed - arm.h has the only
non-default definition of H_F_P_I_A_P, and there we have a definition
that I think can't be evaluated by the preprocessor:
#define HARD_FRAME_POINTER_REGNUM \
(TARGET_ARM \
? ARM_HARD_FRAME_POINTER_REGNUM \
: THUMB_HARD_FRAME_POINTER_REGNUM)
Note that this is actually documented in one of the pieces removed by
your patch:
@defmac HARD_FRAME_POINTER_IS_ARG_POINTER
Define this to a preprocessor constant that is nonzero if
@code{hard_frame_pointer_rtx} and @code{arg_pointer_rtx} should be the
same. The default definition is @samp{(HARD_FRAME_POINTER_REGNUM ==
ARG_POINTER_REGNUM)}; you only need to define this macro if that
definition is not suitable for use in preprocessor conditionals.
@end defmac
You can probably remove most of the ifdefs without removing this macro.
Bernd