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:
uwe 2003-08-11 00:45:34 +00:00
parent 927c51ccaf
commit 5b9717919b
3 changed files with 11 additions and 4 deletions

View File

@ -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 */

View File

@ -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"

View File

@ -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] == '*') \