diff options
Diffstat (limited to 'gcc/config/i860')
-rw-r--r-- | gcc/config/i860/i860-protos.h | 3 | ||||
-rw-r--r-- | gcc/config/i860/i860.c | 32 | ||||
-rw-r--r-- | gcc/config/i860/i860.h | 21 |
3 files changed, 18 insertions, 38 deletions
diff --git a/gcc/config/i860/i860-protos.h b/gcc/config/i860/i860-protos.h index ac91f43c8c0..42cbe184fae 100644 --- a/gcc/config/i860/i860-protos.h +++ b/gcc/config/i860/i860-protos.h @@ -59,6 +59,3 @@ extern rtx i860_va_arg PARAMS ((tree, tree)); #ifdef TREE_CODE extern tree i860_build_va_list PARAMS ((void)); #endif /* TREE_CODE */ - -extern void function_prologue PARAMS ((FILE *, unsigned)); -extern void function_epilogue PARAMS ((FILE *, unsigned)); diff --git a/gcc/config/i860/i860.c b/gcc/config/i860/i860.c index fd04a3a30ab..ae72157e774 100644 --- a/gcc/config/i860/i860.c +++ b/gcc/config/i860/i860.c @@ -51,6 +51,8 @@ static const char *singlemove_string PARAMS ((rtx *)); static const char *load_opcode PARAMS ((enum machine_mode, const char *, rtx)); static const char *store_opcode PARAMS ((enum machine_mode, const char *, rtx)); static void output_size_for_block_move PARAMS ((rtx, rtx, rtx)); +static void i860_output_function_prologue PARAMS ((FILE *, HOST_WIDE_INT)); +static void i860_output_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT)); #ifndef I860_REG_PREFIX #define I860_REG_PREFIX "" @@ -63,6 +65,10 @@ const char *i860_reg_prefix = I860_REG_PREFIX; rtx i860_compare_op0, i860_compare_op1; /* Initialize the GCC target structure. */ +#undef TARGET_ASM_FUNCTION_PROLOGUE +#define TARGET_ASM_FUNCTION_PROLOGUE i860_output_function_prologue +#undef TARGET_ASM_FUNCTION_EPILOGUE +#define TARGET_ASM_FUNCTION_EPILOGUE i860_output_function_epilogue struct gcc_target target = TARGET_INITIALIZER; @@ -1557,7 +1563,6 @@ sfmode_constant_to_ulong (x) } /* This function generates the assembly code for function entry. - The macro FUNCTION_PROLOGUE in i860.h is defined to call this function. ASM_FILE is a stdio stream to output the code to. SIZE is an int: how many units of temporary storage to allocate. @@ -1663,14 +1668,14 @@ char *current_function_original_name; static int must_preserve_r1; static unsigned must_preserve_bytes; -void -function_prologue (asm_file, local_bytes) +static void +i860_output_function_prologue (asm_file, local_bytes) register FILE *asm_file; - register unsigned local_bytes; + register HOST_WIDE_INT local_bytes; { - register unsigned frame_lower_bytes; - register unsigned frame_upper_bytes; - register unsigned total_fsize; + register HOST_WIDE_INT frame_lower_bytes; + register HOST_WIDE_INT frame_upper_bytes; + register HOST_WIDE_INT total_fsize; register unsigned preserved_reg_bytes = 0; register unsigned i; register unsigned preserved_so_far = 0; @@ -1929,7 +1934,6 @@ function_prologue (asm_file, local_bytes) } /* This function generates the assembly code for function exit. - The macro FUNCTION_EPILOGUE in i860.h is defined to call this function. ASM_FILE is a stdio stream to output the code to. SIZE is an int: how many units of temporary storage to allocate. @@ -1985,14 +1989,14 @@ typedef struct TDESC { unsigned int negative_frame_size; /* same as frame_lower_bytes */ } TDESC; -void -function_epilogue (asm_file, local_bytes) +static void +i860_output_function_epilogue (asm_file, local_bytes) register FILE *asm_file; - register unsigned local_bytes; + register HOST_WIDE_INT local_bytes; { - register unsigned frame_upper_bytes; - register unsigned frame_lower_bytes; - register unsigned preserved_reg_bytes = 0; + register HOST_WIDE_INT frame_upper_bytes; + register HOST_WIDE_INT frame_lower_bytes; + register HOST_WIDE_INT preserved_reg_bytes = 0; register unsigned i; register unsigned restored_so_far = 0; register unsigned int_restored; diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h index 510a863b033..1f681314374 100644 --- a/gcc/config/i860/i860.h +++ b/gcc/config/i860/i860.h @@ -557,14 +557,6 @@ struct cumulative_args { int ints, floats; }; ? PARM_BOUNDARY \ : GET_MODE_ALIGNMENT(MODE))) -/* This macro generates the assembly code for function entry. - - FILE is a stdio stream to output the code to. - SIZE is an int: how many units of temporary storage to allocate. -*/ - -#define FUNCTION_PROLOGUE(FILE, SIZE) function_prologue ((FILE), (SIZE)) - /* Output a no-op just before the beginning of the function, to ensure that there does not appear to be a delayed branch there. Such a thing would confuse interrupt recovery. */ @@ -584,19 +576,6 @@ struct cumulative_args { int ints, floats; }; #define EXIT_IGNORE_STACK 1 -/* This macro generates the assembly code for function exit. - - FILE is a stdio stream to output the code to. - SIZE is an int: how many units of temporary storage to allocate. - - The function epilogue should not depend on the current stack pointer! - It should use the frame pointer only. This is mandatory because - of alloca; we also take advantage of it to omit stack adjustments - before returning. -*/ - -#define FUNCTION_EPILOGUE(FILE, SIZE) function_epilogue ((FILE), (SIZE)) - /* Generate necessary RTL for __builtin_saveregs(). */ #define EXPAND_BUILTIN_SAVEREGS() \ i860_saveregs() |