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:
parent
22e63bd346
commit
9e1395f14c
@ -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
|
||||
|
@ -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"
|
||||
;;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
@ -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
|
||||
|
@ -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. */
|
||||
|
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user