# HG changeset patch
# Parent 465e0a61b396af5b96f194a4eecaa8d2103c3cfb
Remove non-GAS non-ELF support in alpha backend
@@ -763,25 +763,21 @@ case ${target} in
alpha*-*-linux*)
tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
extra_options="${extra_options} alpha/elf.opt"
- target_cpu_default="MASK_GAS"
;;
alpha*-*-freebsd*)
tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
extra_options="${extra_options} alpha/elf.opt"
- target_cpu_default="MASK_GAS"
;;
alpha*-*-netbsd*)
tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
alpha/elf.opt"
- target_cpu_default="MASK_GAS"
;;
alpha*-*-openbsd*)
tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
tm_file="alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
extra_options="${extra_options} openbsd.opt alpha/elf.opt"
# default x-alpha is only appropriate for dec-osf.
- target_cpu_default="MASK_GAS"
;;
alpha*-dec-*vms*)
tm_file="${tm_file} vms/vms.h alpha/vms.h"
@@ -3430,13 +3426,6 @@ esac
# Set some miscellaneous flags for particular targets.
target_cpu_default2=
case ${target} in
- alpha*-*-*)
- if test x$gas = xyes
- then
- target_cpu_default2="MASK_GAS"
- fi
- ;;
-
arm*-*-*)
if test x$target_cpu_cname = x
then
@@ -428,9 +428,8 @@ alpha_option_override (void)
target_flags &= ~MASK_SMALL_DATA;
/* Align labels and loops for optimal branching. */
- /* ??? Kludge these by not doing anything if we don't optimize and also if
- we are writing ECOFF symbols to work around a bug in DEC's assembler. */
- if (optimize > 0 && write_symbols != SDB_DEBUG)
+ /* ??? Kludge these by not doing anything if we don't optimize. */
+ if (optimize > 0)
{
if (align_loops <= 0)
align_loops = 16;
@@ -4988,8 +4987,7 @@ print_operand (FILE *file, rtx x, int co
const char *round = get_round_mode_suffix ();
if (trap || round)
- fprintf (file, (TARGET_AS_SLASH_BEFORE_SUFFIX ? "/%s%s" : "%s%s"),
- (trap ? trap : ""), (round ? round : ""));
+ fprintf (file, "/%s%s", (trap ? trap : ""), (round ? round : ""));
break;
}
@@ -7889,27 +7887,6 @@ alpha_start_function (FILE *file, const
alpha_sa_mask (&imask, &fmask);
- /* Ecoff can handle multiple .file directives, so put out file and lineno.
- We have to do that before the .ent directive as we cannot switch
- files within procedures with native ecoff because line numbers are
- linked to procedure descriptors.
- Outputting the lineno helps debugging of one line functions as they
- would otherwise get no line number at all. Please note that we would
- like to put out last_linenum from final.c, but it is not accessible. */
-
- if (write_symbols == SDB_DEBUG)
- {
-#ifdef ASM_OUTPUT_SOURCE_FILENAME
- ASM_OUTPUT_SOURCE_FILENAME (file,
- DECL_SOURCE_FILE (current_function_decl));
-#endif
-#ifdef SDB_OUTPUT_SOURCE_LINE
- if (debug_info_level != DINFO_LEVEL_TERSE)
- SDB_OUTPUT_SOURCE_LINE (file,
- DECL_SOURCE_LINE (current_function_decl));
-#endif
- }
-
/* Issue function start and label. */
if (TARGET_ABI_OPEN_VMS || !flag_inhibit_size_directive)
{
@@ -8388,11 +8365,6 @@ alpha_output_mi_thunk_osf (FILE *file, t
#include "gstab.h"
-/* Count the number of sdb related labels are generated (to find block
- start and end boundaries). */
-
-int sdb_label_count = 0;
-
/* Name of the file containing the current function. */
static const char *current_function_file = "";
@@ -8417,25 +8389,14 @@ alpha_output_filename (FILE *stream, con
fprintf (stream, "\t.file\t%d ", num_source_filenames);
output_quoted_string (stream, name);
fprintf (stream, "\n");
- if (!TARGET_GAS && write_symbols == DBX_DEBUG)
- fprintf (stream, "\t#@stabs\n");
- }
-
- else if (write_symbols == DBX_DEBUG)
- /* dbxout.c will emit an appropriate .stabs directive. */
- return;
+ }
else if (name != current_function_file
&& strcmp (name, current_function_file) != 0)
{
- if (inside_function && ! TARGET_GAS)
- fprintf (stream, "\t#.file\t%d ", num_source_filenames);
- else
- {
- ++num_source_filenames;
- current_function_file = name;
- fprintf (stream, "\t.file\t%d ", num_source_filenames);
- }
+ ++num_source_filenames;
+ current_function_file = name;
+ fprintf (stream, "\t.file\t%d ", num_source_filenames);
output_quoted_string (stream, name);
fprintf (stream, "\n");
@@ -9374,24 +9335,15 @@ alpha_reorg (void)
}
}
-#ifdef HAVE_STAMP_H
-#include <stamp.h>
-#endif
-
static void
alpha_file_start (void)
{
-#ifdef OBJECT_FORMAT_ELF
/* If emitting dwarf2 debug information, we cannot generate a .file
directive to start the file, as it will conflict with dwarf2out
file numbers. So it's only useful when emitting mdebug output. */
- targetm.asm_file_start_file_directive = (write_symbols == DBX_DEBUG);
-#endif
+ targetm.asm_file_start_file_directive = 0;
default_file_start ();
-#ifdef MS_STAMP
- fprintf (asm_out_file, "\t.verstamp %d %d\n", MS_STAMP, LS_STAMP);
-#endif
fputs ("\t.set noreorder\n", asm_out_file);
fputs ("\t.set volatile\n", asm_out_file);
@@ -9418,7 +9370,6 @@ alpha_file_start (void)
}
}
-#ifdef OBJECT_FORMAT_ELF
/* Since we don't have a .dynbss section, we should not allow global
relocations in the .rodata section. */
@@ -9458,7 +9409,6 @@ alpha_elf_section_type_flags (tree decl,
flags |= default_section_type_flags (decl, name, reloc);
return flags;
}
-#endif /* OBJECT_FORMAT_ELF */
/* Structure to collect function names for final output in link section. */
/* Note that items marked with GTY can't be ifdef'ed out. */
@@ -9741,7 +9691,7 @@ alpha_conditional_register_usage (void)
/* Default unaligned ops are provided for ELF systems. To get unaligned
data for non-ELF systems, we have to turn off auto alignment. */
-#if !defined (OBJECT_FORMAT_ELF) || TARGET_ABI_OPEN_VMS
+#if TARGET_ABI_OPEN_VMS
#undef TARGET_ASM_UNALIGNED_HI_OP
#define TARGET_ASM_UNALIGNED_HI_OP "\t.align 0\n\t.word\t"
#undef TARGET_ASM_UNALIGNED_SI_OP
@@ -9750,14 +9700,12 @@ alpha_conditional_register_usage (void)
#define TARGET_ASM_UNALIGNED_DI_OP "\t.align 0\n\t.quad\t"
#endif
-#ifdef OBJECT_FORMAT_ELF
#undef TARGET_ASM_RELOC_RW_MASK
#define TARGET_ASM_RELOC_RW_MASK alpha_elf_reloc_rw_mask
#undef TARGET_ASM_SELECT_RTX_SECTION
#define TARGET_ASM_SELECT_RTX_SECTION alpha_elf_select_rtx_section
#undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS alpha_elf_section_type_flags
-#endif
#undef TARGET_ASM_FUNCTION_END_PROLOGUE
#define TARGET_ASM_FUNCTION_END_PROLOGUE alpha_output_function_end_prologue
@@ -146,12 +146,6 @@ extern enum alpha_fp_trap_mode alpha_fpt
#define TARGET_ABI_OPEN_VMS 0
#define TARGET_ABI_OSF (!TARGET_ABI_OPEN_VMS)
-#ifndef TARGET_AS_CAN_SUBTRACT_LABELS
-#define TARGET_AS_CAN_SUBTRACT_LABELS TARGET_GAS
-#endif
-#ifndef TARGET_AS_SLASH_BEFORE_SUFFIX
-#define TARGET_AS_SLASH_BEFORE_SUFFIX TARGET_GAS
-#endif
#ifndef TARGET_CAN_FAULT_IN_PROLOGUE
#define TARGET_CAN_FAULT_IN_PROLOGUE 0
#endif
@@ -1154,24 +1148,11 @@ do { \
#define PRINT_OPERAND_ADDRESS(FILE, ADDR) \
print_operand_address((FILE), (ADDR))
-/* Tell collect that the object format is ECOFF. */
-#define OBJECT_FORMAT_COFF
-#define EXTENDED_COFF
-
/* If we use NM, pass -g to it so it only lists globals. */
#define NM_FLAGS "-pg"
/* Definitions for debugging. */
-#define SDB_DEBUGGING_INFO 1 /* generate info for mips-tfile */
-#define DBX_DEBUGGING_INFO 1 /* generate embedded stabs */
-#define MIPS_DEBUGGING_INFO 1 /* MIPS specific debugging info */
-
-#ifndef PREFERRED_DEBUGGING_TYPE /* assume SDB_DEBUGGING_INFO */
-#define PREFERRED_DEBUGGING_TYPE SDB_DEBUG
-#endif
-
-
/* Correct the offset of automatic variables and arguments. Note that
the Alpha debug format wants all automatic variables and arguments
to be in terms of two different offsets from the virtual frame pointer,
@@ -1191,99 +1172,11 @@ extern long alpha_auto_offset;
((GET_CODE (X) == PLUS ? INTVAL (XEXP (X, 1)) : 0) + alpha_auto_offset)
#define DEBUGGER_ARG_OFFSET(OFFSET, X) (OFFSET + alpha_arg_offset)
-/* mips-tfile doesn't understand .stabd directives. */
-#define DBX_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) do { \
- dbxout_begin_stabn_sline (LINE); \
- dbxout_stab_value_internal_label ("LM", &COUNTER); \
-} while (0)
-
-/* We want to use MIPS-style .loc directives for SDB line numbers. */
-extern int num_source_filenames;
-#define SDB_OUTPUT_SOURCE_LINE(STREAM, LINE) \
- fprintf (STREAM, "\t.loc\t%d %d\n", num_source_filenames, LINE)
-
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
alpha_output_filename (STREAM, NAME)
-/* mips-tfile.c limits us to strings of one page. We must underestimate this
- number, because the real length runs past this up to the next
- continuation point. This is really a dbxout.c bug. */
-#define DBX_CONTIN_LENGTH 3000
-
/* By default, turn on GDB extensions. */
#define DEFAULT_GDB_EXTENSIONS 1
-/* Stabs-in-ECOFF can't handle dbxout_function_end(). */
-#define NO_DBX_FUNCTION_END 1
-
-/* If we are smuggling stabs through the ALPHA ECOFF object
- format, put a comment in front of the .stab<x> operation so
- that the ALPHA assembler does not choke. The mips-tfile program
- will correctly put the stab into the object file. */
-
-#define ASM_STABS_OP ((TARGET_GAS) ? "\t.stabs\t" : " #.stabs\t")
-#define ASM_STABN_OP ((TARGET_GAS) ? "\t.stabn\t" : " #.stabn\t")
-#define ASM_STABD_OP ((TARGET_GAS) ? "\t.stabd\t" : " #.stabd\t")
-
-/* Forward references to tags are allowed. */
-#define SDB_ALLOW_FORWARD_REFERENCES
-
-/* Unknown tags are also allowed. */
-#define SDB_ALLOW_UNKNOWN_REFERENCES
-
-#define PUT_SDB_DEF(a) \
-do { \
- fprintf (asm_out_file, "\t%s.def\t", \
- (TARGET_GAS) ? "" : "#"); \
- ASM_OUTPUT_LABELREF (asm_out_file, a); \
- fputc (';', asm_out_file); \
-} while (0)
-
-#define PUT_SDB_PLAIN_DEF(a) \
-do { \
- fprintf (asm_out_file, "\t%s.def\t.%s;", \
- (TARGET_GAS) ? "" : "#", (a)); \
-} while (0)
-
-#define PUT_SDB_TYPE(a) \
-do { \
- fprintf (asm_out_file, "\t.type\t0x%x;", (a)); \
-} while (0)
-
-/* For block start and end, we create labels, so that
- later we can figure out where the correct offset is.
- The normal .ent/.end serve well enough for functions,
- so those are just commented out. */
-
-extern int sdb_label_count; /* block start/end next label # */
-
-#define PUT_SDB_BLOCK_START(LINE) \
-do { \
- fprintf (asm_out_file, \
- "$Lb%d:\n\t%s.begin\t$Lb%d\t%d\n", \
- sdb_label_count, \
- (TARGET_GAS) ? "" : "#", \
- sdb_label_count, \
- (LINE)); \
- sdb_label_count++; \
-} while (0)
-
-#define PUT_SDB_BLOCK_END(LINE) \
-do { \
- fprintf (asm_out_file, \
- "$Le%d:\n\t%s.bend\t$Le%d\t%d\n", \
- sdb_label_count, \
- (TARGET_GAS) ? "" : "#", \
- sdb_label_count, \
- (LINE)); \
- sdb_label_count++; \
-} while (0)
-
-#define PUT_SDB_FUNCTION_START(LINE)
-
-#define PUT_SDB_FUNCTION_END(LINE)
-
-#define PUT_SDB_EPILOGUE_END(NAME) ((void)(NAME))
-
/* The system headers under Alpha systems are generally C++-aware. */
#define NO_IMPLICIT_EXTERN_C
@@ -5855,15 +5855,9 @@
(define_insn "*builtin_setjmp_receiver_er_sl_1"
[(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]
- "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS && TARGET_AS_CAN_SUBTRACT_LABELS"
+ "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS"
"lda $27,$LSJ%=-%l0($27)\n$LSJ%=:")
-(define_insn "*builtin_setjmp_receiver_er_1"
- [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]
- "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS"
- "br $27,$LSJ%=\n$LSJ%=:"
- [(set_attr "type" "ibr")])
-
;; When flag_reorder_blocks_and_partition is in effect, compiler puts
;; exception landing pads in a cold section. To prevent inter-section offset
;; calculation, a jump to original landing pad is emitted in the place of the
@@ -1,6 +1,6 @@
; Options for the DEC Alpha port of the compiler
;
-; Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+; Copyright (C) 2005, 2007, 2012 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
@@ -27,12 +27,8 @@ Target Report Mask(FPREGS)
Use fp registers
mgas
-Target RejectNegative Mask(GAS)
-Assume GAS
-
-malpha-as
-Target RejectNegative InverseMask(GAS)
-Do not assume GAS
+Target Ignore
+Does nothing. Preserved for backward compatibility.
mieee-conformant
Target RejectNegative Mask(IEEE_CONFORMANT)
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008,
- 2009, 2010 Free Software Foundation, Inc.
+ 2009, 2010, 2012 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu).
This file is part of GCC.
@@ -19,15 +19,8 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#undef OBJECT_FORMAT_COFF
-#undef EXTENDED_COFF
#define OBJECT_FORMAT_ELF
-/* ??? Move all SDB stuff from alpha.h to osf.h. */
-#undef SDB_DEBUGGING_INFO
-#undef MIPS_DEBUGGING_INFO
-#undef DBX_DEBUGGING_INFO
-
#define DWARF2_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
@@ -372,10 +365,6 @@ do { \
#undef STRING_ASM_OP
#define STRING_ASM_OP "\t.string\t"
-/* GAS is the only Alpha/ELF assembler. */
-#undef TARGET_GAS
-#define TARGET_GAS (1)
-
/* Provide a STARTFILE_SPEC appropriate for ELF. Here we add the
(even more) magical crtbegin.o file which provides part of the
support for getting C++ file-scope static object constructed
@@ -1,5 +1,5 @@
/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format
- Copyright (C) 2000, 2002, 2004, 2005, 2007, 2010, 2011
+ Copyright (C) 2000, 2002, 2004, 2005, 2007, 2010, 2011, 2012
Free Software Foundation, Inc.
Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
@@ -56,21 +56,12 @@ along with GCC; see the file COPYING3.
#define TARGET_ELF 1
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS)
-
#undef HAS_INIT_SECTION
/* Show that we need a GP when profiling. */
#undef TARGET_PROFILING_NEEDS_GP
#define TARGET_PROFILING_NEEDS_GP 1
-/* This is the char to use for continuation (in case we need to turn
- continuation back on). */
-
-#undef DBX_CONTIN_CHAR
-#define DBX_CONTIN_CHAR '?'
-
/* Don't default to pcc-struct-return, we want to retain compatibility with
older FreeBSD releases AND pcc-struct-return may not be reentrant. */
@@ -1,7 +1,7 @@
/* Definitions of target machine for GNU compiler,
for Alpha Linux-based GNU systems.
Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
- 2010, 2011 Free Software Foundation, Inc.
+ 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by Richard Henderson.
This file is part of GCC.
@@ -20,9 +20,6 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS)
-
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__gnu_linux__"); \
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for Alpha NetBSD systems.
- Copyright (C) 1998, 2002, 2003, 2004, 2005, 2007, 2011
+ Copyright (C) 1998, 2002, 2003, 2004, 2005, 2007, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -19,9 +19,6 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS)
-
#define TARGET_OS_CPP_BUILTINS() \
do { \
NETBSD_OS_CPP_BUILTINS_ELF(); \
@@ -1,6 +1,6 @@
/* Output variables, constants and external declarations, for GNU compiler.
Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2004, 2005, 2007, 2008,
- 2009, 2010, 2011
+ 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -43,9 +43,6 @@ along with GCC; see the file COPYING3.
builtin_define ("__IEEE_FLOAT"); \
} while (0)
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS)
-
#define VMS_DEBUG_MAIN_POINTER "TRANSFER$BREAK$GO"
#undef PCC_STATIC_STRUCT_RETURN
@@ -204,10 +201,6 @@ typedef struct {int num_args; enum avms_
#define TARGET_ASM_CONSTRUCTOR vms_asm_out_constructor
#define TARGET_ASM_DESTRUCTOR vms_asm_out_destructor
-#undef SDB_DEBUGGING_INFO
-#undef MIPS_DEBUGGING_INFO
-#undef DBX_DEBUGGING_INFO
-
#define DWARF2_DEBUGGING_INFO 1
#define VMS_DEBUGGING_INFO 1
@@ -558,7 +558,7 @@ Objective-C and Objective-C++ Dialects}.
-mkernel -mone-byte-bool}
@emph{DEC Alpha Options}
-@gccoptlist{-mno-fp-regs -msoft-float -malpha-as -mgas @gol
+@gccoptlist{-mno-fp-regs -msoft-float @gol
-mieee -mieee-with-inexact -mieee-conformant @gol
-mfp-trap-mode=@var{mode} -mfp-rounding-mode=@var{mode} @gol
-mtrap-precision=@var{mode} -mbuild-constants @gol
@@ -12213,8 +12213,7 @@ This option marks the generated code as
use this option unless you also specify @option{-mtrap-precision=i} and either
@option{-mfp-trap-mode=su} or @option{-mfp-trap-mode=sui}. Its only effect
is to emit the line @samp{.eflag 48} in the function prologue of the
-generated assembly file. Under DEC Unix, this has the effect that
-IEEE-conformant math library routines will be linked in.
+generated assembly file.
@item -mbuild-constants
@opindex mbuild-constants
@@ -12230,13 +12229,6 @@ You would typically use this option to b
loader. Itself a shared library, it must relocate itself in memory
before it can find the variables and constants in its own data segment.
-@item -malpha-as
-@itemx -mgas
-@opindex malpha-as
-@opindex mgas
-Select whether to generate code to be assembled by the vendor-supplied
-assembler (@option{-malpha-as}) or by the GNU assembler @option{-mgas}.
-
@item -mbwx
@itemx -mno-bwx
@itemx -mcix