diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-06 18:40:17 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-06 18:40:17 +0000 |
commit | 17d9b0c371c482b48e92d6556c5f4b2096a4c6e7 (patch) | |
tree | 0ff4b9170093f108e4988c09e21e8b9ff5dd462a /gcc/config/i860 | |
parent | 8faa719fbc0bd299bfbc7005ddef0e3a734f49f0 (diff) | |
download | gcc-17d9b0c371c482b48e92d6556c5f4b2096a4c6e7.tar.gz |
* Makefile.in (final.o): Depend on target.h.
* final.c: Include target.h.
(default_function_pro_epilogue): New.
(final_start_function): Use target structure for function prologues.
(final_end_function): Use target structure for function epilogues.
* fold-const.c (real_hex_to_f): Constify s and p.
* output.h (default_function_pro_epilogue): New.
* real.h (real_hex_to_f): Update prototype.
* target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
(TARGET_INITIALIZER): Update.
* target.h (gcc_target): Add struct asm_out.
* doc/tm.texi: Update.
config:
Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
TARGET_ASM_FUNCTION_EPILOGUE. Move macro code to functions
in cpu/cpu.c, or rename old functions consistently. Take
a HOST_WIDE INT not an int as the SIZE parameter. Remove now
redundant macros and prototypes. Make new functions static.
* 1750a/1750a.c: Similarly.
* 1750a/1750a.h: Similarly.
* a29k/a29k-protos.h: Similarly.
* a29k/a29k.c: Similarly.
* a29k/a29k.h: Similarly.
* arc/arc-protos.h: Similarly.
* arc/arc.c: Similarly.
* arc/arc.h: Similarly.
* arm/arm-protos.h: Similarly.
* arm/arm.c: Similarly.
* arm/arm.h: Similarly.
* avr/avr-protos.h: Similarly.
* avr/avr.c: Similarly.
* avr/avr.h: Similarly.
* clipper/clipper-protos.h: Similarly.
* clipper/clipper.c: Similarly.
* clipper/clipper.h: Similarly.
* convex/convex.c: Similarly.
* convex/convex.h: Similarly.
* d30v/d30v-protos.h: Similarly.
* d30v/d30v.c: Similarly.
* d30v/d30v.h: Similarly.
* d30v/d30v.md: Similarly.
* dsp16xx/dsp16xx-protos.h: Similarly.
* dsp16xx/dsp16xx.c: Similarly.
* dsp16xx/dsp16xx.h: Similarly.
* elxsi/elxsi.c: Similarly.
* elxsi/elxsi.h: Similarly.
* fr30/fr30.c: Similarly.
* fr30/fr30.md: Similarly.
* h8300/h8300-protos.h: Similarly.
* h8300/h8300.c: Similarly.
* h8300/h8300.h: Similarly.
* i370/i370-protos.h: Similarly.
* i370/i370.c: Similarly.
* i370/i370.h: Similarly.
* i386/i386.c: Similarly.
* i386/osf1elf.h: Similarly.
* i386/osfrose.h: Similarly.
* i860/i860-protos.h: Similarly.
* i860/i860.c: Similarly.
* i860/i860.h: Similarly.
* i960/i960-protos.h: Similarly.
* i960/i960.c: Similarly.
* i960/i960.h: Similarly.
* ia64/ia64-protos.h: Similarly.
* ia64/ia64.c: Similarly.
* ia64/ia64.h: Similarly.
* m32r/m32r-protos.h: Similarly.
* m32r/m32r.c: Similarly.
* m32r/m32r.h: Similarly.
* m68hc11/m68hc11-protos.h: Similarly.
* m68hc11/m68hc11.c: Similarly.
* m68hc11/m68hc11.h: Similarly.
* m68k/crds.h: Similarly.
* m68k/dpx2.h: Similarly.
* m68k/m68k-protos.h: Similarly.
* m68k/m68k.c: Similarly.
* m68k/m68k.h: Similarly.
* m68k/news.h: Similarly.
* m88k/m88k-protos.h: Similarly.
* m88k/m88k.c: Similarly.
* m88k/m88k.h: Similarly.
* mips/mips-protos.h: Similarly.
* mips/mips.c: Similarly.
* mips/mips.h: Similarly.
* ns32k/merlin.h: Similarly.
* ns32k/ns32k.c: Similarly.
* ns32k/ns32k.h: Similarly.
* ns32k/tek6000.h: Similarly.
* pa/pa-protos.h: Similarly.
* pa/pa.c: Similarly.
* pa/pa.h: Similarly.
* pdp11/2bsd.h: Similarly.
* pdp11/pdp11-protos.h: Similarly.
* pdp11/pdp11.c: Similarly.
* pdp11/pdp11.h: Similarly.
* romp/romp-protos.h: Similarly.
* romp/romp.c: Similarly.
* romp/romp.h: Similarly.
* rs6000/rs6000-protos.h: Similarly.
* rs6000/rs6000.c: Similarly.
* rs6000/rs6000.h: Similarly.
* rs6000/sysv4.h: Similarly.
* sh/sh-protos.h: Similarly.
* sh/sh.c: Similarly.
* sh/sh.h: Similarly.
* sparc/sparc-protos.h: Similarly.
* sparc/sparc.c: Similarly.
* sparc/sparc.h: Similarly.
* vax/vax.c: Similarly.
* vax/vax.h: Similarly.
* vax/vms.h: Similarly.
* we32k/we32k.c: Similarly.
* we32k/we32k.h: Similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43817 138bc75d-0d04-0410-961f-82ee72b054a4
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() |