Commit f607bc57 by Zack Weinberg

config.gcc: Delete powerpcle-*-solaris2* stanza.

	* config.gcc: Delete powerpcle-*-solaris2* stanza.
	* config/rs6000/eabi.asm, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/rs6000/rs6000.md,
	config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
	config/rs6000/sysv4.h, config/rs6000/t-ppccomm,
	config/rs6000/t-ppcos: Expunge all references to Solaris.

	* config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete.

	* config/rs6000/rs6000.md: Replace '%$' with '$' in all
	output templates.
	* config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0,
	and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P.

From-SVN: r47232
parent 533f5e0f
2001-11-20 Zack Weinberg <zack@codesourcery.com>
* config.gcc: Delete powerpcle-*-solaris2* stanza.
* config/rs6000/eabi.asm, config/rs6000/rs6000.c,
config/rs6000/rs6000.h, config/rs6000/rs6000.md,
config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
config/rs6000/sysv4.h, config/rs6000/t-ppccomm,
config/rs6000/t-ppcos: Expunge all references to Solaris.
* config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete.
* config/rs6000/rs6000.md: Replace '%$' with '$' in all
output templates.
* config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0,
and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P.
2001-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* sh.md: Avoid uninitialized warnings.
......
......@@ -2745,12 +2745,6 @@ powerpcle-*-eabi*)
tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
extra_headers=ppc-asm.h
;;
powerpcle-*-solaris2*)
tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/sol2.h"
xm_defines=POSIX
tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
extra_headers=ppc-asm.h
;;
rs6000-ibm-aix3.[01]*)
xm_defines=POSIX
tm_file="${tm_file} rs6000/aix.h rs6000/aix31.h rs6000/xcoff.h"
......
......@@ -131,8 +131,7 @@
FUNC_START(__eabi)
/* Eliminate -mrelocatable code if not -mrelocatable, so that this file can
be assembled with other assemblers than GAS, such as the Solaris PowerPC
assembler. */
be assembled with other assemblers than GAS. */
#ifndef _RELOCATABLE
addis 10,0,.Linit_p@ha /* init flag */
......
......@@ -445,7 +445,7 @@ extern struct rs6000_cpu_select rs6000_select[];
/* Debug support */
extern const char *rs6000_debug_name; /* Name for -mdebug-xxxx option */
extern const char *rs6000_abi_string; /* for -mabi={sysv,darwin,solaris,eabi,aix,altivec} */
extern const char *rs6000_abi_string; /* for -mabi={sysv,darwin,eabi,aix,altivec} */
extern int rs6000_debug_stack; /* debug stack applications */
extern int rs6000_debug_arg; /* debug argument handling */
......@@ -932,8 +932,7 @@ extern int rs6000_debug_arg; /* debug argument handling */
if (TARGET_SOFT_FLOAT) \
for (i = 32; i < 64; i++) \
fixed_regs[i] = call_used_regs[i] = 1; \
if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \
&& flag_pic == 1) \
if (DEFAULT_ABI == ABI_V4 && flag_pic == 1) \
fixed_regs[PIC_OFFSET_TABLE_REGNUM] \
= call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
if (DEFAULT_ABI == ABI_DARWIN && flag_pic) \
......@@ -1181,7 +1180,7 @@ enum reg_class
: (C) == 'R' ? LEGITIMATE_CONSTANT_POOL_ADDRESS_P (OP) \
: (C) == 'S' ? mask64_operand (OP, VOIDmode) \
: (C) == 'T' ? mask_operand (OP, VOIDmode) \
: (C) == 'U' ? ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \
: (C) == 'U' ? (DEFAULT_ABI == ABI_V4 \
&& small_data_operand (OP, GET_MODE (OP))) \
: 0)
......@@ -1254,9 +1253,9 @@ enum reg_class
enum rs6000_abi {
ABI_NONE,
ABI_AIX, /* IBM's AIX */
ABI_AIX_NODESC, /* AIX calling sequence minus function descriptors */
ABI_AIX_NODESC, /* AIX calling sequence minus
function descriptors */
ABI_V4, /* System V.4/eabi */
ABI_SOLARIS, /* Solaris */
ABI_DARWIN /* Apple's Darwin (OS X kernel) */
};
......@@ -1437,12 +1436,14 @@ typedef struct rs6000_stack {
/* The definition of this macro implies that there are cases where
a scalar value cannot be returned in registers.
For the RS/6000, any structure or union type is returned in memory, except for
Solaris, which returns structures <= 8 bytes in registers. */
For the RS/6000, any structure or union type is returned in memory.
(FIXME: Except for V.4, where those <= 8 bytes are returned in
registers. Can't change this without breaking compatibility.) */
#define RETURN_IN_MEMORY(TYPE) \
(TYPE_MODE (TYPE) == BLKmode \
&& (DEFAULT_ABI != ABI_SOLARIS || int_size_in_bytes (TYPE) > 8))
#define RETURN_IN_MEMORY(TYPE) AGGREGATE_TYPE_P (TYPE)
/* Let RETURN_IN_MEMORY control what happens. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Mode of stack savearea.
FUNCTION is VOIDmode because calling convention maintains SP.
......@@ -1730,8 +1731,7 @@ typedef struct rs6000_args
((DEFAULT_ABI == ABI_AIX \
|| DEFAULT_ABI == ABI_DARWIN \
|| DEFAULT_ABI == ABI_AIX_NODESC) ? (TARGET_32BIT ? 8 : 16) : \
(DEFAULT_ABI == ABI_V4 \
|| DEFAULT_ABI == ABI_SOLARIS) ? (TARGET_32BIT ? 4 : 8) : \
(DEFAULT_ABI == ABI_V4) ? (TARGET_32BIT ? 4 : 8) : \
(internal_error ("RETURN_ADDRESS_OFFSET not supported"), 0))
/* The current return address is in link register (65). The return address
......@@ -1913,7 +1913,7 @@ typedef struct rs6000_args
&& CONSTANT_POOL_EXPR_P (XEXP (X, 1)))
#define LEGITIMATE_SMALL_DATA_P(MODE, X) \
((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \
(DEFAULT_ABI == ABI_V4 \
&& !flag_pic && !TARGET_TOC \
&& (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == CONST) \
&& small_data_operand (X, MODE))
......
......@@ -7385,7 +7385,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(unspec:SI [(match_operand:SI 1 "got_operand" "")
(match_dup 2)] 8))]
"(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1"
"DEFAULT_ABI == ABI_V4 && flag_pic == 1"
"
{
if (GET_CODE (operands[1]) == CONST)
......@@ -7411,7 +7411,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(unspec:SI [(match_operand:SI 1 "got_no_const_operand" "")
(match_operand:SI 2 "gpc_reg_operand" "b")] 8))]
"(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1"
"DEFAULT_ABI == ABI_V4 && flag_pic == 1"
"{l|lwz} %0,%a1@got(%2)"
[(set_attr "type" "load")])
......@@ -7421,7 +7421,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(unspec:SI [(match_operand:SI 1 "got_no_const_operand" "")
(match_operand:SI 2 "memory_operand" "")] 8))]
"(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)
"DEFAULT_ABI == ABI_V4
&& flag_pic == 1
&& (reload_in_progress || reload_completed)"
[(set (match_dup 0) (match_dup 2))
......@@ -9288,8 +9288,7 @@
(define_insn "load_toc_v4_pic_si"
[(set (match_operand:SI 0 "register_operand" "=l")
(unspec:SI [(const_int 0)] 7))]
"(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1
&& TARGET_32BIT"
"DEFAULT_ABI == ABI_V4 && flag_pic == 1 && TARGET_32BIT"
"bl _GLOBAL_OFFSET_TABLE_@local-4"
[(set_attr "type" "branch")
(set_attr "length" "4")])
......@@ -9342,7 +9341,7 @@
(define_expand "builtin_setjmp_receiver"
[(use (label_ref (match_operand 0 "" "")))]
"((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1)
"(DEFAULT_ABI == ABI_V4 && flag_pic == 1)
|| (TARGET_TOC && TARGET_MINIMAL_TOC)"
"
{
......@@ -9473,8 +9472,7 @@
if (DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_AIX_NODESC
|| DEFAULT_ABI == ABI_DARWIN
|| DEFAULT_ABI == ABI_SOLARIS)
|| DEFAULT_ABI == ABI_DARWIN)
operands[0] = force_reg (Pmode, operands[0]);
else if (DEFAULT_ABI == ABI_AIX)
......@@ -9522,8 +9520,7 @@
if (DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_AIX_NODESC
|| DEFAULT_ABI == ABI_DARWIN
|| DEFAULT_ABI == ABI_SOLARIS)
|| DEFAULT_ABI == ABI_DARWIN)
operands[0] = force_reg (Pmode, operands[0]);
else if (DEFAULT_ABI == ABI_AIX)
......@@ -9755,8 +9752,7 @@
(clobber (match_scratch:SI 3 "=l,l,l,l"))]
"DEFAULT_ABI == ABI_AIX_NODESC
|| DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_DARWIN
|| DEFAULT_ABI == ABI_SOLARIS"
|| DEFAULT_ABI == ABI_DARWIN"
"*
{
if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
......@@ -9788,8 +9784,7 @@
(clobber (match_scratch:SI 4 "=l,l,l,l"))]
"DEFAULT_ABI == ABI_AIX_NODESC
|| DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_DARWIN
|| DEFAULT_ABI == ABI_SOLARIS"
|| DEFAULT_ABI == ABI_DARWIN"
"*
{
if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
......@@ -12933,7 +12928,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -12957,7 +12952,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -12981,7 +12976,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13005,7 +13000,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13031,7 +13026,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13055,7 +13050,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13079,7 +13074,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13103,7 +13098,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13129,7 +13124,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13153,7 +13148,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13177,7 +13172,7 @@
else if (get_attr_length (insn) == 4)
return \"bdz %l0\";
else
return \"{bdn|bdnz} %$+8\;b %l0\";
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......@@ -13201,7 +13196,7 @@
else if (get_attr_length (insn) == 4)
return \"{bdn|bdnz} %l0\";
else
return \"bdz %$+8\;b %l0\";
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
(set_attr "length" "*,12,16")])
......
/* Solaris PowerPC startfile. */
/* Copyright (C) 1996, 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
extern char **_environ;
extern int atexit (void (*__func) (void));
extern void __init (void) __attribute__ ((__longcall__));
extern void __fini (void) __attribute__ ((__longcall__));
extern void _start(int argc, char *argv[], char *envp[], void *auxp,
void (*termfunc)(void));
extern void exit(int);
extern int main (int argc, char *argv[], char *envp[], void *auxp);
typedef void (*func_ptr) (void);
int (*__atexit)(func_ptr) = atexit;
/* Exception handling */
struct ex_shared1 {
void *prev;
void *next;
char *text_start;
char *range_start;
char *text_end;
char *range_end;
};
struct ex_shared {
void (*ex_register) (struct ex_shared1 *);
void (*ex_deregister) (struct ex_shared1 *);
struct ex_shared1 shared_info;
};
extern char _ex_text0[], _ex_text1[];
extern char _ex_range0[], _ex_range1[];
extern void _ex_register (struct ex_shared1 *);
extern void _ex_deregister (struct ex_shared1 *);
extern char _SDA_BASE_[];
extern char _SDA2_BASE_[];
struct ex_shared shared __attribute__((section(".ex_shared"))) = {
_ex_register,
_ex_deregister,
{
(void *)0,
(void *)0,
_ex_text0,
_ex_range0,
_ex_text1,
_ex_range1
}
};
static void
deregister (void)
{
(* shared.ex_deregister) (&shared.shared_info);
}
/* Start function. */
void
_start(int argc, char *argv[], char *envp[], void *auxp,
void (*termfunc)(void))
{
int ret;
int dummy = 0;
#if 0
/* Disable this for now, it causes an impossible reload. */
/* Load up r13/r2 before we do anything else. */
__asm__ volatile ("mr %%r13,%0;mr %%r2,%1" : "=r" (dummy) : "r" (&_SDA_BASE_[0]), "r" (&_SDA2_BASE_[0]), "r" (dummy));
#endif
_environ = envp + dummy;
/* Register loader termination function (the || dummy is to make sure the above asm
is not optimized away). */
if (termfunc)
atexit (termfunc);
/* Register exception handler if needed */
if (shared.ex_register)
(* shared.ex_register) (&shared.shared_info);
if (shared.ex_deregister)
atexit (deregister);
/* Call any global constructors and destructors. */
__init ();
atexit (__fini);
/* Call the main program now */
ret = main (argc, argv, envp, auxp);
/* Return to the os */
exit (ret);
}
# crti.s for solaris
# crti.s for sysv4
# Copyright (C) 1996 Free Software Foundation, Inc.
# Written By Michael Meissner
......@@ -61,12 +61,12 @@ __CTOR_LIST__:
.type __DTOR_LIST__,@object
__DTOR_LIST__:
# Head of __init function used for static constructors in Solaris
# Head of _init function used for static constructors
.section ".init","ax"
.align 2
.globl __init
.type __init,@function
__init: stwu %r1,-16(%r1)
.globl _init
.type _init,@function
_init: stwu %r1,-16(%r1)
mflr %r0
stw %r31,12(%r1)
stw %r0,16(%r1)
......@@ -82,12 +82,12 @@ __init: stwu %r1,-16(%r1)
# blrl
#.Lno_reg:
# Head of __fini function used for static destructors in Solaris
# Head of _fini function used for static destructors
.section ".fini","ax"
.align 2
.globl __fini
.type __fini,@function
__fini: stwu %r1,-16(%r1)
.globl _fini
.type _fini,@function
_fini: stwu %r1,-16(%r1)
mflr %r0
stw %r31,12(%r1)
stw %r0,16(%r1)
......
# crtn.s for solaris
# crtn.s for sysv4
# Copyright (C) 1996 Free Software Foundation, Inc.
# Written By Michael Meissner
......@@ -65,7 +65,7 @@ _ex_text1:
.globl _ex_range1
_ex_range1:
# Tail of __init used for static constructors in Solaris
# Tail of _init used for static constructors
.section ".init","ax"
lwz %r0,16(%r1)
lwz %r31,12(%r1)
......@@ -73,7 +73,7 @@ _ex_range1:
addi %r1,%r1,16
blr
# Tail of __fini used for static destructors in Solaris
# Tail of _fini used for static destructors
.section ".fini","ax"
lwz %r0,16(%r1)
lwz %r31,12(%r1)
......
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 running AIX version 3.1.
Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
Contributed by David Reese (Dave.Reese@East.Sun.COM)
This file is part of GNU CC.
GNU CC 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.
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Default ABI to use */
#undef RS6000_ABI_NAME
#define RS6000_ABI_NAME "solaris"
#undef ASM_CPU_SPEC
#define ASM_CPU_SPEC "-le -s"
#undef TARGET_DEFAULT
#define TARGET_DEFAULT (MASK_POWERPC | \
MASK_NEW_MNEMONICS | \
MASK_LITTLE_ENDIAN | \
MASK_REGNAMES)
#undef LIB_DEFAULT_SPEC
#define LIB_DEFAULT_SPEC "%(lib_solaris)"
#undef STARTFILE_DEFAULT_SPEC
#define STARTFILE_DEFAULT_SPEC "%(startfile_solaris)"
#undef ENDFILE_DEFAULT_SPEC
#define ENDFILE_DEFAULT_SPEC "%(endfile_solaris)"
#undef LINK_START_DEFAULT_SPEC
#define LINK_START_DEFAULT_SPEC "%(link_start_solaris)"
#undef CPP_SPEC
#define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
%(cpp_sysv) %(cpp_endian) %(cpp_cpu) \
%{mmvme: %(cpp_os_mvme) } \
%{msim: %(cpp_os_sim) } \
%{mcall-linux: %(cpp_os_linux) } \
%{mcall-solaris: %(cpp_os_solaris) } \
%{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}"
#undef CPP_OS_DEFAULT_SPEC
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_solaris)"
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_solaris)"
#undef CPP_ENDIAN_LITTLE_SPEC
#define CPP_ENDIAN_LITTLE_SPEC CPP_ENDIAN_SOLARIS_SPEC
#define DEFAULT_PCC_STRUCT_RETURN 0
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (PowerPC Solaris)");
/* Macros to check register numbers against specific register classes. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#if 0
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { \
fprintf ((FILE), "\t%s\t", ".lcomm"); \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
} while (0)
#endif
/* Like block addresses, stabs line numbers are relative to the
current function. */
/* use .stabd instead of .stabn */
#define ASM_STABN_OP "\t.stabd\t"
#undef ASM_OUTPUT_SOURCE_LINE
#define ASM_OUTPUT_SOURCE_LINE(file, line) \
do \
{ \
static int sym_lineno = 1; \
const char *_p; \
fprintf (file, "\t.stabd 68,0,%d,.LM%d-", \
line, sym_lineno); \
STRIP_NAME_ENCODING (_p, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
assemble_name (file, _p); \
fprintf (file, "\n.LM%d:\n", sym_lineno); \
sym_lineno += 1; \
} \
while (0)
/* This is how to output an assembler line defining a `double' constant. */
#undef ASM_OUTPUT_DOUBLE
#define ASM_OUTPUT_DOUBLE(FILE, VALUE) \
{ \
if (REAL_VALUE_ISINF (VALUE) \
|| REAL_VALUE_ISNAN (VALUE) \
|| REAL_VALUE_MINUS_ZERO (VALUE)) \
{ \
long t[2]; \
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), t); \
fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", \
t[0] & 0xffffffff, t[1] & 0xffffffff); \
} \
else \
{ \
char str[30]; \
REAL_VALUE_TO_DECIMAL (VALUE, "%.20e", str); \
fprintf (FILE, "\t.double %s\n", str); \
} \
}
/* This is how to output an assembler line defining a `float' constant. */
#undef ASM_OUTPUT_FLOAT
#define ASM_OUTPUT_FLOAT(FILE, VALUE) \
{ \
if (REAL_VALUE_ISINF (VALUE) \
|| REAL_VALUE_ISNAN (VALUE) \
|| REAL_VALUE_MINUS_ZERO (VALUE)) \
{ \
long t; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), t); \
fprintf (FILE, "\t.long 0x%lx\n", t & 0xffffffff); \
} \
else \
{ \
char str[30]; \
REAL_VALUE_TO_DECIMAL ((VALUE), "%.20e", str); \
fprintf (FILE, "\t.float %s\n", str); \
} \
}
/* Sun-ppc assembler does not permit '.' in some symbol names.
Use 'name_.labelno' instead. */
#undef ASM_FORMAT_PRIVATE_NAME
#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \
sprintf ((OUTPUT), "%s_.%d", (NAME), (LABELNO)))
/* Define this macro as a C expression for the initializer of an
array of string to tell the driver program which options are
defaults for this target and thus do not need to be handled
specially when using `MULTILIB_OPTIONS'.
Do not define this macro if `MULTILIB_OPTIONS' is not defined in
the target makefile fragment or if none of the options listed in
`MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS { "mlittle", "mcall-solaris" }
#define STDC_0_IN_SYSTEM_HEADERS 1
......@@ -40,12 +40,10 @@ INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
crtbeginS$(objext) crtendS$(objext) \
ecrti$(objext) ecrtn$(objext) \
scrt0$(objext) scrti$(objext) scrtn$(objext) \
ncrti$(objext) ncrtn$(objext)
# We build {e,s}crti.o, {e,s}crtn.o, and {s,n}crt0.o which serve to
# add begin and end labels to all of the special sections used when we
# link using gcc.
# We build {e,n}crti.o and {e,n}crtn.o, which serve to add begin and
# end labels to all of the special sections used when we link using gcc.
# Assemble startup files.
ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm
......@@ -55,21 +53,10 @@ ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm
cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S
ncrti.S: $(srcdir)/config/rs6000/sol-ci.asm
sed -e 's/__init/_init/' -e 's/__fini/_fini/' \
$(srcdir)/config/rs6000/sol-ci.asm >ncrti.S
cat $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S
ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
sed -e 's/__init/_init/' -e 's/__fini/_fini/' \
$(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S
scrti.S: $(srcdir)/config/rs6000/sol-ci.asm
cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S
scrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
cat $(srcdir)/config/rs6000/sol-cn.asm >scrtn.S
scrt0.c: $(srcdir)/config/rs6000/sol-c0.c
cat $(srcdir)/config/rs6000/sol-c0.c >scrt0.c
cat $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S
# Build multiple copies of ?crt{i,n}.o, one for each target switch.
$(T)ecrti$(objext): ecrti.S
......@@ -84,15 +71,6 @@ $(T)ncrti$(objext): ncrti.S
$(T)ncrtn$(objext): ncrtn.S
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext)
$(T)scrti$(objext): scrti.S
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrti.S -o $(T)scrti$(objext)
$(T)scrtn$(objext): scrtn.S
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrtn.S -o $(T)scrtn$(objext)
$(T)scrt0$(objext): scrt0.c
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrt0.c -o $(T)scrt0$(objext)
# It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata.
CRTSTUFF_T_CFLAGS = -msdata=none
# There is no need to add -fPIC here because crtstuff is multilibbed
......
# Multilibs for a powerpc hosted ELF target (linux, SVR4, solaris)
# Multilibs for a powerpc hosted ELF target (linux, SVR4)
MULTILIB_OPTIONS = msoft-float
MULTILIB_DIRNAMES = nof
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment