aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2004-11-23 19:55:24 +0000
committerZack Weinberg <zack@gcc.gnu.org>2004-11-23 19:55:24 +0000
commit6e14af161c7d61b280c187b1a91a0fd853249bd1 (patch)
tree67f41f708633dc69a022149ee3dee19b259e910b /gcc/config
parente9c00ceb85406d1f78d1752f27742ac7bb05b47b (diff)
downloadgcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.zip
gcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.tar.gz
gcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.tar.bz2
function.h (struct function): Remove calls_longjmp.
* function.h (struct function): Remove calls_longjmp. (current_function_calls_longjmp): Delete. * tree.h (ECF_LONGJMP): Delete. (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) (ECF_LIBCALL_BLOCK): Everybody slide down one. (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. * builtins.c (expand_builtin_longjmp): Don't set current_function_calls_longjmp. * calls.c (special_function_p): Mark longjmp and siglongjmp with ECF_NORETURN, not ECF_LONGJMP. (emit_call_1, expand_call, emit_library_call_value_1): Don't check for ECF_LONGJMP. * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) (need_fake_edge_p): Likewise. * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. * system.h: Poison NON_SAVING_SETJMP. * function.c (use_register_for_decl) * gcse.c (compute_hash_table_work, compute_store_table) * postreload-gcse.c (record_opr_changes) * reload.c (find_equiv_reg) * reload1.c (reload) * config/i386/i386.c (ix86_can_use_return_insn_p): Remove code conditional on NON_SAVING_SETJMP. * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. * config/i386/sysv3.h: Delete file. * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. From-SVN: r91101
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/avr/avr.h2
-rw-r--r--gcc/config/i386/i386.c27
-rw-r--r--gcc/config/i386/sysv3.h105
-rw-r--r--gcc/config/ip2k/ip2k.h2
4 files changed, 1 insertions, 135 deletions
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 669ca36..f1c6da0 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -196,8 +196,6 @@ extern int avr_asm_only_p;
1,1,/* STACK */ \
1,1 /* arg pointer */ }
-#define NON_SAVING_SETJMP 0
-
#define REG_ALLOC_ORDER { \
24,25, \
18,19, \
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index adb4e5b..3fca2f7 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -924,9 +924,6 @@ static bool ix86_must_pass_in_stack (enum machine_mode mode, tree type);
static bool ix86_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
-#if defined (DO_GLOBAL_CTORS_BODY) && defined (HAS_INIT_SECTION)
-static void ix86_svr3_asm_out_constructor (rtx, int);
-#endif
/* This function is only used on Solaris. */
static void i386_solaris_elf_named_section (const char *, unsigned int, tree)
ATTRIBUTE_UNUSED;
@@ -3709,24 +3706,13 @@ symbolic_reference_mentioned_p (rtx op)
body of a function. Do this only if the epilogue is simple, needing a
couple of insns. Prior to reloading, we can't tell how many registers
must be saved, so return 0 then. Return 0 if there is no frame
- marker to de-allocate.
-
- If NON_SAVING_SETJMP is defined and true, then it is not possible
- for the epilogue to be simple, so return 0. This is a special case
- since NON_SAVING_SETJMP will not cause regs_ever_live to change
- until final, but jump_optimize may need to know sooner if a
- `return' is OK. */
+ marker to de-allocate. */
int
ix86_can_use_return_insn_p (void)
{
struct ix86_frame frame;
-#ifdef NON_SAVING_SETJMP
- if (NON_SAVING_SETJMP && current_function_calls_setjmp)
- return 0;
-#endif
-
if (! reload_completed || frame_pointer_needed)
return 0;
@@ -14374,17 +14360,6 @@ ix86_rtx_costs (rtx x, int code, int outer_code, int *total)
}
}
-#if defined (DO_GLOBAL_CTORS_BODY) && defined (HAS_INIT_SECTION)
-static void
-ix86_svr3_asm_out_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
-{
- init_section ();
- fputs ("\tpushl $", asm_out_file);
- assemble_name (asm_out_file, XSTR (symbol, 0));
- fputc ('\n', asm_out_file);
-}
-#endif
-
#if TARGET_MACHO
static int current_machopic_label_num;
diff --git a/gcc/config/i386/sysv3.h b/gcc/config/i386/sysv3.h
deleted file mode 100644
index b2643b1..0000000
--- a/gcc/config/i386/sysv3.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Definitions for Intel 386 running system V.
- Copyright (C) 1988, 1996, 2000, 2002 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. */
-
-#define TARGET_VERSION fprintf (stderr, " (80386, ATT syntax)");
-
-/* Use crt1.o as a startup file and crtn.o as a closing file. */
-
-#define STARTFILE_SPEC \
- "%{pg:gcrt1.o%s}%{!pg:%{posix:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}%{!posix:%{p:mcrt1.o%s}%{!p:crt1.o%s}}} crtbegin.o%s\
- %{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp}"
-
-/* ??? There is a suggestion that -lg is needed here.
- Does anyone know whether this is right? */
-#define LIB_SPEC "%{posix:-lcposix} %{shlib:-lc_s} -lc crtend.o%s crtn.o%s"
-
-/* Specify predefined symbols in preprocessor. */
-
-#define TARGET_OS_CPP_BUILTINS() \
- do \
- { \
- builtin_define_std ("unix"); \
- builtin_assert ("system=svr3"); \
- } \
- while (0)
-
-#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
-
-/* Writing `int' for a bit-field forces int alignment for the structure. */
-
-#define PCC_BITFIELD_TYPE_MATTERS 1
-
-/* We want to be able to get DBX debugging information via -gstabs. */
-
-#define DBX_DEBUGGING_INFO 1
-
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE SDB_DEBUG
-
-/* longjmp may fail to restore the registers if called from the same
- function that called setjmp. To compensate, the compiler avoids
- putting variables in registers in functions that use both setjmp
- and longjmp. */
-
-#define NON_SAVING_SETJMP \
- (current_function_calls_setjmp && current_function_calls_longjmp)
-
-/* longjmp may fail to restore the stack pointer if the saved frame
- pointer is the same as the caller's frame pointer. Requiring a frame
- pointer in any function that calls setjmp or longjmp avoids this
- problem, unless setjmp and longjmp are called from the same function.
- Since a frame pointer will be required in such a function, it is OK
- that the stack pointer is not restored. */
-
-#undef SUBTARGET_FRAME_POINTER_REQUIRED
-#define SUBTARGET_FRAME_POINTER_REQUIRED \
- (current_function_calls_setjmp || current_function_calls_longjmp)
-
-/* Modify ASM_OUTPUT_LOCAL slightly to test -msvr3-shlib. */
-#undef ASM_OUTPUT_LOCAL
-#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
- do { \
- int align = exact_log2 (ROUNDED); \
- if (align > 2) align = 2; \
- if (TARGET_SVR3_SHLIB) \
- data_section (); \
- else \
- bss_section (); \
- ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
- ASM_OUTPUT_LABEL ((FILE), (NAME)); \
- fprintf ((FILE), "\t.set .,.+%u\n", (int)(ROUNDED));\
- } while (0)
-
-/* Define a few machine-specific details of the implementation of
- constructors.
-
- The __CTORS_LIST__ goes in the .init section. Define CTOR_LIST_BEGIN
- and CTOR_LIST_END to contribute to the .init section an instruction to
- push a word containing 0 (or some equivalent of that). */
-
-#undef INIT_SECTION_ASM_OP
-#define INIT_SECTION_ASM_OP "\t.section .init,\"x\""
-
-#define CTOR_LIST_BEGIN \
- asm (INIT_SECTION_ASM_OP); \
- asm ("pushl $0")
-#define CTOR_LIST_END CTOR_LIST_BEGIN
-
-#define TARGET_ASM_CONSTRUCTOR ix86_svr3_asm_out_constructor
diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h
index aecc8cd..0638198 100644
--- a/gcc/config/ip2k/ip2k.h
+++ b/gcc/config/ip2k/ip2k.h
@@ -184,8 +184,6 @@ extern int target_flags;
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,/*r224..r255*/\
1,1,1,1}
-#define NON_SAVING_SETJMP 0
-
#define REG_ALLOC_ORDER { \
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, \
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, \