/* Definitions of target machine for GNU compiler,
for Sun SPARC-V9 on a hypothetical elf format machine.
- Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
Contributed by Doug Evans, dje@cygnus.com.
This file is part of GNU CC.
/* This is a v9 only compiler. -mv8 is not expected to work. If you want
a v8/v9 compiler, this isn't the place to do it. */
-/* ??? Until real v9 machines exist, all of this is subject to change. */
-/* ??? This file should really be called sp64-sol2.h or some such but that
- would be a bit misleading since no such machines exist yet. The current
- name is also misleading since the term "elf" is more properly applied to
- embedded configurations. */
-#define SPARCV9 /* See sparc.h. */
+#define SPARC_V9 1 /* See sparc.h. */
+#define SPARC_ARCH64 1
/* ??? We're taking the scheme of including another file and then overriding
the values we don't like a bit too far here. The alternative is to more or
less duplicate all of svr4.h, sparc/sysv4.h, and sparc/sol2.h here
- (suitably cleaned up). Until real sparc64 machines exist, it's not clear
- which is better. */
+ (suitably cleaned up). */
#include "sparc/sol2.h"
#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
- (MASK_V9 + MASK_STACK_BIAS + MASK_MEDANY + MASK_PTR64 + MASK_HARD_QUAD + MASK_EPILOGUE + MASK_FPU)
+ (MASK_V9 + MASK_ARCH64 + MASK_PTR64 + MASK_HARD_QUAD \
+ + MASK_STACK_BIAS + MASK_MEDANY + MASK_EPILOGUE + MASK_FPU)
/* __svr4__ is used by the C library */
#undef CPP_PREDEFINES
"
#undef ENDFILE_SPEC
-#define ENDFILE_SPEC "%{!nostartfiles:crtend.o%s}"
+#define ENDFILE_SPEC "crtend.o%s"
/* Use the default (for now). */
#undef LIB_SPEC
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 16
-/* ??? Disabled for v9 as the current implementation of the Medium/Anywhere
- code model needs this in the data segment (still true?). Let's hope the
- assembler is fixed. */
+/* The medium/anywhere code model practically requires us to put jump tables
+ in the text section as gcc is unable to distinguish LABEL_REF's of jump
+ tables from other label refs (when we need to). */
#undef JUMP_TABLES_IN_TEXT_SECTION
+#define JUMP_TABLES_IN_TEXT_SECTION
/* System V Release 4 uses DWARF debugging info.
GDB doesn't support 64 bit stabs yet and the desired debug format is DWARF
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF_DEBUG
+/* Stabs doesn't use this, and it confuses a simulator. */
+/* ??? Need to see what DWARF needs, if anything. */
+#undef ASM_IDENTIFY_GCC
+#define ASM_IDENTIFY_GCC(FILE)
+
/* Define the names of various pseudo-ops used by the Sparc/svr4 assembler.
??? If ints are 64 bits then UNALIGNED_INT_ASM_OP (defined elsewhere) is
misnamed. These should all refer to explicit sizes (half/word/xword?),