diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-20 22:37:14 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-20 22:37:14 +0000 |
commit | 6988553db8dd6c9ae28a7b51e085fa877f3ac2ef (patch) | |
tree | abe4a377f5765b9d4daf391afe9b62b6a6f5af4f /gcc/config/frv | |
parent | 9326242bdcd79b48957d9d56bbe3c4a0d22c0d69 (diff) | |
download | gcc-6988553db8dd6c9ae28a7b51e085fa877f3ac2ef.tar.gz |
* target.h (struct gcc_target): Line wrap.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static.
(TARGET_ASM_OUTPUT_MI_THUNK): Define here...
* config/alpha/alpha.h: ... not here.
* config/alpha/alpha-protos.h: Update.
* config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h
config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h,
config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c,
config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h,
config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h,
config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h,
config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
config/sparc/openbsd.h, config/sparc/sparc-protos.h,
config/sparc/sparc.c, config/sparc/sparc.h,
config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
config/stormy16/stormy16.h: Similarly.
* config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic
selection logic from call patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/frv')
-rw-r--r-- | gcc/config/frv/frv-protos.h | 5 | ||||
-rw-r--r-- | gcc/config/frv/frv.c | 6 | ||||
-rw-r--r-- | gcc/config/frv/frv.h | 32 |
3 files changed, 5 insertions, 38 deletions
diff --git a/gcc/config/frv/frv-protos.h b/gcc/config/frv/frv-protos.h index 5965c58b295..4f5a422cbae 100644 --- a/gcc/config/frv/frv-protos.h +++ b/gcc/config/frv/frv-protos.h @@ -113,11 +113,6 @@ extern rtx frv_return_addr_rtx PARAMS ((int, rtx)); extern rtx frv_index_memory PARAMS ((rtx, enum machine_mode, int)); - -#ifdef TREE_CODE -extern void frv_asm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, tree)); -#endif /* TREE_CODE */ - extern const char *frv_asm_output_opcode PARAMS ((FILE *, const char *)); extern void frv_final_prescan_insn PARAMS ((rtx, rtx *, int)); diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index 39a1cd77b98..7ef2e1adbfb 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -279,6 +279,7 @@ static void frv_encode_section_info PARAMS ((tree, int)); static void frv_init_builtins PARAMS ((void)); static rtx frv_expand_builtin PARAMS ((tree, rtx, rtx, enum machine_mode, int)); static bool frv_in_small_data_p PARAMS ((tree)); +static void frv_asm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, tree)); /* Initialize the GCC target structure. */ #undef TARGET_ASM_FUNCTION_PROLOGUE @@ -298,6 +299,9 @@ static bool frv_in_small_data_p PARAMS ((tree)); #undef TARGET_IN_SMALL_DATA_P #define TARGET_IN_SMALL_DATA_P frv_in_small_data_p +#undef TARGET_ASM_OUTPUT_MI_THUNK +#define TARGET_ASM_OUTPUT_MI_THUNK frv_asm_output_mi_thunk + struct gcc_target targetm = TARGET_INITIALIZER; /* Given a SYMBOL_REF, return true if it points to small data. */ @@ -1866,7 +1870,7 @@ frv_expand_epilogue (sibcall_p) FUNCTION instead of jumping to it. The generic approach does not support varargs. */ -void +static void frv_asm_output_mi_thunk (file, thunk_fndecl, delta, function) FILE *file; tree thunk_fndecl ATTRIBUTE_UNUSED; diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h index f8c2755f1c3..954e86f5b4d 100644 --- a/gcc/config/frv/frv.h +++ b/gcc/config/frv/frv.h @@ -2068,38 +2068,6 @@ struct machine_function GTY(()) adjustment in a function that has no frame pointer, and the compiler knows this regardless of `EXIT_IGNORE_STACK'. */ #define EXIT_IGNORE_STACK 1 - -/* A C compound statement that outputs the assembler code for a thunk function, - used to implement C++ virtual function calls with multiple inheritance. The - thunk acts as a wrapper around a virtual function, adjusting the implicit - object parameter before handing control off to the real function. - - First, emit code to add the integer DELTA to the location that contains the - incoming first argument. Assume that this argument contains a pointer, and - is the one used to pass the `this' pointer in C++. This is the incoming - argument *before* the function prologue, e.g. `%o0' on a sparc. The - addition must preserve the values of all other incoming arguments. - - After the addition, emit code to jump to FUNCTION, which is a - `FUNCTION_DECL'. This is a direct pure jump, not a call, and does not touch - the return address. Hence returning from FUNCTION will return to whoever - called the current `thunk'. - - The effect must be as if FUNCTION had been called directly with the adjusted - first argument. This macro is responsible for emitting all of the code for - a thunk function; `FUNCTION_PROLOGUE' and `FUNCTION_EPILOGUE' are not - invoked. - - The THUNK_FNDECL is redundant. (DELTA and FUNCTION have already been - extracted from it.) It might possibly be useful on some targets, but - probably not. - - If you do not define this macro, the target-independent code in the C++ - frontend will generate a less efficient heavyweight thunk that calls - FUNCTION instead of jumping to it. The generic approach does not support - varargs. */ -#define TARGET_ASM_OUTPUT_MI_THUNK frv_asm_output_mi_thunk - /* Generating Code for Profiling. */ |