diff options
Diffstat (limited to 'gcc/config/mep')
-rw-r--r-- | gcc/config/mep/mep-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/mep/mep.c | 12 | ||||
-rw-r--r-- | gcc/config/mep/mep.h | 4 |
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) |