config.gcc: Remove sparc-tti-*.

* config.gcc: Remove sparc-tti-*.
	* config/sparc/pbd.h: Delete.

	* config/sparc/sol2.h: Remove note about Sun OS 4.x.
	* config/sparc/aout.h: Likewise.

	* config/sparc/sparc.h: Remove if 0'd code.
	* config/sparc/sparc.md (call): Remove if 0'd code.
	(call_value): Likewise.
	(nonlocal_goto): Likewise.
	(unimp_insn): Delete.

From-SVN: r79980
This commit is contained in:
James A. Morrison 2004-03-26 11:13:48 +00:00 committed by Eric Botcazou
parent 22e63bd346
commit 9e1395f14c
7 changed files with 23 additions and 207 deletions

View File

@ -1,3 +1,17 @@
2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
* config.gcc: Remove sparc-tti-*.
* config/sparc/pbd.h: Delete.
* config/sparc/sol2.h: Remove note about Sun OS 4.x.
* config/sparc/aout.h: Likewise.
* config/sparc/sparc.h: Remove if 0'd code.
* config/sparc/sparc.md (call): Remove if 0'd code.
(call_value): Likewise.
(nonlocal_goto): Likewise.
(unimp_insn): Delete.
2004-03-25 Roger Sayle <roger@eyesopen.com>
* fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like

View File

@ -1784,10 +1784,6 @@ sh-*-*)
tm_file="${tm_file} dbxcoff.h sh/coff.h"
use_fixproto=yes
;;
sparc-tti-*)
tm_file="${tm_file} sparc/pbd.h"
use_fixproto=yes
;;
sparc-*-netbsdelf*)
tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
;;

View File

@ -48,10 +48,7 @@ do { \
#define DATA_SECTION_ASM_OP "\t.data"
/* This is how to output a note to DBX telling it the line number
to which the following sequence of instructions corresponds.
This is needed for SunOS 4.0, and should not hurt for 3.2
versions either. */
to which the following sequence of instructions corresponds. */
#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
fprintf (file, ".stabn 68,0,%d,LM%d\nLM%d:\n", \
line, counter, counter)

View File

@ -1,145 +0,0 @@
/* Definitions of target machine for GNU compiler, Citicorp/TTI Unicom PBD
version (using GAS and COFF (encapsulated is unacceptable) )
Copyright (C) 1990, 1996, 2000, 2004 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Target OS builtins. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_define_std ("UnicomPBD"); \
builtin_assert ("system=unix"); \
} \
while (0)
/* We want DBX format for use with gdb under COFF. */
#define DBX_DEBUGGING_INFO 1
/* Generate calls to memcpy, memcmp and memset. */
#define TARGET_MEM_FUNCTIONS
/* we use /lib/libp/lib* when profiling */
#undef LIB_SPEC
#define LIB_SPEC "%{p:-L/usr/lib/libp} %{pg:-L/usr/lib/libp} -lc"
/* Use crt1.o as a startup file and crtn.o as a closing file. */
/*
* The loader directive file gcc.ifile defines how to merge the constructor
* sections into the data section. Also, since gas only puts out those
* sections in response to N_SETT stabs, and does not (yet) have a
* ".sections" directive, gcc.ifile also defines the list symbols
* __DTOR_LIST__ and __CTOR_LIST__.
*
* Finally, we must explicitly specify the file from libgcc.a that defines
* exit(), otherwise if the user specifies (for example) "-lc_s" on the
* command line, the wrong exit() will be used and global destructors will
* not get called .
*/
#define STARTFILE_SPEC \
"%{!r: gcc.ifile%s} %{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}} \
%{!r:_exit.o%s}"
#define ENDFILE_SPEC "crtn.o%s"
/* LINK_SPEC is needed only for SunOS 4. */
#undef LINK_SPEC
/* Although the gas we use can create .ctor and .dtor sections from N_SETT
stabs, it does not support section directives, so we need to have the loader
define the lists.
*/
#define CTOR_LISTS_DEFINED_EXTERNALLY
/* similar to default, but allows for the table defined by ld with gcc.ifile.
nptrs is always 0. So we need to instead check that __DTOR_LIST__[1] != 0.
The old check is left in so that the same macro can be used if and when
a future version of gas does support section directives. */
#define DO_GLOBAL_DTORS_BODY {int nptrs = *(int *)__DTOR_LIST__; int i; \
if (nptrs == -1 || (__DTOR_LIST__[0] == 0 && __DTOR_LIST__[1] != 0)) \
for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++); \
for (i = nptrs; i >= 1; i--) \
__DTOR_LIST__[i] (); }
/*
* Here is an example gcc.ifile. I've tested it on PBD sparc
* systems. The NEXT(0x200000) works on just about all 386 and m68k systems,
* but can be reduced to any power of 2 that is >= NBPS (0x40000 on a pbd).
SECTIONS {
.text BIND(0x41000200) BLOCK (0x200) :
{ *(.init) *(.text) vfork = fork; *(.fini) }
GROUP BIND( NEXT(0x200000) + ADDR(.text) + SIZEOF(.text)):
{ .data : { __CTOR_LIST__ = . ; . += 4; *(.ctor) . += 4 ;
__DTOR_LIST__ = . ; . += 4; *(.dtor) . += 4 ; }
.bss : { }
}
}
*/
/* The prefix to add to user-visible assembler symbols. */
#undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX ""
/* fixes: */
/*
* Internal labels are prefixed with a period.
*/
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX "."
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
This is suitable for output with `assemble_name'. */
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
sprintf (LABEL, "*.%s%ld", PREFIX, (long)(NUM))
/* This is how to output an element of a case-vector that is relative. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL)
/* This is how to output an element of a case-vector that is absolute.
(The 68000 does not use such vectors,
but we must define this macro anyway.) */
#undef ASM_OUTPUT_ADDR_VEC_ELT
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
fprintf (FILE, "\t.word .L%d\n", VALUE)
/* This is needed for SunOS 4.0, and should not hurt for 3.2
versions either. */
#undef ASM_OUTPUT_SOURCE_LINE
#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
fprintf (file, ".stabn 68,0,%d,.LM%d\n.LM%d:\n", \
line, counter, counter)

View File

@ -130,8 +130,6 @@ Boston, MA 02111-1307, USA. */
#undef SUPPORTS_INIT_PRIORITY
#define SUPPORTS_INIT_PRIORITY 0
/* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h.
Instead, it is enabled here, because it does work under Solaris. */
/* Define for support of TFmode long double.
SPARC ABI says that long double is 4 words. */
#define LONG_DOUBLE_TYPE_SIZE 128

View File

@ -699,14 +699,9 @@ extern struct sparc_cpu_select sparc_select[];
#define LONG_LONG_TYPE_SIZE 64
#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
#if 0
/* ??? This does not work in SunOS 4.x, so it is not enabled here.
Instead, it is enabled in sol2.h, because it does work under Solaris. */
/* Define for support of TFmode long double.
SPARC ABI says that long double is 4 words. */
#define LONG_DOUBLE_TYPE_SIZE 128
#endif
/* LONG_DOUBLE_TYPE_SIZE is defined per OS even though the
SPARC ABI says that it is 128-bit wide. */
/* #define LONG_DOUBLE_TYPE_SIZE 128 */
/* Width in bits of a pointer.
See also the macro `Pmode' defined below. */

