diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5113f16339b..153f397524e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -4,6 +4,11 @@ (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise. (USE_STORE_POST_DECREMENT): Likewise. + * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro, + broken out of .. + (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO. + (DWARF_FRAME_RETURN_COLUMN): New macro. + 2011-12-10 Nathan Sidwell PR gcov-profile/51449 diff --git a/gcc/config/epiphany/epiphany.h b/gcc/config/epiphany/epiphany.h index 08b121b8cde..f6f6df7c244 100644 --- a/gcc/config/epiphany/epiphany.h +++ b/gcc/config/epiphany/epiphany.h @@ -565,13 +565,13 @@ typedef struct GTY (()) machine_function #define FRAME_ADDR_RTX(frame) \ ((frame) == hard_frame_pointer_rtx ? arg_pointer_rtx : NULL) +#define EPIPHANY_RETURN_REGNO \ + ((current_function_decl != NULL \ + && epiphany_is_interrupt_p (current_function_decl)) \ + ? IRET_REGNUM : GPR_LR) /* This is not only for dwarf unwind info, but also for the benefit of df-scan.c to tell it that LR is live at the function start. */ -#define INCOMING_RETURN_ADDR_RTX \ - gen_rtx_REG (Pmode, \ - (current_function_decl != NULL \ - && epiphany_is_interrupt_p (current_function_decl) \ - ? IRET_REGNUM : GPR_LR)) +#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, EPIPHANY_RETURN_REGNO) /* However, we haven't implemented the rest needed for dwarf2 unwind info. */ #define DWARF2_UNWIND_INFO 0 @@ -579,6 +579,8 @@ typedef struct GTY (()) machine_function #define RETURN_ADDR_RTX(count, frame) \ (count ? NULL_RTX \ : gen_rtx_UNSPEC (SImode, gen_rtvec (1, const0_rtx), UNSPEC_RETURN_ADDR)) + +#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (EPIPHANY_RETURN_REGNO) /* Trampolines. An epiphany trampoline looks like this: