summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-28 23:03:52 +0000
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-28 23:03:52 +0000
commitb7fdac4b9da9acfae4daa1ceff19d65e68443fe0 (patch)
tree490b4a7728416582f147cb5193c5b68562a77802 /gcc
parentb0382a8ecda8fa7089670a8d1cf0cf02cc5d2055 (diff)
downloadgcc-b7fdac4b9da9acfae4daa1ceff19d65e68443fe0.tar.gz
2001-08-28 Eric Christopher <echristo@redhat.com>
Richard Henderson <rth@redhat.com> * c-pragma.h (add_weak): Move prototype from here... * output.h (add_weak): ... to here. * varasm.c (add_weak): Fix typo. * config/mips/crti.asm: New file. * config/mips/crtn.asm: Ditto. * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef. (CTOR_LISTS_DEFINED_EXTERNALLY): Remove. (INVOKE__main): Ditto. (INIT_SECTION_ASM_OP): New. (FINI_SECTION_ASM_OP): Ditto. (STARTFILE_SPEC): Add crti. (ENDFILE_SPEC): Add crtn. * config/mips/elf64.h: Same. * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN): Remove. * config/mips/vxworks.h: Ditto. * config/mips/t-elf: Support crti and crtn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45243 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog43
-rw-r--r--gcc/c-pragma.h5
-rw-r--r--gcc/config/mips/crti.asm26
-rw-r--r--gcc/config/mips/crtn.asm22
-rw-r--r--gcc/config/mips/elf.h24
-rw-r--r--gcc/config/mips/elf64.h23
-rw-r--r--gcc/config/mips/rtems64.h4
-rw-r--r--gcc/config/mips/t-elf11
-rw-r--r--gcc/config/mips/vxworks.h4
-rw-r--r--gcc/output.h4
-rw-r--r--gcc/varasm.c85
11 files changed, 165 insertions, 86 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a01c992d2af..87a5aae7ccb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2001-08-28 Eric Christopher <echristo@redhat.com>
+ Richard Henderson <rth@redhat.com>
+
+ * c-pragma.h (add_weak): Move prototype from here...
+ * output.h (add_weak): ... to here.
+ * varasm.c (add_weak): Fix typo.
+ * config/mips/crti.asm: New file.
+ * config/mips/crtn.asm: Ditto.
+ * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
+ (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
+ (INVOKE__main): Ditto.
+ (INIT_SECTION_ASM_OP): New.
+ (FINI_SECTION_ASM_OP): Ditto.
+ (STARTFILE_SPEC): Add crti.
+ (ENDFILE_SPEC): Add crtn.
+ * config/mips/elf64.h: Same.
+ * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
+ Remove.
+ * config/mips/vxworks.h: Ditto.
+ * config/mips/t-elf: Support crti and crtn.
+
2001-08-28 Alexandre Oliva <aoliva@redhat.com>
* jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
@@ -47,7 +68,7 @@
bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
bunle_rev, bunlt_rev, bltgt_rev): New patterns.
-
+
2001-08-27 Roman Zippel <zippel@linux-m68k.org>
* config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
@@ -104,13 +125,13 @@
PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
RTL constructions.
-
+
* genattr.c (main): New variable num_insn_reservations. Increase
it if there is DEFINE_INSN_RESERVATION. Output automaton based
pipeline hazard recognizer interface.
* genattrtab.h: New file.
-
+
* genattrtab.c: Include genattrtab.h.
(attr_printf, check_attr_test, make_internal_attr,
make_numeric_value): Move protypes into genattrtab.h. Define them
@@ -124,11 +145,11 @@
* genautomata.c: New file.
* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
-
+
* sched-int.h: (curr_state): Add the external definition for
automaton pipeline interface.
(haifa_insn_data): Add comments for members blockage and units.
-
+
* target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_DFA_PRE_CYCLE_INSN,
@@ -143,7 +164,7 @@
dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
dfa_bubble): New members in gcc_target.sched.
-
+
* haifa-sched.c (insert_schedule_bubbles_p): New variable.
(MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
(insn_queue): Redefine it as pointer to array.
@@ -177,7 +198,7 @@
Initiate insn cost by -1.
(sched_finish): Free the current automaton state and finalize
automaton pipeline interface.
-
+
* sched-rgn.c: Include target.h.
(init_ready_list, new_ready, debug_dependencies): Add new code for
automaton pipeline interface.
@@ -185,7 +206,7 @@
* sched-vis.c: Include target.h.
(get_visual_tbl_length): Add code for automaton interface.
(target_units, print_block_visualization): Add comments.
-
+
* Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
(sched-rgn.o, sched-vis.o): Add new dependency file target.h.
@@ -195,7 +216,7 @@
(getruntime.o, hashtab.o): New entries for canadian cross.
* doc/md.texi: Description of automaton based model.
-
+
* doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
Add comments.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
@@ -208,7 +229,7 @@
hook descriptions.
(TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
MAX_DFA_ISSUE_RATE): New macro descriptions.
-
+
* doc/contrib.texi: Add dfa based scheduler contribution.
* doc/gcc.texi: Add more information about genattrtab.
@@ -241,7 +262,7 @@
* c-tree.h: Add prototyp for c_sizeof_nowarn.
2001-08-25 Dan Nicolaescu <dann@ics.uci.edu>
-
+
* ssa-ccp.c (ssa_const_prop): Free ssa_edges.
2001-08-27 Alan Modra <amodra@bigpond.net.au>
diff --git a/gcc/c-pragma.h b/gcc/c-pragma.h
index f60a5662bd4..6f0d6ea15a0 100644
--- a/gcc/c-pragma.h
+++ b/gcc/c-pragma.h
@@ -41,11 +41,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define HANDLE_PRAGMA_PACK 1
#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
-
-#ifdef HANDLE_PRAGMA_WEAK
-extern int add_weak PARAMS ((const char *, const char *));
-#endif /* HANDLE_PRAGMA_WEAK */
-
extern void init_pragma PARAMS ((void));
/* Duplicate prototypes for the register_pragma stuff and the typedef for
diff --git a/gcc/config/mips/crti.asm b/gcc/config/mips/crti.asm
new file mode 100644
index 00000000000..0b08529c6bf
--- /dev/null
+++ b/gcc/config/mips/crti.asm
@@ -0,0 +1,26 @@
+/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
+ Return spill offset of 40 and 20. */
+
+ .section .init,"ax",@progbits
+ .globl _init
+ .type _init,@function
+_init:
+#ifdef __mips64
+ dsubu $sp,$sp,48
+ sd $31,40($sp)
+#else
+ subu $sp,$sp,32
+ sw $31,20($sp)
+#endif
+
+ .section .fini,"ax",@progbits
+ .globl _fini
+ .type _fini,@function
+_fini:
+#ifdef __mips64
+ dsubu $sp,$sp,48
+ sd $31,40($sp)
+#else
+ subu $sp,$sp,32
+ sw $31,20($sp)
+#endif
diff --git a/gcc/config/mips/crtn.asm b/gcc/config/mips/crtn.asm
new file mode 100644
index 00000000000..be38a868746
--- /dev/null
+++ b/gcc/config/mips/crtn.asm
@@ -0,0 +1,22 @@
+/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
+ Return spill offset of 40 and 20. */
+
+ .section .init,"ax",@progbits
+#ifdef __mips64
+ ld $31,40($sp)
+ daddu $sp,$sp,48
+#else
+ lw $31,20($sp)
+ addu $sp,$sp,32
+#endif
+ j $31
+
+ .section .fini,"ax",@progbits
+#ifdef __mips64
+ ld $31,40($sp)
+ daddu $sp,$sp,48
+#else
+ lw $31,20($sp)
+ addu $sp,$sp,32
+#endif
+ j $31
diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h
index 4b2e605d8ed..c7e68f1687f 100644
--- a/gcc/config/mips/elf.h
+++ b/gcc/config/mips/elf.h
@@ -99,10 +99,12 @@ do { \
uninitialized global data will be output in the data section if
`-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
used. */
+
#ifndef BSS_SECTION_ASM_OP
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
#endif
+#undef SBSS_SECTION_ASM_OP
#define SBSS_SECTION_ASM_OP "\t.section .sbss"
/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
@@ -213,17 +215,10 @@ do { \
#define UNIQUE_SECTION(DECL,RELOC) \
mips_unique_section ((DECL), (RELOC))
-/* There's no point providing a default definition of __CTOR_LIST__
- since people are expected either to use crtbegin.o, or an equivalent,
- or provide their own definition. */
-#define CTOR_LISTS_DEFINED_EXTERNALLY
-
/* A list of other sections which the compiler might be "in" at any
given time. */
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_sdata, in_sbss, in_rdata
-
-#define INVOKE__main
#undef EXTRA_SECTION_FUNCTIONS
#define EXTRA_SECTION_FUNCTIONS \
@@ -241,12 +236,23 @@ void FN () \
} \
}
+/* On elf, we *do* have support for the .init and .fini sections, and we
+ can put stuff in there to be executed before and after `main'. We let
+ crtstuff.c and other files know this by defining the following symbols.
+ The definitions say how to change sections to the .init and .fini
+ sections. This is the same for all known elf assemblers. */
+
+#undef INIT_SECTION_ASM_OP
+#define INIT_SECTION_ASM_OP "\t.section\t.init"
+#undef FINI_SECTION_ASM_OP
+#define FINI_SECTION_ASM_OP "\t.section\t.fini"
+
/* Don't set the target flags, this is done by the linker script */
#undef LIB_SPEC
#define LIB_SPEC ""
#undef STARTFILE_SPEC
-#define STARTFILE_SPEC "crtbegin%O%s %{!mno-crt0:crt0%O%s}"
+#define STARTFILE_SPEC "crti%O%s crtbegin%O%s %{!mno-crt0:crt0%O%s}"
#undef ENDFILE_SPEC
-#define ENDFILE_SPEC "crtend%O%s"
+#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
diff --git a/gcc/config/mips/elf64.h b/gcc/config/mips/elf64.h
index 570e01f515f..894ea511941 100644
--- a/gcc/config/mips/elf64.h
+++ b/gcc/config/mips/elf64.h
@@ -256,17 +256,10 @@ do { \
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} while (0)
-/* There's no point providing a default definition of __CTOR_LIST__
- since people are expected either to use crtbegin.o, or an equivalent,
- or provide their own definition. */
-#define CTOR_LISTS_DEFINED_EXTERNALLY
-
/* A list of other sections which the compiler might be "in" at any
given time. */
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_sdata, in_rdata
-
-#define INVOKE__main
#undef EXTRA_SECTION_FUNCTIONS
#define EXTRA_SECTION_FUNCTIONS \
@@ -282,12 +275,24 @@ void FN () \
in_section = ENUM; \
} \
}
+
+/* On elf, we *do* have support for the .init and .fini sections, and we
+ can put stuff in there to be executed before and after `main'. We let
+ crtstuff.c and other files know this by defining the following symbols.
+ The definitions say how to change sections to the .init and .fini
+ sections. This is the same for all known elf assemblers. */
+
+#undef INIT_SECTION_ASM_OP
+#define INIT_SECTION_ASM_OP "\t.section\t.init"
+#undef FINI_SECTION_ASM_OP
+#define FINI_SECTION_ASM_OP "\t.section\t.fini"
+
/* Don't set the target flags, this is done by the linker script */
#undef LIB_SPEC
#define LIB_SPEC ""
#undef STARTFILE_SPEC
-#define STARTFILE_SPEC "crtbegin%O%s %{!mno-crt0:crt0%O%s}"
+#define STARTFILE_SPEC "crti%O%s crtbegin%O%s %{!mno-crt0:crt0%O%s}"
#undef ENDFILE_SPEC
-#define ENDFILE_SPEC "crtend%O%s"
+#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
diff --git a/gcc/config/mips/rtems64.h b/gcc/config/mips/rtems64.h
index 7a455e514fa..aedb02a87b5 100644
--- a/gcc/config/mips/rtems64.h
+++ b/gcc/config/mips/rtems64.h
@@ -33,10 +33,6 @@ Boston, MA 02111-1307, USA. */
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_sdata, in_rdata
-#undef INVOKE__main
-#undef NAME__MAIN
-#undef SYMBOL__MAIN
-
#undef EXTRA_SECTION_FUNCTIONS
#define EXTRA_SECTION_FUNCTIONS \
SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
diff --git a/gcc/config/mips/t-elf b/gcc/config/mips/t-elf
index 43df4932993..955edf982bd 100644
--- a/gcc/config/mips/t-elf
+++ b/gcc/config/mips/t-elf
@@ -1,9 +1,17 @@
CONFIG2_H = $(srcdir)/config/mips/ecoff.h
-EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
# Don't let CTOR_LIST end up in sdata section.
CRTSTUFF_T_CFLAGS = -G 0
+# Assemble startup files.
+$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
+ -c -o crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm
+
+$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
+ -c -o crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm
+
LIB1ASMSRC = mips/mips16.S
LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
_m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
@@ -48,6 +56,7 @@ fp-bit.c: $(srcdir)/config/fp-bit.c
MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB mips1/mips3
MULTILIB_DIRNAMES = soft-float single el eb mips1 mips3
MULTILIB_MATCHES = msingle-float=m4650
+EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
diff --git a/gcc/config/mips/vxworks.h b/gcc/config/mips/vxworks.h
index ec6e13bcebc..9eca3b71c6a 100644
--- a/gcc/config/mips/vxworks.h
+++ b/gcc/config/mips/vxworks.h
@@ -20,10 +20,6 @@ Boston, MA 02111-1307, USA. */
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_sdata, in_rdata, in_sbss
-#undef INVOKE__main
-#undef NAME__MAIN
-#undef SYMBOL__MAIN
-
#undef EXTRA_SECTION_FUNCTIONS
#define EXTRA_SECTION_FUNCTIONS \
SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
diff --git a/gcc/output.h b/gcc/output.h
index 0e05799198e..370589ad3ac 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -135,6 +135,10 @@ extern void leaf_renumber_regs_insn PARAMS ((rtx));
/* Locate the proper template for the given insn-code. */
extern const char *get_insn_template PARAMS ((int, rtx));
+/* Add function NAME to the weak symbols list. VALUE is a weak alias
+ associated with NAME. */
+extern int add_weak PARAMS ((const char *, const char *));
+
/* Functions in flow.c */
extern void allocate_for_life_analysis PARAMS ((void));
extern int regno_uninitialized PARAMS ((int));
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 7113d8aa8fe..a95994ca237 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -206,7 +206,7 @@ static enum in_section { no_section, in_text, in_data, in_named
((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \
&& DECL_SECTION_NAME (DECL) != NULL_TREE)
#endif
-
+
/* Text of section name when in_section == in_named. */
static const char *in_named_name;
@@ -621,7 +621,7 @@ decode_reg_name (asmspec)
/* Get rid of confusing prefixes. */
asmspec = strip_reg_name (asmspec);
-
+
/* Allow a decimal number as a "register name". */
for (i = strlen (asmspec) - 1; i >= 0; i--)
if (! (asmspec[i] >= '0' && asmspec[i] <= '9'))
@@ -697,7 +697,7 @@ make_decl_rtl (decl, asmspec)
&& !DECL_REGISTER (decl)))
abort ();
/* And that we were not given a type or a label. */
- else if (TREE_CODE (decl) == TYPE_DECL
+ else if (TREE_CODE (decl) == TYPE_DECL
|| TREE_CODE (decl) == LABEL_DECL)
abort ();
@@ -772,7 +772,7 @@ make_decl_rtl (decl, asmspec)
kludge to avoid setting DECL_RTL to frame_pointer_rtx. */
SET_DECL_RTL (decl,
- gen_rtx_REG (DECL_MODE (decl),
+ gen_rtx_REG (DECL_MODE (decl),
FIRST_PSEUDO_REGISTER));
REGNO (DECL_RTL (decl)) = reg_number;
REG_USERVAR_P (DECL_RTL (decl)) = 1;
@@ -1082,7 +1082,7 @@ assemble_start_function (decl, fnname)
if (align_functions_log > align)
{
#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
- ASM_OUTPUT_MAX_SKIP_ALIGN (asm_out_file,
+ ASM_OUTPUT_MAX_SKIP_ALIGN (asm_out_file,
align_functions_log, align_functions-1);
#else
ASM_OUTPUT_ALIGN (asm_out_file, align_functions_log);
@@ -1271,14 +1271,14 @@ asm_emit_uninitialised (decl, name, size, rounded)
asm_dest_local
}
destination = asm_dest_local;
-
+
if (TREE_PUBLIC (decl))
{
#if defined ASM_EMIT_BSS
if (! DECL_COMMON (decl))
destination = asm_dest_bss;
else
-#endif
+#endif
destination = asm_dest_common;
}
@@ -1401,7 +1401,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
/* Make sure ENCODE_SECTION_INFO is invoked before we set ASM_WRITTEN. */
decl_rtl = DECL_RTL (decl);
-
+
TREE_ASM_WRITTEN (decl) = 1;
/* Do no output if -fsyntax-only. */
@@ -1498,14 +1498,14 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
rounded += (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1;
rounded = (rounded / (BIGGEST_ALIGNMENT / BITS_PER_UNIT)
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT));
-
+
/* Don't continue this line--convex cc version 4.1 would lose. */
#if !defined(ASM_OUTPUT_ALIGNED_COMMON) && !defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) && !defined(ASM_OUTPUT_ALIGNED_BSS)
if ((unsigned HOST_WIDE_INT) DECL_ALIGN (decl) / BITS_PER_UNIT > rounded)
- warning_with_decl
+ warning_with_decl
(decl, "requested alignment for %s is greater than implemented alignment of %d.",rounded);
#endif
-
+
asm_emit_uninitialised (decl, name, size, rounded);
return;
@@ -1519,7 +1519,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
if (TREE_PUBLIC (decl) && DECL_NAME (decl))
{
#ifdef ASM_WEAKEN_LABEL
- if (DECL_WEAK (decl))
+ if (DECL_WEAK (decl))
{
ASM_WEAKEN_LABEL (asm_out_file, name);
/* Remove this variable from the pending weak list so that
@@ -1690,7 +1690,7 @@ assemble_name (file, name)
tree id;
STRIP_NAME_ENCODING (real_name, name);
- if (flag_prefix_function_name
+ if (flag_prefix_function_name
&& ! memcmp (real_name, CHKR_PREFIX, CHKR_PREFIX_SIZE))
real_name = real_name + CHKR_PREFIX_SIZE;
@@ -1916,7 +1916,7 @@ assemble_integer (x, size, align, force)
{
enum machine_mode omode, imode;
unsigned int i;
-
+
omode = mode_for_size (BITS_PER_UNIT, MODE_INT, 0);
imode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0);
@@ -2333,7 +2333,7 @@ struct constant_descriptor
const char *label;
rtx rtl;
/* Make sure the data is reasonably aligned. */
- union
+ union
{
unsigned char contents[1];
#ifdef HAVE_LONG_DOUBLE
@@ -2361,7 +2361,7 @@ static htab_t const_str_htab;
/* Mark a const_hash_table descriptor for GC. */
-static void
+static void
mark_const_hash_entry (ptr)
void *ptr;
{
@@ -2376,7 +2376,7 @@ mark_const_hash_entry (ptr)
/* Mark the hash-table element X (which is really a pointer to an
struct deferred_string *). */
-
+
static int
mark_const_str_htab_1 (x, data)
void **x;
@@ -2388,7 +2388,7 @@ mark_const_str_htab_1 (x, data)
/* Mark a const_str_htab for GC. */
-static void
+static void
mark_const_str_htab (htab)
void *htab;
{
@@ -2529,7 +2529,7 @@ const_hash (exp)
case CONVERT_EXPR:
case NON_LVALUE_EXPR:
return const_hash (TREE_OPERAND (exp, 0)) * 7 + 2;
-
+
default:
/* A language specific constant. Just hash the code. */
return (int) code % MAX_HASH_TABLE;
@@ -2655,7 +2655,7 @@ compare_constant_1 (exp, p)
p += sizeof length;
/* For record constructors, insist that the types match.
- For arrays, just verify both constructors are for arrays.
+ For arrays, just verify both constructors are for arrays.
Then insist that either both or none have any TREE_PURPOSE
values. */
if (TREE_CODE (TREE_TYPE (exp)) == RECORD_TYPE)
@@ -2898,7 +2898,7 @@ record_constant_1 (exp)
obstack_grow (&permanent_obstack, (char *) &type, sizeof type);
if (TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE)
obstack_grow (&permanent_obstack, &mode, sizeof mode);
-
+
obstack_grow (&permanent_obstack, (char *) &have_purpose,
sizeof have_purpose);
@@ -3166,18 +3166,18 @@ output_constant_def (exp, defer)
the label number already assigned. */
hash = const_hash (exp) % MAX_HASH_TABLE;
-
+
for (desc = const_hash_table[hash]; desc; desc = desc->next)
if (compare_constant (exp, desc))
break;
-
+
if (desc == 0)
{
/* No constant equal to EXP is known to have been output.
Make a constant descriptor to enter EXP in the hash table.
Assign the label number and record it in the descriptor for
future calls to this function to find. */
-
+
/* Create a string containing the label name, in LABEL. */
labelno = const_labelno++;
ASM_GENERATE_INTERNAL_LABEL (label, "LC", labelno);
@@ -3186,7 +3186,7 @@ output_constant_def (exp, defer)
desc->next = const_hash_table[hash];
desc->label = ggc_strdup (label);
const_hash_table[hash] = desc;
-
+
/* We have a symbol name; construct the SYMBOL_REF and the MEM. */
desc->rtl
= gen_rtx_MEM (TYPE_MODE (TREE_TYPE (exp)),
@@ -3390,7 +3390,7 @@ init_varasm_status (f)
/* Mark PC for GC. */
-static void
+static void
mark_pool_constant (pc)
struct pool_constant *pc;
{
@@ -3526,7 +3526,7 @@ decode_rtx_const (mode, x, value)
case LABEL_REF:
/* For a LABEL_REF, compare labels. */
value->un.addr.base = XEXP (value->un.addr.base, 0);
-
+
default:
break;
}
@@ -3608,7 +3608,7 @@ record_constant_rtx (mode, x)
{
struct constant_descriptor *ptr;
- ptr = ((struct constant_descriptor *)
+ ptr = ((struct constant_descriptor *)
xcalloc (1, (offsetof (struct constant_descriptor, u)
+ sizeof (struct rtx_const))));
decode_rtx_const (mode, x, (struct rtx_const *) ptr->u.contents);
@@ -3870,7 +3870,7 @@ output_constant_pool (fnname, fndecl)
x = const0_rtx;
}
break;
-
+
default:
break;
}
@@ -4162,7 +4162,7 @@ initializer_constant_valid_p (value, endtype)
return
initializer_constant_valid_p (TREE_VALUE (CONSTRUCTOR_ELTS (value)),
endtype);
-
+
return TREE_STATIC (value) ? null_pointer_node : 0;
case INTEGER_CST:
@@ -4345,7 +4345,7 @@ output_constant (exp, size, align)
That way we get the constant (we hope) inside it. Also, strip off any
NOP_EXPR that converts between two record, union, array, or set types
or a CONVERT_EXPR that converts to a union TYPE. */
- while ((TREE_CODE (exp) == NOP_EXPR
+ while ((TREE_CODE (exp) == NOP_EXPR
&& (TREE_TYPE (exp) == TREE_TYPE (TREE_OPERAND (exp, 0))
|| AGGREGATE_TYPE_P (TREE_TYPE (exp))))
|| (TREE_CODE (exp) == CONVERT_EXPR
@@ -4482,7 +4482,7 @@ array_size_for_constructor (val)
return 0;
/* Compute the total number of array elements. */
- i = size_binop (MINUS_EXPR, convert (sizetype, max_index),
+ i = size_binop (MINUS_EXPR, convert (sizetype, max_index),
convert (sizetype,
TYPE_MIN_VALUE (TYPE_DOMAIN (TREE_TYPE (val)))));
i = size_binop (PLUS_EXPR, i, convert (sizetype, integer_one_node));
@@ -4607,7 +4607,7 @@ output_constructor (exp, size, align)
/* Find the alignment of this element. */
align2 = min_align (align, BITS_PER_UNIT * pos);
-
+
/* Determine size this element should occupy. */
if (field)
{
@@ -4799,9 +4799,9 @@ output_constructor (exp, size, align)
assemble_zeros (size - total_bytes);
}
-/* This structure contains any weak symbol declarations waiting to be
- emitted. */
+/* This structure contains any weak symbol declarations waiting
+ to be emitted. */
struct weak_syms
{
struct weak_syms * next;
@@ -4812,8 +4812,8 @@ struct weak_syms
static struct weak_syms * weak_decls;
/* Add function NAME to the weak symbols list. VALUE is a weak alias
- associatd with NAME. */
-
+ associated with NAME. */
+
int
add_weak (name, value)
const char *name;
@@ -4878,7 +4878,6 @@ weak_finish ()
/* Remove NAME from the pending list of weak symbols. This prevents
the compiler from emitting multiple .weak directives which confuses
some assemblers. */
-
static void
remove_from_pending_weak_list (name)
const char *name;
@@ -4890,12 +4889,12 @@ remove_from_pending_weak_list (name)
{
t = *p;
if (strcmp (name, t->name) == 0)
- {
- *p = t->next;
- free (t);
- }
+ {
+ *p = t->next;
+ free (t);
+ }
else
- p = &(t->next);
+ p = &(t->next);
}
}