summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/dbxout.c11
-rw-r--r--gcc/ginclude/va-i860.h4
-rw-r--r--gcc/libgcc2.c8
3 files changed, 8 insertions, 15 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index d5ac243aaa5..4436c312830 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -1402,16 +1402,6 @@ dbxout_symbol (decl, local)
fprintf (asmfile, "%s \"%s:", ASM_STABS_OP,
IDENTIFIER_POINTER (DECL_NAME (decl)));
-/* #ifndef DBX_NO_EXTRA_TAGS rms: I think this is no longer needed. */
- /* This section makes absolutely no sense to me. Why would a tag
- ever be needed at this point? The result of this is that any
- structure typedef with the tag omitted is treated as if the
- tag was given to be the same as the typedef name. Probably
- no harm in it, unless the programmer used the same name for
- the tag of a *different* structure. At any rate, Alliant's
- debugger would want the tag output before the typedef, so
- this code still loses. -- hyc */
-
/* Short cut way to output a tag also. */
if ((TREE_CODE (type) == RECORD_TYPE
|| TREE_CODE (type) == UNION_TYPE)
@@ -1427,7 +1417,6 @@ dbxout_symbol (decl, local)
tag_needed = 1;
#endif
}
-/* #endif */
putc ('t', asmfile);
current_sym_code = DBX_TYPE_DECL_STABS_CODE;
diff --git a/gcc/ginclude/va-i860.h b/gcc/ginclude/va-i860.h
index 9983a639f72..632960a614f 100644
--- a/gcc/ginclude/va-i860.h
+++ b/gcc/ginclude/va-i860.h
@@ -31,7 +31,7 @@ typedef union {
} __f_regs;
typedef struct {
-#ifdef __SVR4__
+#if defined(__SVR4__) || defined(__alliant__)
__f_regs __float_regs; long __ireg[12];
#else /* pre-SVR4 */
long __ireg[12]; __f_regs __float_regs;
@@ -43,7 +43,7 @@ typedef struct {
#define __GNU_VA_LIST /* Field names were properly prefixed with `__'. */
typedef struct {
-#ifdef __SVR4__
+#if defined(__SVR4__) || defined(__alliant__)
unsigned __ireg_used; /* How many int regs consumed 'til now? */
unsigned __freg_used; /* How many flt regs consumed 'til now? */
long *__reg_base; /* Address of where we stored the regs. */
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 384d214c36c..8d5ad4ac756 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -764,13 +764,17 @@ __fixunssfsi (float a)
#ifdef L_varargs
#ifdef __i860__
-#ifdef SVR4
+#if defined(SVR4) || defined(__alliant__)
asm (" .text");
asm (" .align 4");
+/* The Alliant needs the added underscore. */
asm (".globl __builtin_saveregs");
asm ("__builtin_saveregs:");
- asm (" andnot 0x0f,%sp,%sp"); /* round down to 16-byte boundary */
+ asm (".globl ___builtin_saveregs");
+asm ("___builtin_saveregs:");
+
+ asm (" andnot 0x0f,%sp,%sp"); /* round down to 16-byte boundary */
asm (" adds -96,%sp,%sp"); /* allocate stack space for reg save
area and also for a new va_list
structure */