aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh/sh.h
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2004-06-29 17:37:06 +0000
committerJ"orn Rennecke <joern.rennecke@superh.com>2004-06-29 17:37:06 +0000
commitbdc4eadb9eba888c87df917d4447cf4f91d61ce2 (patch)
treeed1ca1c5a62b8be4a8fc5f5cf26b9a8567297a0d /gcc/config/sh/sh.h
parent5d442a8a5c9627250972f55f0027f53d3928bc9a (diff)
Fix gcc.dg/builtin-apply2.c failures:
* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define. * sh.c (extra_push): Delete. (sh_expand_prologue): Don't do extra stack adjustment for current_function_pretend_args_size if it comes from varargs setup. Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push. (sh_expand_epilogue): Don't use extra_push. (sh_setup_incoming_varargs): Set pretend_arg_size when necessary. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/sh-elf-3_5-branch@83863 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/sh.h')
-rw-r--r--gcc/config/sh/sh.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index f6154a32200..0d6d1c6570c 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -263,6 +263,11 @@ extern int target_flags;
#define TARGET_SAVE_ALL_TARGET_REGS (target_flags & SAVE_ALL_TR_BIT)
+/* This is not used by the SH2E calling convention */
+#define TARGET_VARARGS_PRETEND_ARGS(FUN_DECL) \
+ (TARGET_SH1 && ! TARGET_SH2E && ! TARGET_SH5 \
+ && ! (TARGET_HITACHI || sh_attr_renesas_p (FUN_DECL)))
+
#ifndef TARGET_CPU_DEFAULT
#define TARGET_CPU_DEFAULT SELECT_SH1
#define SUPPORT_SH1