summaryrefslogtreecommitdiff
path: root/gcc/ginclude/va-sh.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ginclude/va-sh.h')
-rw-r--r--gcc/ginclude/va-sh.h15
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)