summaryrefslogtreecommitdiff
path: root/gcc/config/mep
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-22 15:14:04 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-22 15:14:04 +0000
commit8786c274f52a932d14464d5cbd7f8ffbdfe13d2f (patch)
tree64effb3fb9e63d1e50df7819a073b4a2bc8811c0 /gcc/config/mep
parent74e653fe7b3303cb5c85408fd1e9e3eac5e52a52 (diff)
downloadgcc-8786c274f52a932d14464d5cbd7f8ffbdfe13d2f.tar.gz
* config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
* config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New. (mep_trampoline_init): Rename from mep_init_trampoline; make static; update for hook parameters. * config/mep/mep-protos.h (mep_init_trampoline): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152000 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mep')
-rw-r--r--gcc/config/mep/mep-protos.h1
-rw-r--r--gcc/config/mep/mep.c12
-rw-r--r--gcc/config/mep/mep.h4
3 files changed, 9 insertions, 8 deletions
diff --git a/gcc/config/mep/mep-protos.h b/gcc/config/mep/mep-protos.h
index e53ca79639c..82be465ad04 100644
--- a/gcc/config/mep/mep-protos.h
+++ b/gcc/config/mep/mep-protos.h
@@ -89,7 +89,6 @@ extern void mep_file_cleanups (void);
extern const char *mep_strip_name_encoding (const char *);
extern void mep_output_aligned_common (FILE *, tree, const char *,
int, int, int);
-extern void mep_init_trampoline (rtx, rtx, rtx);
extern void mep_emit_doloop (rtx *, int);
extern bool mep_vliw_function_p (tree);
extern bool mep_store_data_bypass_p (rtx, rtx);
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 4c37d38f0b0..dcf536259fa 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -229,6 +229,7 @@ static tree mep_build_builtin_va_list (void);
static void mep_expand_va_start (tree, rtx);
static tree mep_gimplify_va_arg_expr (tree, tree, tree *, tree *);
static bool mep_can_eliminate (const int, const int);
+static void mep_trampoline_init (rtx, tree, rtx);
/* Initialize the GCC target structure. */
@@ -300,8 +301,10 @@ static bool mep_can_eliminate (const int, const int);
#define TARGET_EXPAND_BUILTIN_VA_START mep_expand_va_start
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
#define TARGET_GIMPLIFY_VA_ARG_EXPR mep_gimplify_va_arg_expr
-#undef TARGET_CAN_ELIMINATE
+#undef TARGET_CAN_ELIMINATE
#define TARGET_CAN_ELIMINATE mep_can_eliminate
+#undef TARGET_TRAMPOLINE_INIT
+#define TARGET_TRAMPOLINE_INIT mep_trampoline_init
struct gcc_target targetm = TARGET_INITIALIZER;
@@ -4922,9 +4925,12 @@ mep_output_aligned_common (FILE *stream, tree decl, const char *name,
/* Trampolines. */
-void
-mep_init_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
+static void
+mep_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain)
{
+ rtx addr = XEXP (m_tramp, 0);
+ rtx fnaddr = XEXP (DECL_RTL (fndecl), 0);
+
emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__mep_trampoline_helper"),
LCT_NORMAL, VOIDmode, 3,
addr, Pmode,
diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h
index fff79626807..8b00a444ce2 100644
--- a/gcc/config/mep/mep.h
+++ b/gcc/config/mep/mep.h
@@ -565,10 +565,6 @@ typedef struct
run-time also. */
#define TRAMPOLINE_SIZE 20
-
-#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN) \
- mep_init_trampoline (ADDR, FNADDR, STATIC_CHAIN)
-
#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)