In sh.h, ASM_OUTPUT_LABELREF - const'itfy lname.
Pull the fix for RETURN_ADDR_RTX from gcc-current: sh-protos.h - 1.45; sh.h - 1.217 (partial); sh.c - 1.230 (partial). Pertinent parts of the gcc changelog follows. prologue / epilogue / warning patches: 2003-07-16 J"orn Rennecke <joern.rennecke@superh.com> Con Bradley <con.bradley@superh.com> * sh-protos.h (sh_get_pr_initial_val): Declare. [...] * sh.h [...] (RETURN_ADDR_RTX): Use sh_get_pr_initial_val.
This commit is contained in:
parent
927c51ccaf
commit
5b9717919b
|
@ -142,4 +142,6 @@ extern void sh_pr_trapa PARAMS ((cpp_reader *));
|
||||||
extern void sh_pr_nosave_low_regs PARAMS ((cpp_reader *));
|
extern void sh_pr_nosave_low_regs PARAMS ((cpp_reader *));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern rtx sh_get_pr_initial_val (void);
|
||||||
|
|
||||||
#endif /* ! GCC_SH_PROTOS_H */
|
#endif /* ! GCC_SH_PROTOS_H */
|
||||||
|
|
|
@ -7857,4 +7857,11 @@ sh_register_operand (op, mode)
|
||||||
return register_operand (op, mode);
|
return register_operand (op, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rtx
|
||||||
|
sh_get_pr_initial_val (void)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG);
|
||||||
|
}
|
||||||
|
|
||||||
#include "gt-sh.h"
|
#include "gt-sh.h"
|
||||||
|
|
|
@ -2140,9 +2140,7 @@ while (0)
|
||||||
can ignore COUNT. */
|
can ignore COUNT. */
|
||||||
|
|
||||||
#define RETURN_ADDR_RTX(COUNT, FRAME) \
|
#define RETURN_ADDR_RTX(COUNT, FRAME) \
|
||||||
(((COUNT) == 0) \
|
(((COUNT) == 0) ? sh_get_pr_initial_val () : (rtx) 0)
|
||||||
? get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG) \
|
|
||||||
: (rtx) 0)
|
|
||||||
|
|
||||||
/* A C expression whose value is RTL representing the location of the
|
/* A C expression whose value is RTL representing the location of the
|
||||||
incoming return address at the beginning of any function, before the
|
incoming return address at the beginning of any function, before the
|
||||||
|
@ -2989,7 +2987,7 @@ while (0)
|
||||||
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
|
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
char * lname; \
|
const char * lname; \
|
||||||
\
|
\
|
||||||
STRIP_DATALABEL_ENCODING (lname, (NAME)); \
|
STRIP_DATALABEL_ENCODING (lname, (NAME)); \
|
||||||
if (lname[0] == '*') \
|
if (lname[0] == '*') \
|
||||||
|
|
Loading…
Reference in New Issue