View File

@ -7309,15 +7309,6 @@
"jmp\t%a0%#"
[(set_attr "type" "uncond_branch")])
;; This pattern recognizes the "instruction" that appears in
;; a function call that wants a structure value,
;; to inform the called function if compiled with Sun CC.
;(define_insn "*unimp_insn"
; [(match_operand:SI 0 "immediate_operand" "")]
; "GET_CODE (operands[0]) == CONST_INT && INTVAL (operands[0]) > 0"
; "unimp\t%0"
; [(set_attr "type" "marker")])
;;- jump to subroutine
(define_expand "call"
;; Note that this expression is not used for generating RTL.
@ -7328,7 +7319,7 @@
;; operands[3] is struct_value_size_rtx.
""
{
rtx fn_rtx, nregs_rtx;
rtx fn_rtx;
if (GET_MODE (operands[0]) != FUNCTION_MODE)
abort ();
@ -7362,42 +7353,21 @@
fn_rtx = operands[0];
/* Count the number of parameter registers being used by this call.
if that argument is NULL, it means we are using them all, which
means 6 on the sparc. */
#if 0
if (operands[2])
nregs_rtx = GEN_INT (REGNO (operands[2]) - 8);
else
nregs_rtx = GEN_INT (6);
#else
nregs_rtx = const0_rtx;
#endif
if (! TARGET_ARCH64 && INTVAL (operands[3]) != 0)
emit_call_insn
(gen_rtx_PARALLEL
(VOIDmode,
gen_rtvec (3, gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx),
gen_rtvec (3, gen_rtx_CALL (VOIDmode, fn_rtx, const0_rtx),
operands[3],
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 15)))));
else
emit_call_insn
(gen_rtx_PARALLEL
(VOIDmode,
gen_rtvec (2, gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx),
gen_rtvec (2, gen_rtx_CALL (VOIDmode, fn_rtx, const0_rtx),
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 15)))));
finish_call:
#if 0
/* If this call wants a structure value,
emit an unimp insn to let the called function know about this. */
if (! TARGET_ARCH64 && INTVAL (operands[3]) > 0)
{
rtx insn = emit_insn (operands[3]);
SCHED_GROUP_P (insn) = 1;
}
#endif
DONE;
})
@ -7502,7 +7472,7 @@
;; operand 3 is next_arg_register
""
{
rtx fn_rtx, nregs_rtx;
rtx fn_rtx;
rtvec vec;
if (GET_MODE (operands[1]) != FUNCTION_MODE)
@ -7510,18 +7480,9 @@
fn_rtx = operands[1];
#if 0
if (operands[3])
nregs_rtx = GEN_INT (REGNO (operands[3]) - 8);
else
nregs_rtx = GEN_INT (6);
#else
nregs_rtx = const0_rtx;
#endif
vec = gen_rtvec (2,
gen_rtx_SET (VOIDmode, operands[0],
gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx)),
gen_rtx_CALL (VOIDmode, fn_rtx, const0_rtx)),
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 15)));
emit_call_insn (gen_rtx_PARALLEL (VOIDmode, vec));