diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-02-25 14:02:32 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-02-25 14:02:32 +0000 |
commit | 8b8232043f053ecbe1c8d70f0af39dc1b5f1b558 (patch) | |
tree | 4b4ce259afa9f7f20acfba1fca1ef92f60b9c55f /gcc/ginclude | |
parent | 49d8becd33c81b0c00d44cb83544776861817ee5 (diff) | |
download | gcc-8b8232043f053ecbe1c8d70f0af39dc1b5f1b558.tar.gz |
* sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
in registers.
* expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
* function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
* calls.c (expand_call): Likewise.
* sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
stdarg arguments.
* sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
(FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
arguments in registers.
(PRETEND_OUTGOING_VARARGS_NAMED): Define.
* va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
flavour varargs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25440 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ginclude')
-rw-r--r-- | gcc/ginclude/va-sh.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ginclude/va-sh.h b/gcc/ginclude/va-sh.h index 0bfc84c1350..dc4e3ae8079 100644 --- a/gcc/ginclude/va-sh.h +++ b/gcc/ginclude/va-sh.h @@ -1,12 +1,15 @@ -/* This is just like the default gvarargs.h - except for differences described below. */ +/* The ! __SH3E_VARG case is similar to the default gvarargs.h . */ + +#if (defined (__SH3E__) || defined (__SH4_SINGLE__) || defined (__SH4__) || defined (__SH4_SINGLE_ONLY__)) && ! defined (__HITACHI__) +#define __SH3E_VARG +#endif /* Define __gnuc_va_list. */ #ifndef __GNUC_VA_LIST #define __GNUC_VA_LIST -#if defined (__SH3E__) || defined (__SH4_SINGLE__) || defined (__SH4__) || defined (__SH4_SINGLE_ONLY__) +#ifdef __SH3E_VARG typedef long __va_greg; typedef float __va_freg; @@ -33,7 +36,7 @@ typedef void *__gnuc_va_list; #ifdef _STDARG_H -#if defined (__SH3E__) || defined (__SH4_SINGLE__) || defined (__SH4__) || defined (__SH4_SINGLE_ONLY__) +#ifdef __SH3E_VARG #define va_start(AP, LASTARG) \ __extension__ \ @@ -59,7 +62,7 @@ __extension__ \ #define va_alist __builtin_va_alist #define va_dcl int __builtin_va_alist;... -#if defined (__SH3E__) || defined (__SH4_SINGLE__) || defined (__SH4__) || defined (__SH4_SINGLE_ONLY__) +#ifdef __SH3E_VARG #define va_start(AP) \ __extension__ \ @@ -164,7 +167,7 @@ enum __va_type_classes { ? (((union { TYPE t; int i;} *__VA_REF) (AP))++)->t \ : ((union {TYPE t;TYPE u;}*) ((char *)++(int *__VA_REF)(AP) - sizeof (TYPE)))->t);}) -#if defined (__SH3E__) || defined (__SH4_SINGLE__) || defined (__SH4__) || defined (__SH4_SINGLE_ONLY__) +#ifdef __SH3E_VARG #define __PASS_AS_FLOAT(TYPE_CLASS,SIZE) \ (TYPE_CLASS == __real_type_class && SIZE == 4) |