summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rwxr-xr-xgcc/alias.c42
-rwxr-xr-xgcc/basic-block.h28
-rwxr-xr-xgcc/bitmap.c10
-rwxr-xr-xgcc/bitmap.h26
-rwxr-xr-xgcc/c-aux-info.c12
-rwxr-xr-xgcc/c-common.c18
-rwxr-xr-xgcc/c-decl.c28
-rwxr-xr-xgcc/c-iterate.c20
-rwxr-xr-xgcc/c-lex.c14
-rwxr-xr-xgcc/c-lex.h18
-rw-r--r--gcc/c-parse.c2
-rwxr-xr-xgcc/c-parse.in2
-rwxr-xr-xgcc/c-pragma.c6
-rwxr-xr-xgcc/c-pragma.h4
-rwxr-xr-xgcc/c-tree.h286
-rwxr-xr-xgcc/c-typeck.c62
-rwxr-xr-xgcc/caller-save.c16
-rwxr-xr-xgcc/calls.c35
-rwxr-xr-xgcc/combine.c124
-rwxr-xr-xgcc/convert.h8
-rwxr-xr-xgcc/cppalloc.c2
-rwxr-xr-xgcc/cpperror.c4
-rwxr-xr-xgcc/cppexp.c6
-rwxr-xr-xgcc/cppfiles.c22
-rwxr-xr-xgcc/cpphash.h6
-rwxr-xr-xgcc/cpplib.c98
-rwxr-xr-xgcc/cpplib.h110
-rwxr-xr-xgcc/cse.c110
-rwxr-xr-xgcc/dwarf2out.c374
-rwxr-xr-xgcc/dwarf2out.h40
-rwxr-xr-xgcc/dyn-string.h8
-rwxr-xr-xgcc/eh-common.h2
-rwxr-xr-xgcc/emit-rtl.c10
-rwxr-xr-xgcc/except.c34
-rwxr-xr-xgcc/except.h114
-rwxr-xr-xgcc/explow.c8
-rwxr-xr-xgcc/expmed.c34
-rwxr-xr-xgcc/expr.c90
-rwxr-xr-xgcc/expr.h282
-rwxr-xr-xgcc/final.c18
-rwxr-xr-xgcc/flow.c74
-rwxr-xr-xgcc/fold-const.c80
-rwxr-xr-xgcc/function.c68
-rwxr-xr-xgcc/function.h42
-rwxr-xr-xgcc/gansidecl.h7
-rwxr-xr-xgcc/gcc.c87
-rwxr-xr-xgcc/gcse.c214
-rwxr-xr-xgcc/genattr.c310
-rwxr-xr-xgcc/genattrtab.c186
-rwxr-xr-xgcc/gencodes.c8
-rwxr-xr-xgcc/genconfig.c16
-rwxr-xr-xgcc/genemit.c24
-rwxr-xr-xgcc/genextract.c14
-rwxr-xr-xgcc/genflags.c18
-rwxr-xr-xgcc/gengenrtl.c31
-rwxr-xr-xgcc/genopinit.c8
-rwxr-xr-xgcc/genoutput.c34
-rwxr-xr-xgcc/genpeep.c14
-rwxr-xr-xgcc/genrecog.c56
-rwxr-xr-xgcc/global.c36
-rwxr-xr-xgcc/hash.c22
-rwxr-xr-xgcc/hash.h44
-rwxr-xr-xgcc/integrate.c52
-rwxr-xr-xgcc/integrate.h8
-rwxr-xr-xgcc/jump.c42
-rwxr-xr-xgcc/lcm.c48
-rwxr-xr-xgcc/local-alloc.c50
-rwxr-xr-xgcc/loop.c134
-rwxr-xr-xgcc/loop.h34
-rwxr-xr-xgcc/machmode.h6
-rwxr-xr-xgcc/mbchar.h6
-rwxr-xr-xgcc/optabs.c26
-rwxr-xr-xgcc/output.h144
-rwxr-xr-xgcc/prefix.c10
-rwxr-xr-xgcc/prefix.h4
-rwxr-xr-xgcc/print-rtl.c2
-rwxr-xr-xgcc/real.c182
-rwxr-xr-xgcc/real.h86
-rwxr-xr-xgcc/recog.c8
-rwxr-xr-xgcc/recog.h90
-rwxr-xr-xgcc/regclass.c22
-rwxr-xr-xgcc/regmove.c48
-rwxr-xr-xgcc/regs.h2
-rwxr-xr-xgcc/reload.c56
-rwxr-xr-xgcc/reload.h70
-rwxr-xr-xgcc/reload1.c148
-rwxr-xr-xgcc/resource.c10
-rwxr-xr-xgcc/resource.h22
-rwxr-xr-xgcc/rtl.c4
-rwxr-xr-xgcc/rtl.h697
-rwxr-xr-xgcc/rtlanal.c8
-rwxr-xr-xgcc/sbitmap.h48
-rwxr-xr-xgcc/stack.h4
-rwxr-xr-xgcc/stmt.c54
-rwxr-xr-xgcc/stor-layout.c8
-rwxr-xr-xgcc/stupid.c10
-rwxr-xr-xgcc/toplev.c144
-rwxr-xr-xgcc/toplev.h78
-rwxr-xr-xgcc/tree.c14
-rwxr-xr-xgcc/tree.h748
-rwxr-xr-xgcc/unroll.c30
-rwxr-xr-xgcc/varasm.c52
-rwxr-xr-xgcc/varray.h4
103 files changed, 3232 insertions, 3507 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index ac966a6..dca53cf 100755
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -72,25 +72,25 @@ typedef struct alias_set_entry {
splay_tree children;
}* alias_set_entry;
-static rtx canon_rtx PROTO((rtx));
-static int rtx_equal_for_memref_p PROTO((rtx, rtx));
-static rtx find_symbolic_term PROTO((rtx));
-static int memrefs_conflict_p PROTO((int, rtx, int, rtx,
- HOST_WIDE_INT));
-static void record_set PROTO((rtx, rtx));
-static rtx find_base_term PROTO((rtx));
-static int base_alias_check PROTO((rtx, rtx, enum machine_mode,
- enum machine_mode));
-static rtx find_base_value PROTO((rtx));
-static int mems_in_disjoint_alias_sets_p PROTO((rtx, rtx));
-static int alias_set_compare PROTO((splay_tree_key,
- splay_tree_key));
-static int insert_subset_children PROTO((splay_tree_node,
- void*));
-static alias_set_entry get_alias_set_entry PROTO((int));
-static rtx fixed_scalar_and_varying_struct_p PROTO((rtx, rtx, int (*)(rtx)));
-static int aliases_everything_p PROTO((rtx));
-static int write_dependence_p PROTO((rtx, rtx, int));
+static rtx canon_rtx (rtx);
+static int rtx_equal_for_memref_p (rtx, rtx);
+static rtx find_symbolic_term (rtx);
+static int memrefs_conflict_p (int, rtx, int, rtx,
+ HOST_WIDE_INT);
+static void record_set (rtx, rtx);
+static rtx find_base_term (rtx);
+static int base_alias_check (rtx, rtx, enum machine_mode,
+ enum machine_mode);
+static rtx find_base_value (rtx);
+static int mems_in_disjoint_alias_sets_p (rtx, rtx);
+static int alias_set_compare (splay_tree_key,
+ splay_tree_key);
+static int insert_subset_children (splay_tree_node,
+ void*);
+static alias_set_entry get_alias_set_entry (int);
+static rtx fixed_scalar_and_varying_struct_p (rtx, rtx, int (*)(rtx));
+static int aliases_everything_p (rtx);
+static int write_dependence_p (rtx, rtx, int);
/* Set up all info needed to perform alias analysis on memory references. */
@@ -1150,7 +1150,7 @@ static rtx
fixed_scalar_and_varying_struct_p (mem1, mem2, varies_p)
rtx mem1;
rtx mem2;
- int (*varies_p) PROTO((rtx));
+ int (*varies_p) (rtx);
{
rtx mem1_addr = XEXP (mem1, 0);
rtx mem2_addr = XEXP (mem2, 0);
@@ -1196,7 +1196,7 @@ true_dependence (mem, mem_mode, x, varies)
rtx mem;
enum machine_mode mem_mode;
rtx x;
- int (*varies) PROTO((rtx));
+ int (*varies) (rtx);
{
register rtx x_addr, mem_addr;
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 11848d2..1b58abe 100755
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -173,7 +173,7 @@ typedef struct int_list_block {
#define INT_LIST_SET_VAL(p, new_val) ((p)->val = (new_val))
-extern void free_int_list PROTO ((int_list_block **));
+extern void free_int_list (int_list_block **);
/* Stuff for recording basic block info. */
@@ -185,31 +185,31 @@ extern void free_int_list PROTO ((int_list_block **));
#define EXIT_BLOCK (-2)
/* from flow.c */
-extern void free_regset_vector PROTO ((regset *, int nelts));
+extern void free_regset_vector (regset *, int nelts);
extern int *uid_block_number;
#define BLOCK_NUM(INSN) uid_block_number[INSN_UID (INSN)]
-extern void dump_bb_data PROTO ((FILE *, int_list_ptr *, int_list_ptr *,
- int));
-extern void free_bb_mem PROTO ((void));
-extern void free_basic_block_vars PROTO ((int));
+extern void dump_bb_data (FILE *, int_list_ptr *, int_list_ptr *,
+ int);
+extern void free_bb_mem (void);
+extern void free_basic_block_vars (int);
/* CYGNUS LOCAL edge_splitting/law */
-extern int compute_preds_succs PROTO ((int_list_ptr *, int_list_ptr *,
- int *, int *, int));
+extern int compute_preds_succs (int_list_ptr *, int_list_ptr *,
+ int *, int *, int);
/* END CYGNUS LOCAL */
-extern void compute_dominators PROTO ((sbitmap *, sbitmap *,
- int_list_ptr *, int_list_ptr *));
+extern void compute_dominators (sbitmap *, sbitmap *,
+ int_list_ptr *, int_list_ptr *);
/* CYGNUS LOCAL lcm/law */
/* In lcm.c */
-extern void pre_lcm PROTO ((int, int, int_list_ptr *,
+extern void pre_lcm (int, int, int_list_ptr *,
int_list_ptr *,
sbitmap *, sbitmap *,
- sbitmap *, sbitmap *));
-extern void pre_rev_lcm PROTO ((int, int, int_list_ptr *,
+ sbitmap *, sbitmap *);
+extern void pre_rev_lcm (int, int, int_list_ptr *,
int_list_ptr *,
sbitmap *, sbitmap *,
- sbitmap *, sbitmap *));
+ sbitmap *, sbitmap *);
/* END CYGNUS LOCAL */
diff --git a/gcc/bitmap.c b/gcc/bitmap.c
index 1ca00b0..b03b3db 100755
--- a/gcc/bitmap.c
+++ b/gcc/bitmap.c
@@ -43,11 +43,11 @@ static int bitmap_obstack_init = FALSE;
bitmap_element bitmap_zero; /* An element of all zero bits. */
bitmap_element *bitmap_free; /* Freelist of bitmap elements. */
-static void bitmap_element_free PROTO((bitmap, bitmap_element *));
-static bitmap_element *bitmap_element_allocate PROTO((void));
-static int bitmap_element_zerop PROTO((bitmap_element *));
-static void bitmap_element_link PROTO((bitmap, bitmap_element *));
-static bitmap_element *bitmap_find_bit PROTO((bitmap, unsigned int));
+static void bitmap_element_free (bitmap, bitmap_element *);
+static bitmap_element *bitmap_element_allocate (void);
+static int bitmap_element_zerop (bitmap_element *);
+static void bitmap_element_link (bitmap, bitmap_element *);
+static bitmap_element *bitmap_find_bit (bitmap, unsigned int);
/* Free a bitmap element */
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index 6f3dfa6..7f838f1 100755
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -63,41 +63,41 @@ extern bitmap_element *bitmap_free; /* Freelist of bitmap elements */
extern bitmap_element bitmap_zero; /* Zero bitmap element */
/* Clear a bitmap by freeing up the linked list. */
-extern void bitmap_clear PROTO((bitmap));
+extern void bitmap_clear (bitmap);
/* Copy a bitmap to another bitmap. */
-extern void bitmap_copy PROTO((bitmap, bitmap));
+extern void bitmap_copy (bitmap, bitmap);
/* Perform an operation on two bitmaps, yielding a third. */
-extern void bitmap_operation PROTO((bitmap, bitmap, bitmap, enum bitmap_bits));
+extern void bitmap_operation (bitmap, bitmap, bitmap, enum bitmap_bits);
/* `or' into one bitmap the `and' of a second bitmap witih the complement
of a third. */
-extern void bitmap_ior_and_compl PROTO((bitmap, bitmap, bitmap));
+extern void bitmap_ior_and_compl (bitmap, bitmap, bitmap);
/* Clear a single register in a register set. */
-extern void bitmap_clear_bit PROTO((bitmap, int));
+extern void bitmap_clear_bit (bitmap, int);
/* Set a single register in a register set. */
-extern void bitmap_set_bit PROTO((bitmap, int));
+extern void bitmap_set_bit (bitmap, int);
/* Return true if a register is set in a register set. */
-extern int bitmap_bit_p PROTO((bitmap, int));
+extern int bitmap_bit_p (bitmap, int);
/* Debug functions to print a bitmap linked list. */
-extern void bitmap_debug PROTO((bitmap));
-extern void bitmap_debug_file PROTO((FILE *, bitmap));
+extern void bitmap_debug (bitmap);
+extern void bitmap_debug_file (FILE *, bitmap);
/* Print a bitmap */
-extern void bitmap_print PROTO((FILE *, bitmap, char *, char *));
+extern void bitmap_print (FILE *, bitmap, char *, char *);
/* Initialize a bitmap header. */
-extern bitmap bitmap_initialize PROTO((bitmap));
+extern bitmap bitmap_initialize (bitmap);
/* Release all memory held by bitmaps. */
-extern void bitmap_release_memory PROTO((void));
+extern void bitmap_release_memory (void);
-extern void debug_bitmap PROTO((bitmap));
+extern void debug_bitmap (bitmap);
/* Allocate a bitmap with oballoc. */
#define BITMAP_OBSTACK_ALLOC(OBSTACK) \
diff --git a/gcc/c-aux-info.c b/gcc/c-aux-info.c
index aa00448..929e4c3 100755
--- a/gcc/c-aux-info.c
+++ b/gcc/c-aux-info.c
@@ -37,12 +37,12 @@ typedef enum formals_style_enum formals_style;
static char *data_type;
-static char *affix_data_type PROTO((char *));
-static char *gen_formal_list_for_type PROTO((tree, formals_style));
-static int deserves_ellipsis PROTO((tree));
-static char *gen_formal_list_for_func_def PROTO((tree, formals_style));
-static char *gen_type PROTO((char *, tree, formals_style));
-static char *gen_decl PROTO((tree, int, formals_style));
+static char *affix_data_type (char *);
+static char *gen_formal_list_for_type (tree, formals_style);
+static int deserves_ellipsis (tree);
+static char *gen_formal_list_for_func_def (tree, formals_style);
+static char *gen_type (char *, tree, formals_style);
+static char *gen_decl (tree, int, formals_style);
/* Given a string representing an entire type or an entire declaration
which only lacks the actual "data-type" specifier (at its left end),
diff --git a/gcc/c-common.c b/gcc/c-common.c
index a3160a2..0bff87c 100755
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -58,14 +58,14 @@ enum attrs {A_PACKED, A_NOCOMMON, A_COMMON, A_NORETURN, A_CONST, A_T_UNION,
enum format_type { printf_format_type, scanf_format_type,
strftime_format_type };
-static void declare_hidden_char_array PROTO((char *, char *));
-static void add_attribute PROTO((enum attrs, char *,
- int, int, int));
-static void init_attributes PROTO((void));
-static void record_function_format PROTO((tree, tree, enum format_type,
- int, int));
-static void record_international_format PROTO((tree, tree, int));
-static tree c_find_base_decl PROTO((tree));
+static void declare_hidden_char_array (char *, char *);
+static void add_attribute (enum attrs, char *,
+ int, int, int);
+static void init_attributes (void);
+static void record_function_format (tree, tree, enum format_type,
+ int, int);
+static void record_international_format (tree, tree, int);
+static tree c_find_base_decl (tree);
/* Keep a stack of if statements. We record the number of compound
statements seen up to the if keyword, as well as the line number
@@ -1176,7 +1176,7 @@ typedef struct international_format_info
static international_format_info *international_format_list = NULL;
-static void check_format_info PROTO((function_format_info *, tree));
+static void check_format_info (function_format_info *, tree);
/* Initialize the table of functions to perform format checking on.
The ANSI functions are always checked (whether <stdio.h> is
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index edfd73a..fa028a5 100755
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -417,20 +417,20 @@ static struct binding_level *label_level_chain;
/* Forward declarations. */
-static struct binding_level * make_binding_level PROTO((void));
-static void clear_limbo_values PROTO((tree));
-static int duplicate_decls PROTO((tree, tree, int));
-static char *redeclaration_error_message PROTO((tree, tree));
-static void storedecls PROTO((tree));
-static void storetags PROTO((tree));
-static tree lookup_tag PROTO((enum tree_code, tree,
- struct binding_level *, int));
-static tree lookup_tag_reverse PROTO((tree));
-static tree grokdeclarator PROTO((tree, tree, enum decl_context,
- int));
-static tree grokparms PROTO((tree, int));
-static int field_decl_cmp PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static void layout_array_type PROTO((tree));
+static struct binding_level * make_binding_level (void);
+static void clear_limbo_values (tree);
+static int duplicate_decls (tree, tree, int);
+static char *redeclaration_error_message (tree, tree);
+static void storedecls (tree);
+static void storetags (tree);
+static tree lookup_tag (enum tree_code, tree,
+ struct binding_level *, int);
+static tree lookup_tag_reverse (tree);
+static tree grokdeclarator (tree, tree, enum decl_context,
+ int);
+static tree grokparms (tree, int);
+static int field_decl_cmp (const GENERIC_PTR, const GENERIC_PTR);
+static void layout_array_type (tree);
/* C-specific option variables. */
diff --git a/gcc/c-iterate.c b/gcc/c-iterate.c
index 6f49e29..99228f6 100755
--- a/gcc/c-iterate.c
+++ b/gcc/c-iterate.c
@@ -94,16 +94,16 @@ static char *ixp_firstobj;
/* During collect_iterators, a list of SAVE_EXPRs already scanned. */
static tree save_exprs;
-static void expand_stmt_with_iterators_1 PROTO((tree, tree));
-static tree collect_iterators PROTO((tree, tree));
-static void iterator_loop_prologue PROTO((tree, rtx *, rtx *));
-static void iterator_loop_epilogue PROTO((tree, rtx *, rtx *));
-static int top_level_ixpansion_p PROTO((void));
-static void isn_append PROTO((struct iter_stack_node *,
- struct iter_stack_node *));
-static void istack_sublevel_to_current PROTO((void));
-static void add_ixpansion PROTO((tree, rtx, rtx, rtx, rtx));
-static void delete_ixpansion PROTO((tree));
+static void expand_stmt_with_iterators_1 (tree, tree);
+static tree collect_iterators (tree, tree);
+static void iterator_loop_prologue (tree, rtx *, rtx *);
+static void iterator_loop_epilogue (tree, rtx *, rtx *);
+static int top_level_ixpansion_p (void);
+static void isn_append (struct iter_stack_node *,
+ struct iter_stack_node *);
+static void istack_sublevel_to_current (void);
+static void add_ixpansion (tree, rtx, rtx, rtx, rtx);
+static void delete_ixpansion (tree);
/* Initialize our obstack once per compilation. */
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index 834f946..c6e02dd 100755
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -42,7 +42,7 @@ Boston, MA 02111-1307, USA. */
extern cpp_reader parse_in;
extern cpp_options parse_options;
-extern void yyprint PROTO((FILE *, int, YYSTYPE));
+extern void yyprint (FILE *, int, YYSTYPE);
/* The elements of `ridpointers' are identifier nodes
for the reserved type names and storage classes.
@@ -92,13 +92,13 @@ static int end_of_file;
#ifdef HANDLE_GENERIC_PRAGMAS
-static int handle_generic_pragma PROTO((int));
+static int handle_generic_pragma (int);
#endif /* HANDLE_GENERIC_PRAGMAS */
-static int whitespace_cr PROTO((int));
-static int skip_white_space PROTO((int));
-static int skip_white_space_on_line PROTO((void));
-static char *extend_token_buffer PROTO((char *));
-static int readescape PROTO((int *));
+static int whitespace_cr (int);
+static int skip_white_space (int);
+static int skip_white_space_on_line (void);
+static char *extend_token_buffer (char *);
+static int readescape (int *);
/* Do not insert generated code into the source, instead, include it.
This allows us to build gcc automatically even for targets that
diff --git a/gcc/c-lex.h b/gcc/c-lex.h
index 255de21..cf50502 100755
--- a/gcc/c-lex.h
+++ b/gcc/c-lex.h
@@ -75,14 +75,14 @@ extern tree lastiddecl;
extern char *token_buffer; /* Pointer to token buffer. */
-extern tree make_pointer_declarator PROTO((tree, tree));
-extern void reinit_parse_for_function PROTO((void));
-extern void position_after_white_space PROTO((void));
-extern int check_newline PROTO((void));
+extern tree make_pointer_declarator (tree, tree);
+extern void reinit_parse_for_function (void);
+extern void position_after_white_space (void);
+extern int check_newline (void);
-extern int yylex PROTO((void));
-extern void yyerror PROTO((char *));
+extern int yylex (void);
+extern void yyerror (char *);
-extern void forget_protocol_qualifiers PROTO((void));
-extern void remember_protocol_qualifiers PROTO((void));
-extern tree is_class_name PROTO((tree));
+extern void forget_protocol_qualifiers (void);
+extern void remember_protocol_qualifiers (void);
+extern tree is_class_name (tree);
diff --git a/gcc/c-parse.c b/gcc/c-parse.c
index bde5227..36ce680 100644
--- a/gcc/c-parse.c
+++ b/gcc/c-parse.c
@@ -282,7 +282,7 @@ static int undeclared_variable_notice;
/* Tell yyparse how to print a token's value, if yydebug is set. */
#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
-extern void yyprint PROTO ((FILE *, int, YYSTYPE));
+extern void yyprint (FILE *, int, YYSTYPE);
/* Line 216 of yacc.c. */
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index 8a09144..cbc5376 100755
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -264,7 +264,7 @@ end ifobjc
/* Tell yyparse how to print a token's value, if yydebug is set. */
#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
-extern void yyprint PROTO ((FILE *, int, YYSTYPE));
+extern void yyprint (FILE *, int, YYSTYPE);
%}
%%
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c
index f9bfbe7..35379e3 100755
--- a/gcc/c-pragma.c
+++ b/gcc/c-pragma.c
@@ -50,8 +50,8 @@ typedef struct align_stack
static struct align_stack * alignment_stack = NULL;
-static int push_alignment PROTO((int));
-static int pop_alignment PROTO((void));
+static int push_alignment (int);
+static int pop_alignment (void);
/* Push an alignment value onto the stack. */
static int
@@ -193,7 +193,7 @@ insert_pack_attributes (node, attributes, prefix)
#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
#ifdef HANDLE_PRAGMA_WEAK
-static int add_weak PROTO((char *, char *));
+static int add_weak (char *, char *);
static int
add_weak (name, value)
diff --git a/gcc/c-pragma.h b/gcc/c-pragma.h
index 685f54a..6ee195a 100755
--- a/gcc/c-pragma.h
+++ b/gcc/c-pragma.h
@@ -41,7 +41,7 @@ Boston, MA 02111-1307, USA. */
#define HANDLE_PRAGMA_PACK 1
#define PRAGMA_INSERT_ATTRIBUTES(node, pattr, prefix_attr) \
insert_pack_attributes (node, pattr, prefix_attr)
-extern void insert_pack_attributes PROTO((tree, tree *, tree *));
+extern void insert_pack_attributes (tree, tree *, tree *);
#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
@@ -94,7 +94,7 @@ enum pragma_state
};
/* Handle a C style pragma */
-extern int handle_pragma_token PROTO((char *, tree));
+extern int handle_pragma_token (char *, tree);
#endif /* HANDLE_GENERIC_PRAGMAS */
#endif /* _C_PRAGMA_H */
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index cfbeaa8..6f45127 100755
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -162,46 +162,46 @@ struct lang_type
#define ITERATOR_BOUND_P(NODE) ((NODE)->common.readonly_flag)
/* in c-aux-info.c */
-extern void gen_aux_info_record PROTO((tree, int, int, int));
+extern void gen_aux_info_record (tree, int, int, int);
/* in c-common.c */
-extern void declare_function_name PROTO((void));
-extern void decl_attributes PROTO((tree, tree, tree));
-extern void init_function_format_info PROTO((void));
-extern void check_function_format PROTO((tree, tree, tree));
-extern int c_get_alias_set PROTO((tree));
-extern void c_apply_type_quals_to_decl PROTO((int, tree));
+extern void declare_function_name (void);
+extern void decl_attributes (tree, tree, tree);
+extern void init_function_format_info (void);
+extern void check_function_format (tree, tree, tree);
+extern int c_get_alias_set (tree);
+extern void c_apply_type_quals_to_decl (int, tree);
/* Print an error message for invalid operands to arith operation CODE.
NOP_EXPR is used as a special case (see truthvalue_conversion). */
-extern void binary_op_error PROTO((enum tree_code));
-extern void c_expand_expr_stmt PROTO((tree));
-extern void c_expand_start_cond PROTO((tree, int, int));
-extern void c_expand_start_else PROTO((void));
-extern void c_expand_end_cond PROTO((void));
+extern void binary_op_error (enum tree_code);
+extern void c_expand_expr_stmt (tree);
+extern void c_expand_start_cond (tree, int, int);
+extern void c_expand_start_else (void);
+extern void c_expand_end_cond (void);
/* Validate the expression after `case' and apply default promotions. */
-extern tree check_case_value PROTO((tree));
+extern tree check_case_value (tree);
/* Concatenate a list of STRING_CST nodes into one STRING_CST. */
-extern tree combine_strings PROTO((tree));
-extern void constant_expression_warning PROTO((tree));
-extern tree convert_and_check PROTO((tree, tree));
-extern void overflow_warning PROTO((tree));
-extern void unsigned_conversion_warning PROTO((tree, tree));
+extern tree combine_strings (tree);
+extern void constant_expression_warning (tree);
+extern tree convert_and_check (tree, tree);
+extern void overflow_warning (tree);
+extern void unsigned_conversion_warning (tree, tree);
/* Read the rest of the current #-directive line. */
-extern char *get_directive_line PROTO((void));
+extern char *get_directive_line (void);
#define GET_DIRECTIVE_LINE() get_directive_line ()
/* Subroutine of build_binary_op, used for comparison operations.
See if the operands have both been converted from subword integer types
and, if so, perhaps change them both back to their original type. */
-extern tree shorten_compare PROTO((tree *, tree *, tree *, enum tree_code *));
+extern tree shorten_compare (tree *, tree *, tree *, enum tree_code *);
/* Prepare expr to be an argument of a TRUTH_NOT_EXPR,
or validate its data type for an `if' or `while' statement or ?..: exp. */
-extern tree truthvalue_conversion PROTO((tree));
-extern tree type_for_mode PROTO((enum machine_mode, int));
-extern tree type_for_size PROTO((unsigned, int));
+extern tree truthvalue_conversion (tree);
+extern tree type_for_mode (enum machine_mode, int);
+extern tree type_for_size (unsigned, int);
/* in c-convert.c */
-extern tree convert PROTO((tree, tree));
+extern tree convert (tree, tree);
/* in c-decl.c */
/* Standard named or nameless data types of the C compiler. */
@@ -264,136 +264,136 @@ extern tree boolean_type_node;
extern tree boolean_true_node;
extern tree boolean_false_node;
-extern tree build_enumerator PROTO((tree, tree));
+extern tree build_enumerator (tree, tree);
/* Declare a predefined function. Return the declaration. */
-extern tree builtin_function PROTO((char *, tree, enum built_in_function function_, char *));
+extern tree builtin_function (char *, tree, enum built_in_function function_, char *);
/* Add qualifiers to a type, in the fashion for C. */
-extern tree c_build_qualified_type PROTO((tree, int));
+extern tree c_build_qualified_type (tree, int);
#define c_build_type_variant(TYPE, CONST_P, VOLATILE_P) \
c_build_qualified_type (TYPE, \
((CONST_P) ? TYPE_QUAL_CONST : 0) | \
((VOLATILE_P) ? TYPE_QUAL_VOLATILE : 0))
-extern int c_decode_option PROTO((int, char **));
-extern void c_mark_varargs PROTO((void));
-extern tree check_identifier PROTO((tree, tree));
-extern void clear_parm_order PROTO((void));
-extern tree combine_parm_decls PROTO((tree, tree, int));
-extern int complete_array_type PROTO((tree, tree, int));
-extern void declare_parm_level PROTO((int));
-extern tree define_label PROTO((char *, int, tree));
-extern void delete_block PROTO((tree));
-extern void finish_decl PROTO((tree, tree, tree));
-extern void finish_decl_top_level PROTO((tree, tree, tree));
-extern tree finish_enum PROTO((tree, tree, tree));
-extern void finish_function PROTO((int));
-extern tree finish_struct PROTO((tree, tree, tree));
-extern tree get_parm_info PROTO((int));
-extern tree getdecls PROTO((void));
-extern tree gettags PROTO((void));
-extern int global_bindings_p PROTO((void));
-extern tree grokfield PROTO((char *, int, tree, tree, tree));
-extern tree groktypename PROTO((tree));
-extern tree groktypename_in_parm_context PROTO((tree));
-extern tree implicitly_declare PROTO((tree));
-extern int in_parm_level_p PROTO((void));
-extern void init_decl_processing PROTO((void));
-extern void insert_block PROTO((tree));
-extern void keep_next_level PROTO((void));
-extern int kept_level_p PROTO((void));
-extern tree lookup_label PROTO((tree));
-extern tree lookup_name PROTO((tree));
-extern tree lookup_name_current_level PROTO((tree));
-extern tree lookup_name_current_level_global PROTO((tree));
-extern tree maybe_build_cleanup PROTO((tree));
-extern void parmlist_tags_warning PROTO((void));
-extern void pending_xref_error PROTO((void));
-extern void pop_c_function_context PROTO((void));
-extern void pop_label_level PROTO((void));
-extern tree poplevel PROTO((int, int, int));
-extern void print_lang_decl PROTO((FILE *, tree, int));
-extern void print_lang_identifier PROTO((FILE *, tree, int));
-extern void print_lang_type PROTO((FILE *, tree, int));
-extern void push_c_function_context PROTO((void));
-extern void push_label_level PROTO((void));
-extern void push_parm_decl PROTO((tree));
-extern tree pushdecl PROTO((tree));
-extern tree pushdecl_top_level PROTO((tree));
-extern void pushlevel PROTO((int));
-extern void pushtag PROTO((tree, tree));
-extern void set_block PROTO((tree));
-extern tree shadow_label PROTO((tree));
-extern void shadow_record_fields PROTO((tree));
-extern void shadow_tag PROTO((tree));
-extern void shadow_tag_warned PROTO((tree, int));
-extern tree start_enum PROTO((tree));
-extern int start_function PROTO((tree, tree, tree,
- tree, int));
-extern tree start_decl PROTO((tree, tree, int,
- tree, tree));
-extern tree start_struct PROTO((enum tree_code, tree));
-extern void store_parm_decls PROTO((void));
-extern tree xref_tag PROTO((enum tree_code, tree));
+extern int c_decode_option (int, char **);
+extern void c_mark_varargs (void);
+extern tree check_identifier (tree, tree);
+extern void clear_parm_order (void);
+extern tree combine_parm_decls (tree, tree, int);
+extern int complete_array_type (tree, tree, int);
+extern void declare_parm_level (int);
+extern tree define_label (char *, int, tree);
+extern void delete_block (tree);
+extern void finish_decl (tree, tree, tree);
+extern void finish_decl_top_level (tree, tree, tree);
+extern tree finish_enum (tree, tree, tree);
+extern void finish_function (int);
+extern tree finish_struct (tree, tree, tree);
+extern tree get_parm_info (int);
+extern tree getdecls (void);
+extern tree gettags (void);
+extern int global_bindings_p (void);
+extern tree grokfield (char *, int, tree, tree, tree);
+extern tree groktypename (tree);
+extern tree groktypename_in_parm_context (tree);
+extern tree implicitly_declare (tree);
+extern int in_parm_level_p (void);
+extern void init_decl_processing (void);
+extern void insert_block (tree);
+extern void keep_next_level (void);
+extern int kept_level_p (void);
+extern tree lookup_label (tree);
+extern tree lookup_name (tree);
+extern tree lookup_name_current_level (tree);
+extern tree lookup_name_current_level_global (tree);
+extern tree maybe_build_cleanup (tree);
+extern void parmlist_tags_warning (void);
+extern void pending_xref_error (void);
+extern void pop_c_function_context (void);
+extern void pop_label_level (void);
+extern tree poplevel (int, int, int);
+extern void print_lang_decl (FILE *, tree, int);
+extern void print_lang_identifier (FILE *, tree, int);
+extern void print_lang_type (FILE *, tree, int);
+extern void push_c_function_context (void);
+extern void push_label_level (void);
+extern void push_parm_decl (tree);
+extern tree pushdecl (tree);
+extern tree pushdecl_top_level (tree);
+extern void pushlevel (int);
+extern void pushtag (tree, tree);
+extern void set_block (tree);
+extern tree shadow_label (tree);
+extern void shadow_record_fields (tree);
+extern void shadow_tag (tree);
+extern void shadow_tag_warned (tree, int);
+extern tree start_enum (tree);
+extern int start_function (tree, tree, tree,
+ tree, int);
+extern tree start_decl (tree, tree, int,
+ tree, tree);
+extern tree start_struct (enum tree_code, tree);
+extern void store_parm_decls (void);
+extern tree xref_tag (enum tree_code, tree);
/* in c-typeck.c */
-extern tree require_complete_type PROTO((tree));
-extern void incomplete_type_error PROTO((tree, tree));
+extern tree require_complete_type (tree);
+extern void incomplete_type_error (tree, tree);
/* Given two integer or real types, return the type for their sum.
Given two compatible ANSI C types, returns the merged type. */
-extern tree common_type PROTO((tree, tree));
-extern int comptypes PROTO((tree, tree));
-extern int self_promoting_args_p PROTO((tree));
-extern tree c_sizeof PROTO((tree));
-extern tree c_sizeof_nowarn PROTO((tree));
-extern tree c_size_in_bytes PROTO((tree));
-extern tree c_alignof PROTO((tree));
-extern tree c_alignof_expr PROTO((tree));
-extern tree default_conversion PROTO((tree));
-extern tree build_component_ref PROTO((tree, tree));
-extern tree build_indirect_ref PROTO((tree, char *));
-extern tree build_array_ref PROTO((tree, tree));
-extern tree build_function_call PROTO((tree, tree));
-extern tree parser_build_binary_op PROTO((enum tree_code,
- tree, tree));
-extern tree build_binary_op PROTO((enum tree_code,
- tree, tree, int));
-extern tree build_unary_op PROTO((enum tree_code,
- tree, int));
-extern int lvalue_p PROTO((tree));
-extern int lvalue_or_else PROTO((tree, char *));
-extern void readonly_warning PROTO((tree, char *));
-extern int mark_addressable PROTO((tree));
-extern tree build_conditional_expr PROTO((tree, tree, tree));
-extern tree build_compound_expr PROTO((tree));
-extern tree build_c_cast PROTO((tree, tree));
-extern tree build_modify_expr PROTO((tree, enum tree_code,
- tree));
-extern tree initializer_constant_valid_p PROTO((tree, tree));
-extern void store_init_value PROTO((tree, tree));
-extern void error_init PROTO((char *, char *,
- char *));
-extern void pedwarn_init PROTO((char *, char *,
- char *));
-extern void start_init PROTO((tree, tree, int));
-extern void finish_init PROTO((void));
-extern void really_start_incremental_init PROTO((tree));
-extern void push_init_level PROTO((int));
-extern tree pop_init_level PROTO((int));
-extern void set_init_index PROTO((tree, tree));
-extern void set_init_label PROTO((tree));
-extern void process_init_element PROTO((tree));
-extern void c_expand_asm_operands PROTO((tree, tree, tree, tree,
- int, char *, int));
-extern void c_expand_return PROTO((tree));
-extern tree c_expand_start_case PROTO((tree));
+extern tree common_type (tree, tree);
+extern int comptypes (tree, tree);
+extern int self_promoting_args_p (tree);
+extern tree c_sizeof (tree);
+extern tree c_sizeof_nowarn (tree);
+extern tree c_size_in_bytes (tree);
+extern tree c_alignof (tree);
+extern tree c_alignof_expr (tree);
+extern tree default_conversion (tree);
+extern tree build_component_ref (tree, tree);
+extern tree build_indirect_ref (tree, char *);
+extern tree build_array_ref (tree, tree);
+extern tree build_function_call (tree, tree);
+extern tree parser_build_binary_op (enum tree_code,
+ tree, tree);
+extern tree build_binary_op (enum tree_code,
+ tree, tree, int);
+extern tree build_unary_op (enum tree_code,
+ tree, int);
+extern int lvalue_p (tree);
+extern int lvalue_or_else (tree, char *);
+extern void readonly_warning (tree, char *);
+extern int mark_addressable (tree);
+extern tree build_conditional_expr (tree, tree, tree);
+extern tree build_compound_expr (tree);
+extern tree build_c_cast (tree, tree);
+extern tree build_modify_expr (tree, enum tree_code,
+ tree);
+extern tree initializer_constant_valid_p (tree, tree);
+extern void store_init_value (tree, tree);
+extern void error_init (char *, char *,
+ char *);
+extern void pedwarn_init (char *, char *,
+ char *);
+extern void start_init (tree, tree, int);
+extern void finish_init (void);
+extern void really_start_incremental_init (tree);
+extern void push_init_level (int);
+extern tree pop_init_level (int);
+extern void set_init_index (tree, tree);
+extern void set_init_label (tree);
+extern void process_init_element (tree);
+extern void c_expand_asm_operands (tree, tree, tree, tree,
+ int, char *, int);
+extern void c_expand_return (tree);
+extern tree c_expand_start_case (tree);
/* in c-iterate.c */
-extern void init_iterators PROTO((void));
-extern void iterator_expand PROTO((tree));
-extern void iterator_for_loop_start PROTO((tree));
-extern void iterator_for_loop_end PROTO((tree));
-extern void iterator_for_loop_record PROTO((tree));
-extern void push_iterator_stack PROTO((void));
-extern void pop_iterator_stack PROTO((void));
+extern void init_iterators (void);
+extern void iterator_expand (tree);
+extern void iterator_for_loop_start (tree);
+extern void iterator_for_loop_end (tree);
+extern void iterator_for_loop_record (tree);
+extern void push_iterator_stack (void);
+extern void pop_iterator_stack (void);
/* Set to 0 at beginning of a function definition, set to 1 if
a return statement that specifies a return value is seen. */
@@ -535,6 +535,6 @@ extern int warn_long_long;
extern int system_header_p;
/* In c-decl.c */
-extern void finish_incomplete_decl PROTO((tree));
+extern void finish_incomplete_decl (tree);
#endif /* not _C_TREE_H */
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 3d29a95..0c75dfb 100755
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -42,37 +42,37 @@ Boston, MA 02111-1307, USA. */
message within this initializer. */
static int missing_braces_mentioned;
-static tree qualify_type PROTO((tree, tree));
-static int comp_target_types PROTO((tree, tree));
-static int function_types_compatible_p PROTO((tree, tree));
-static int type_lists_compatible_p PROTO((tree, tree));
-static int self_promoting_type_p PROTO((tree));
-static tree decl_constant_value PROTO((tree));
-static tree lookup_field PROTO((tree, tree, tree *));
-static tree convert_arguments PROTO((tree, tree, tree, tree));
-static tree pointer_int_sum PROTO((enum tree_code, tree, tree));
-static tree pointer_diff PROTO((tree, tree));
-static tree unary_complex_lvalue PROTO((enum tree_code, tree));
-static void pedantic_lvalue_warning PROTO((enum tree_code));
-static tree internal_build_compound_expr PROTO((tree, int));
-static tree convert_for_assignment PROTO((tree, tree, char *, tree,
- tree, int));
-static void warn_for_assignment PROTO((char *, char *, tree, int));
-static tree valid_compound_expr_initializer PROTO((tree, tree));
-static void push_string PROTO((char *));
-static void push_member_name PROTO((tree));
-static void push_array_bounds PROTO((int));
-static int spelling_length PROTO((void));
-static char *print_spelling PROTO((char *));
-static char *get_spelling PROTO((char *));
-static void warning_init PROTO((char *, char *,
- char *));
-static tree digest_init PROTO((tree, tree, int, int));
-static void check_init_type_bitfields PROTO((tree));
-static void output_init_element PROTO((tree, tree, tree, int));
-static void output_pending_init_elements PROTO((int));
-static void add_pending_init PROTO((tree, tree));
-static int pending_init_member PROTO((tree));
+static tree qualify_type (tree, tree);
+static int comp_target_types (tree, tree);
+static int function_types_compatible_p (tree, tree);
+static int type_lists_compatible_p (tree, tree);
+static int self_promoting_type_p (tree);
+static tree decl_constant_value (tree);
+static tree lookup_field (tree, tree, tree *);
+static tree convert_arguments (tree, tree, tree, tree);
+static tree pointer_int_sum (enum tree_code, tree, tree);
+static tree pointer_diff (tree, tree);
+static tree unary_complex_lvalue (enum tree_code, tree);
+static void pedantic_lvalue_warning (enum tree_code);
+static tree internal_build_compound_expr (tree, int);
+static tree convert_for_assignment (tree, tree, char *, tree,
+ tree, int);
+static void warn_for_assignment (char *, char *, tree, int);
+static tree valid_compound_expr_initializer (tree, tree);
+static void push_string (char *);
+static void push_member_name (tree);
+static void push_array_bounds (int);
+static int spelling_length (void);
+static char *print_spelling (char *);
+static char *get_spelling (char *);
+static void warning_init (char *, char *,
+ char *);
+static tree digest_init (tree, tree, int, int);
+static void check_init_type_bitfields (tree);
+static void output_init_element (tree, tree, tree, int);
+static void output_pending_init_elements (int);
+static void add_pending_init (tree, tree);
+static int pending_init_member (tree);
/* Do `exp = require_complete_type (exp);' to make sure exp
does not have an incomplete type. (That includes void types.) */
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index 7c390a5..608d670 100755
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -83,14 +83,14 @@ static HARD_REG_SET referenced_regs;
static HARD_REG_SET this_insn_sets;
-static void mark_set_regs PROTO((rtx, rtx));
-static void mark_referenced_regs PROTO((rtx));
-static int insert_save PROTO((struct insn_chain *, int, int,
- HARD_REG_SET *));
-static int insert_restore PROTO((struct insn_chain *, int, int,
- int));
-static void insert_one_insn PROTO((struct insn_chain *, int,
- enum insn_code, rtx));
+static void mark_set_regs (rtx, rtx);
+static void mark_referenced_regs (rtx);
+static int insert_save (struct insn_chain *, int, int,
+ HARD_REG_SET *);
+static int insert_restore (struct insn_chain *, int, int,
+ int);
+static void insert_one_insn (struct insn_chain *, int,
+ enum insn_code, rtx);
/* Initialize for caller-save.
diff --git a/gcc/calls.c b/gcc/calls.c
index 463f11a..dbcd98d 100755
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -117,23 +117,23 @@ static int highest_outgoing_arg_in_use;
int stack_arg_under_construction;
#endif
-static int calls_function PROTO ((tree, int));
-static int calls_function_1 PROTO ((tree, int));
-static void emit_call_1 PROTO ((rtx, tree, tree, HOST_WIDE_INT,
+static int calls_function (tree, int);
+static int calls_function_1 (tree, int);
+static void emit_call_1 (rtx, tree, tree, HOST_WIDE_INT,
HOST_WIDE_INT, rtx, rtx,
- int, rtx, int));
-static void special_function_p PROTO ((char *, tree, int *, int *,
- int *, int *));
-static void precompute_register_parameters PROTO ((int, struct arg_data *,
- int *));
-static void store_one_arg PROTO ((struct arg_data *, rtx, int, int,
- int));
-static void store_unaligned_arguments_into_pseudos PROTO ((struct arg_data *,
- int));
+ int, rtx, int);
+static void special_function_p (char *, tree, int *, int *,
+ int *, int *);
+static void precompute_register_parameters (int, struct arg_data *,
+ int *);
+static void store_one_arg (struct arg_data *, rtx, int, int,
+ int);
+static void store_unaligned_arguments_into_pseudos (struct arg_data *,
+ int);
#if defined(ACCUMULATE_OUTGOING_ARGS) && defined(REG_PARM_STACK_SPACE)
-static rtx save_fixed_argument_area PROTO ((int, rtx, int *, int *));
-static void restore_fixed_argument_area PROTO ((rtx, rtx, int, int));
+static rtx save_fixed_argument_area (int, rtx, int *, int *);
+static void restore_fixed_argument_area (rtx, rtx, int, int);
#endif
/* If WHICH is 1, return 1 if EXP contains a call to the built-in function
@@ -2317,8 +2317,7 @@ expand_call (exp, target, ignore)
move memory references across the non-const call. */
void
-emit_library_call VPROTO((rtx orgfun, int no_queue, enum machine_mode outmode,
- int nargs, ...))
+emit_library_call (rtx orgfun, int no_queue, enum machine_mode outmode, int nargs, ...)
{
#ifndef ANSI_PROTOTYPES
rtx orgfun;
@@ -2805,8 +2804,8 @@ emit_library_call VPROTO((rtx orgfun, int no_queue, enum machine_mode outmode,
If VALUE is nonzero, VALUE is returned. */
rtx
-emit_library_call_value VPROTO((rtx orgfun, rtx value, int no_queue,
- enum machine_mode outmode, int nargs, ...))
+emit_library_call_value (rtx orgfun, rtx value, int no_queue,
+ enum machine_mode outmode, int nargs, ...)
{
#ifndef ANSI_PROTOTYPES
rtx orgfun;
diff --git a/gcc/combine.c b/gcc/combine.c
index ef05782..09c51ac 100755
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -389,68 +389,68 @@ static struct undobuf undobuf;
static int n_occurrences;
-static void init_reg_last_arrays PROTO((void));
-static void setup_incoming_promotions PROTO((void));
-static void set_nonzero_bits_and_sign_copies PROTO((rtx, rtx));
-static int can_combine_p PROTO((rtx, rtx, rtx, rtx, rtx *, rtx *));
-static int sets_function_arg_p PROTO((rtx));
-static int combinable_i3pat PROTO((rtx, rtx *, rtx, rtx, int, rtx *));
-static rtx try_combine PROTO((rtx, rtx, rtx));
-static void undo_all PROTO((void));
-static rtx *find_split_point PROTO((rtx *, rtx));
-static rtx subst PROTO((rtx, rtx, rtx, int, int));
-static rtx simplify_rtx PROTO((rtx, enum machine_mode, int, int));
-static rtx simplify_if_then_else PROTO((rtx));
-static rtx simplify_set PROTO((rtx));
-static rtx simplify_logical PROTO((rtx, int));
-static rtx expand_compound_operation PROTO((rtx));
-static rtx expand_field_assignment PROTO((rtx));
-static rtx make_extraction PROTO((enum machine_mode, rtx, int, rtx, int,
- int, int, int));
-static rtx extract_left_shift PROTO((rtx, int));
-static rtx make_compound_operation PROTO((rtx, enum rtx_code));
-static int get_pos_from_mask PROTO((unsigned HOST_WIDE_INT, int *));
-static rtx force_to_mode PROTO((rtx, enum machine_mode,
- unsigned HOST_WIDE_INT, rtx, int));
-static rtx if_then_else_cond PROTO((rtx, rtx *, rtx *));
-static rtx known_cond PROTO((rtx, enum rtx_code, rtx, rtx));
-static int rtx_equal_for_field_assignment_p PROTO((rtx, rtx));
-static rtx make_field_assignment PROTO((rtx));
-static rtx apply_distributive_law PROTO((rtx));
-static rtx simplify_and_const_int PROTO((rtx, enum machine_mode, rtx,
- unsigned HOST_WIDE_INT));
-static unsigned HOST_WIDE_INT nonzero_bits PROTO((rtx, enum machine_mode));
-static int num_sign_bit_copies PROTO((rtx, enum machine_mode));
-static int merge_outer_ops PROTO((enum rtx_code *, HOST_WIDE_INT *,
+static void init_reg_last_arrays (void);
+static void setup_incoming_promotions (void);
+static void set_nonzero_bits_and_sign_copies (rtx, rtx);
+static int can_combine_p (rtx, rtx, rtx, rtx, rtx *, rtx *);
+static int sets_function_arg_p (rtx);
+static int combinable_i3pat (rtx, rtx *, rtx, rtx, int, rtx *);
+static rtx try_combine (rtx, rtx, rtx);
+static void undo_all (void);
+static rtx *find_split_point (rtx *, rtx);
+static rtx subst (rtx, rtx, rtx, int, int);
+static rtx simplify_rtx (rtx, enum machine_mode, int, int);
+static rtx simplify_if_then_else (rtx);
+static rtx simplify_set (rtx);
+static rtx simplify_logical (rtx, int);
+static rtx expand_compound_operation (rtx);
+static rtx expand_field_assignment (rtx);
+static rtx make_extraction (enum machine_mode, rtx, int, rtx, int,
+ int, int, int);
+static rtx extract_left_shift (rtx, int);
+static rtx make_compound_operation (rtx, enum rtx_code);
+static int get_pos_from_mask (unsigned HOST_WIDE_INT, int *);
+static rtx force_to_mode (rtx, enum machine_mode,
+ unsigned HOST_WIDE_INT, rtx, int);
+static rtx if_then_else_cond (rtx, rtx *, rtx *);
+static rtx known_cond (rtx, enum rtx_code, rtx, rtx);
+static int rtx_equal_for_field_assignment_p (rtx, rtx);
+static rtx make_field_assignment (rtx);
+static rtx apply_distributive_law (rtx);
+static rtx simplify_and_const_int (rtx, enum machine_mode, rtx,
+ unsigned HOST_WIDE_INT);
+static unsigned HOST_WIDE_INT nonzero_bits (rtx, enum machine_mode);
+static int num_sign_bit_copies (rtx, enum machine_mode);
+static int merge_outer_ops (enum rtx_code *, HOST_WIDE_INT *,
enum rtx_code, HOST_WIDE_INT,
- enum machine_mode, int *));
-static rtx simplify_shift_const PROTO((rtx, enum rtx_code, enum machine_mode,
- rtx, int));
-static int recog_for_combine PROTO((rtx *, rtx, rtx *));
-static rtx gen_lowpart_for_combine PROTO((enum machine_mode, rtx));
-static rtx gen_rtx_combine PVPROTO((enum rtx_code code, enum machine_mode mode,
- ...));
-static rtx gen_binary PROTO((enum rtx_code, enum machine_mode,
- rtx, rtx));
-static rtx gen_unary PROTO((enum rtx_code, enum machine_mode,
- enum machine_mode, rtx));
-static enum rtx_code simplify_comparison PROTO((enum rtx_code, rtx *, rtx *));
-static int reversible_comparison_p PROTO((rtx));
-static void update_table_tick PROTO((rtx));
-static void record_value_for_reg PROTO((rtx, rtx, rtx));
-static void record_dead_and_set_regs_1 PROTO((rtx, rtx));
-static void record_dead_and_set_regs PROTO((rtx));
-static int get_last_value_validate PROTO((rtx *, rtx, int, int));
-static rtx get_last_value PROTO((rtx));
-static int use_crosses_set_p PROTO((rtx, int));
-static void reg_dead_at_p_1 PROTO((rtx, rtx));
-static int reg_dead_at_p PROTO((rtx, rtx));
-static void move_deaths PROTO((rtx, rtx, int, rtx, rtx *));
-static int reg_bitfield_target_p PROTO((rtx, rtx));
-static void distribute_notes PROTO((rtx, rtx, rtx, rtx, rtx, rtx));
-static void distribute_links PROTO((rtx));
-static void mark_used_regs_combine PROTO((rtx));
-static int insn_cuid PROTO((rtx));
+ enum machine_mode, int *);
+static rtx simplify_shift_const (rtx, enum rtx_code, enum machine_mode,
+ rtx, int);
+static int recog_for_combine (rtx *, rtx, rtx *);
+static rtx gen_lowpart_for_combine (enum machine_mode, rtx);
+static rtx gen_rtx_combine (enum rtx_code code, enum machine_mode mode,
+ ...);
+static rtx gen_binary (enum rtx_code, enum machine_mode,
+ rtx, rtx);
+static rtx gen_unary (enum rtx_code, enum machine_mode,
+ enum machine_mode, rtx);
+static enum rtx_code simplify_comparison (enum rtx_code, rtx *, rtx *);
+static int reversible_comparison_p (rtx);
+static void update_table_tick (rtx);
+static void record_value_for_reg (rtx, rtx, rtx);
+static void record_dead_and_set_regs_1 (rtx, rtx);
+static void record_dead_and_set_regs (rtx);
+static int get_last_value_validate (rtx *, rtx, int, int);
+static rtx get_last_value (rtx);
+static int use_crosses_set_p (rtx, int);
+static void reg_dead_at_p_1 (rtx, rtx);
+static int reg_dead_at_p (rtx, rtx);
+static void move_deaths (rtx, rtx, int, rtx, rtx *);
+static int reg_bitfield_target_p (rtx, rtx);
+static void distribute_notes (rtx, rtx, rtx, rtx, rtx, rtx);
+static void distribute_links (rtx);
+static void mark_used_regs_combine (rtx);
+static int insn_cuid (rtx);
/* Main entry point for combiner. F is the first insn of the function.
NREGS is the first unused pseudo-reg number. */
@@ -9339,7 +9339,7 @@ gen_lowpart_for_combine (mode, x)
/*VARARGS2*/
static rtx
-gen_rtx_combine VPROTO((enum rtx_code code, enum machine_mode mode, ...))
+gen_rtx_combine (enum rtx_code code, enum machine_mode mode, ...)
{
#ifndef ANSI_PROTOTYPES
enum rtx_code code;
diff --git a/gcc/convert.h b/gcc/convert.h
index 4123874..ab15e84 100755
--- a/gcc/convert.h
+++ b/gcc/convert.h
@@ -18,7 +18,7 @@ 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 tree convert_to_integer PROTO ((tree, tree));
-extern tree convert_to_pointer PROTO ((tree, tree));
-extern tree convert_to_real PROTO ((tree, tree));
-extern tree convert_to_complex PROTO ((tree, tree));
+extern tree convert_to_integer (tree, tree);
+extern tree convert_to_pointer (tree, tree);
+extern tree convert_to_real (tree, tree);
+extern tree convert_to_complex (tree, tree);
diff --git a/gcc/cppalloc.c b/gcc/cppalloc.c
index bc99436..320713a 100755
--- a/gcc/cppalloc.c
+++ b/gcc/cppalloc.c
@@ -26,7 +26,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "system.h"
#include "cpplib.h"
-static void memory_full PROTO ((void)) ATTRIBUTE_NORETURN;
+static void memory_full (void) ATTRIBUTE_NORETURN;
static void
memory_full ()
diff --git a/gcc/cpperror.c b/gcc/cpperror.c
index afb52f4..90e2cc2 100755
--- a/gcc/cpperror.c
+++ b/gcc/cpperror.c
@@ -109,7 +109,7 @@ v_cpp_message (pfile, is_error, msg, ap)
}
void
-cpp_message VPROTO ((cpp_reader *pfile, int is_error, const char *msg, ...))
+cpp_message (cpp_reader *pfile, int is_error, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -137,7 +137,7 @@ cpp_message VPROTO ((cpp_reader *pfile, int is_error, const char *msg, ...))
CPP_FATAL_ERRORS. */
void
-cpp_fatal VPROTO ((cpp_reader *pfile, const char *str, ...))
+cpp_fatal (cpp_reader *pfile, const char *str, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index 65b9760..163211e 100755
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -84,9 +84,9 @@ struct arglist {
number with SUM's sign, where A, B, and SUM are all C integers. */
#define possible_sum_sign(a, b, sum) ((((a) ^ (b)) | ~ ((a) ^ (sum))) < 0)
-static void integer_overflow PARAMS ((cpp_reader *));
-static long left_shift PARAMS ((cpp_reader *, long, int, unsigned long));
-static long right_shift PARAMS ((cpp_reader *, long, int, unsigned long));
+static void integer_overflow (cpp_reader *);
+static long left_shift (cpp_reader *, long, int, unsigned long);
+static long right_shift (cpp_reader *, long, int, unsigned long);
#define ERROR 299
#define OROR 300
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index c6202f9..6f190ef 100755
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -33,20 +33,20 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
so it's static anyway. */
/* CYGNUS LOCAL - obscured headers */
-static int open_include_file_name PARAMS ((cpp_reader*, char *));
+static int open_include_file_name (cpp_reader*, char *);
/* END CYGNUS LOCAL - obscured headers */
static struct include_hash *redundant_include_p
- PROTO ((cpp_reader *,
+ (cpp_reader *,
struct include_hash *,
- struct file_name_list *));
-static struct file_name_map *read_name_map PROTO ((cpp_reader *,
- const char *));
-static char *read_filename_string PROTO ((int, FILE *));
-static char *remap_filename PROTO ((cpp_reader *, char *,
- struct file_name_list *));
-static long safe_read PROTO ((int, char *, int));
-static void simplify_pathname PROTO ((char *));
-static struct file_name_list *actual_directory PROTO ((cpp_reader *, char *));
+ struct file_name_list *);
+static struct file_name_map *read_name_map (cpp_reader *,
+ const char *);
+static char *read_filename_string (int, FILE *);
+static char *remap_filename (cpp_reader *, char *,
+ struct file_name_list *);
+static long safe_read (int, char *, int);
+static void simplify_pathname (char *);
+static struct file_name_list *actual_directory (cpp_reader *, char *);
/* Windows does not natively support inodes, and neither does MSDOS. */
#if (defined _WIN32 && !defined CYGWIN) || defined __MSDOS__
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 0f37b56..3b97f1c 100755
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -49,6 +49,6 @@ typedef struct hashnode HASHNODE;
#define HASHSTEP(old, c) ((old << 2) + c)
#define MAKE_POS(v) (v & 0x7fffffff) /* make number positive */
-extern HASHNODE *install PARAMS ((U_CHAR *,int,enum node_type, int,char *,int));
-extern int hashf PARAMS ((const U_CHAR *, int, int));
-extern void delete_macro PARAMS ((HASHNODE *));
+extern HASHNODE *install (U_CHAR *,int,enum node_type, int,char *,int);
+extern int hashf (const U_CHAR *, int, int);
+extern void delete_macro (HASHNODE *);
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index dc0e555..41f24f1 100755
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -139,46 +139,46 @@ struct cpp_pending {
/* Forward declarations. */
-extern void cpp_hash_cleanup PARAMS ((cpp_reader *));
+extern void cpp_hash_cleanup (cpp_reader *);
-static char *my_strerror PROTO ((int));
-static void make_assertion PROTO ((cpp_reader *, char *, U_CHAR *));
-static void path_include PROTO ((cpp_reader *, char *));
-static void initialize_builtins PROTO ((cpp_reader *));
-static void initialize_char_syntax PROTO ((void));
+static char *my_strerror (int);
+static void make_assertion (cpp_reader *, char *, U_CHAR *);
+static void path_include (cpp_reader *, char *);
+static void initialize_builtins (cpp_reader *);
+static void initialize_char_syntax (void);
#if 0
static void trigraph_pcp ();
#endif
-static void validate_else PROTO ((cpp_reader *, char *));
-static int comp_def_part PROTO ((int, U_CHAR *, int, U_CHAR *,
- int, int));
+static void validate_else (cpp_reader *, char *);
+static int comp_def_part (int, U_CHAR *, int, U_CHAR *,
+ int, int);
#ifdef abort
extern void fancy_abort ();
#endif
/* CYGNUS LOCAL - obscured headers */
-static int open_include_file_name PARAMS ((cpp_reader*, char *));
+static int open_include_file_name (cpp_reader*, char *);
/* END CYGNUS LOCAL - obscured headers */
-static int check_macro_name PROTO ((cpp_reader *, U_CHAR *, char *));
-static int compare_defs PROTO ((cpp_reader *,
- DEFINITION *, DEFINITION *));
-static HOST_WIDE_INT eval_if_expression PROTO ((cpp_reader *));
-static int change_newlines PROTO ((U_CHAR *, int));
-static void push_macro_expansion PARAMS ((cpp_reader *,
- U_CHAR *, int, HASHNODE *));
-static struct cpp_pending *nreverse_pending PARAMS ((struct cpp_pending *));
-
-static void conditional_skip PROTO ((cpp_reader *, int,
- enum node_type, U_CHAR *));
-static void skip_if_group PROTO ((cpp_reader *));
-static int parse_name PARAMS ((cpp_reader *, int));
-static void print_help PROTO ((void));
+static int check_macro_name (cpp_reader *, U_CHAR *, char *);
+static int compare_defs (cpp_reader *,
+ DEFINITION *, DEFINITION *);
+static HOST_WIDE_INT eval_if_expression (cpp_reader *);
+static int change_newlines (U_CHAR *, int);
+static void push_macro_expansion (cpp_reader *,
+ U_CHAR *, int, HASHNODE *);
+static struct cpp_pending *nreverse_pending (struct cpp_pending *);
+
+static void conditional_skip (cpp_reader *, int,
+ enum node_type, U_CHAR *);
+static void skip_if_group (cpp_reader *);
+static int parse_name (cpp_reader *, int);
+static void print_help (void);
/* Last arg to output_line_command. */
enum file_change_code {same_file, enter_file, leave_file};
/* External declarations. */
-extern HOST_WIDE_INT cpp_parse_expr PARAMS ((cpp_reader *));
+extern HOST_WIDE_INT cpp_parse_expr (cpp_reader *);
extern char *version_string;
extern struct tm *localtime ();
@@ -245,7 +245,7 @@ static struct default_include {
struct directive {
int length; /* Length of name */
int (*func) /* Function to handle directive */
- PARAMS ((cpp_reader *, struct directive *));
+ (cpp_reader *, struct directive *);
char *name; /* Name of directive */
enum node_type type; /* Code which describes which directive. */
};
@@ -254,24 +254,24 @@ struct directive {
are going to be placed in a table and some old compilers have trouble with
pointers to functions returning void. */
-static int do_define PARAMS ((cpp_reader *, struct directive *));
-static int do_line PARAMS ((cpp_reader *, struct directive *));
-static int do_include PARAMS ((cpp_reader *, struct directive *));
-static int do_undef PARAMS ((cpp_reader *, struct directive *));
-static int do_error PARAMS ((cpp_reader *, struct directive *));
-static int do_pragma PARAMS ((cpp_reader *, struct directive *));
-static int do_ident PARAMS ((cpp_reader *, struct directive *));
-static int do_if PARAMS ((cpp_reader *, struct directive *));
-static int do_xifdef PARAMS ((cpp_reader *, struct directive *));
-static int do_else PARAMS ((cpp_reader *, struct directive *));
-static int do_elif PARAMS ((cpp_reader *, struct directive *));
-static int do_endif PARAMS ((cpp_reader *, struct directive *));
+static int do_define (cpp_reader *, struct directive *);
+static int do_line (cpp_reader *, struct directive *);
+static int do_include (cpp_reader *, struct directive *);
+static int do_undef (cpp_reader *, struct directive *);
+static int do_error (cpp_reader *, struct directive *);
+static int do_pragma (cpp_reader *, struct directive *);
+static int do_ident (cpp_reader *, struct directive *);
+static int do_if (cpp_reader *, struct directive *);
+static int do_xifdef (cpp_reader *, struct directive *);
+static int do_else (cpp_reader *, struct directive *);
+static int do_elif (cpp_reader *, struct directive *);
+static int do_endif (cpp_reader *, struct directive *);
#ifdef SCCS_DIRECTIVE
-static int do_sccs PARAMS ((cpp_reader *, struct directive *));
+static int do_sccs (cpp_reader *, struct directive *);
#endif
-static int do_assert PARAMS ((cpp_reader *, struct directive *));
-static int do_unassert PARAMS ((cpp_reader *, struct directive *));
-static int do_warning PARAMS ((cpp_reader *, struct directive *));
+static int do_assert (cpp_reader *, struct directive *);
+static int do_unassert (cpp_reader *, struct directive *);
+static int do_warning (cpp_reader *, struct directive *);
#define IS_INCLUDE_DIRECTIVE_TYPE(t) \
((int) T_INCLUDE <= (int) (t) && (int) (t) <= (int) T_IMPORT)
@@ -6248,7 +6248,7 @@ v_cpp_error (pfile, msg, ap)
}
void
-cpp_error VPROTO ((cpp_reader * pfile, const char *msg, ...))
+cpp_error (cpp_reader * pfile, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6287,7 +6287,7 @@ v_cpp_warning (pfile, msg, ap)
}
void
-cpp_warning VPROTO ((cpp_reader * pfile, const char *msg, ...))
+cpp_warning (cpp_reader * pfile, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6309,7 +6309,7 @@ cpp_warning VPROTO ((cpp_reader * pfile, const char *msg, ...))
/* Print an error message and maybe count it. */
void
-cpp_pedwarn VPROTO ((cpp_reader * pfile, const char *msg, ...))
+cpp_pedwarn (cpp_reader * pfile, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6350,7 +6350,7 @@ v_cpp_error_with_line (pfile, line, column, msg, ap)
}
void
-cpp_error_with_line VPROTO ((cpp_reader * pfile, int line, int column, const char *msg, ...))
+cpp_error_with_line (cpp_reader * pfile, int line, int column, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6401,7 +6401,7 @@ v_cpp_warning_with_line (pfile, line, column, msg, ap)
#if 0
static void
-cpp_warning_with_line VPROTO ((cpp_reader * pfile, int line, int column, const char *msg, ...))
+cpp_warning_with_line (cpp_reader * pfile, int line, int column, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6426,7 +6426,7 @@ cpp_warning_with_line VPROTO ((cpp_reader * pfile, int line, int column, const c
#endif
void
-cpp_pedwarn_with_line VPROTO ((cpp_reader * pfile, int line, int column, const char *msg, ...))
+cpp_pedwarn_with_line (cpp_reader * pfile, int line, int column, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
@@ -6456,7 +6456,7 @@ cpp_pedwarn_with_line VPROTO ((cpp_reader * pfile, int line, int column, const c
giving specified file name and line number, not current. */
void
-cpp_pedwarn_with_file_and_line VPROTO ((cpp_reader *pfile, char *file, int line, const char *msg, ...))
+cpp_pedwarn_with_file_and_line (cpp_reader *pfile, char *file, int line, const char *msg, ...)
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 182246b..06ff2ba 100755
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -69,8 +69,8 @@ enum cpp_token {
CPP_POP
};
-typedef enum cpp_token (*parse_underflow_t) PARAMS((cpp_reader *));
-typedef int (*parse_cleanup_t) PARAMS((cpp_buffer *, cpp_reader *));
+typedef enum cpp_token (*parse_underflow_t) (cpp_reader *);
+typedef int (*parse_cleanup_t) (cpp_buffer *, cpp_reader *);
/* A parse_marker indicates a previous position,
which we can backtrack to. */
@@ -81,19 +81,19 @@ struct parse_marker {
int position;
};
-extern void parse_set_mark PARAMS ((struct parse_marker *, cpp_reader *));
-extern void parse_clear_mark PARAMS ((struct parse_marker *));
-extern void parse_goto_mark PARAMS((struct parse_marker *, cpp_reader *));
-extern void parse_move_mark PARAMS((struct parse_marker *, cpp_reader *));
+extern void parse_set_mark (struct parse_marker *, cpp_reader *);
+extern void parse_clear_mark (struct parse_marker *);
+extern void parse_goto_mark (struct parse_marker *, cpp_reader *);
+extern void parse_move_mark (struct parse_marker *, cpp_reader *);
-extern int cpp_handle_option PARAMS ((cpp_reader *, int, char **));
-extern int cpp_handle_options PARAMS ((cpp_reader *, int, char **));
-extern enum cpp_token cpp_get_token PARAMS ((cpp_reader *));
-extern void cpp_skip_hspace PARAMS((cpp_reader *));
-extern enum cpp_token cpp_get_non_space_token PARAMS ((cpp_reader *));
+extern int cpp_handle_option (cpp_reader *, int, char **);
+extern int cpp_handle_options (cpp_reader *, int, char **);
+extern enum cpp_token cpp_get_token (cpp_reader *);
+extern void cpp_skip_hspace (cpp_reader *);
+extern enum cpp_token cpp_get_non_space_token (cpp_reader *);
/* This frees resources used by PFILE. */
-extern void cpp_cleanup PARAMS ((cpp_reader *PFILE));
+extern void cpp_cleanup (cpp_reader *PFILE);
/* If we have a huge buffer, may need to cache more recent counts */
#define CPP_LINE_BASE(BUF) ((BUF)->buf + (BUF)->line_base)
@@ -666,65 +666,65 @@ typedef struct if_stack IF_STACK_FRAME;
#include "machmode.h"
#endif
-extern void cpp_buf_line_and_col PARAMS((cpp_buffer *, long *, long *));
-extern cpp_buffer* cpp_file_buffer PARAMS((cpp_reader *));
-extern void cpp_define PARAMS ((cpp_reader*, unsigned char *));
+extern void cpp_buf_line_and_col (cpp_buffer *, long *, long *);
+extern cpp_buffer* cpp_file_buffer (cpp_reader *);
+extern void cpp_define (cpp_reader*, unsigned char *);
-extern void cpp_error PVPROTO ((cpp_reader *, const char *, ...))
+extern void cpp_error (cpp_reader *, const char *, ...)
ATTRIBUTE_PRINTF_2;
-extern void cpp_warning PVPROTO ((cpp_reader *, const char *, ...))
+extern void cpp_warning (cpp_reader *, const char *, ...)
ATTRIBUTE_PRINTF_2;
-extern void cpp_pedwarn PVPROTO ((cpp_reader *, const char *, ...))
+extern void cpp_pedwarn (cpp_reader *, const char *, ...)
ATTRIBUTE_PRINTF_2;
-extern void cpp_error_with_line PVPROTO ((cpp_reader *, int, int, const char *, ...))
+extern void cpp_error_with_line (cpp_reader *, int, int, const char *, ...)
ATTRIBUTE_PRINTF_4;
-extern void cpp_pedwarn_with_line PVPROTO ((cpp_reader *, int, int, const char *, ...))
+extern void cpp_pedwarn_with_line (cpp_reader *, int, int, const char *, ...)
ATTRIBUTE_PRINTF_4;
-extern void cpp_pedwarn_with_file_and_line PVPROTO ((cpp_reader *, char *, int, const char *, ...))
+extern void cpp_pedwarn_with_file_and_line (cpp_reader *, char *, int, const char *, ...)
ATTRIBUTE_PRINTF_4;
-extern void cpp_message_from_errno PROTO ((cpp_reader *, int, const char *));
-extern void cpp_error_from_errno PROTO ((cpp_reader *, const char *));
-extern void cpp_perror_with_name PROTO ((cpp_reader *, const char *));
-extern void v_cpp_message PROTO ((cpp_reader *, int, const char *, va_list));
-
-extern void cpp_grow_buffer PARAMS ((cpp_reader *, long));
-extern HOST_WIDE_INT cpp_parse_escape PARAMS ((cpp_reader *, char **, HOST_WIDE_INT));
-extern cpp_buffer *cpp_push_buffer PARAMS ((cpp_reader *,
- unsigned char *, long));
-extern cpp_buffer *cpp_pop_buffer PARAMS ((cpp_reader *));
-
-extern cpp_hashnode *cpp_lookup PARAMS ((cpp_reader *, const unsigned char *,
- int, int));
-extern void cpp_reader_init PARAMS ((cpp_reader *));
-extern void cpp_options_init PARAMS ((cpp_options *));
-extern int cpp_start_read PARAMS ((cpp_reader *, char *));
-extern int cpp_read_check_assertion PARAMS ((cpp_reader *));
-extern int scan_decls PARAMS ((cpp_reader *, int, char **));
-extern void skip_rest_of_line PARAMS ((cpp_reader *));
-extern void cpp_finish PARAMS ((cpp_reader *));
+extern void cpp_message_from_errno (cpp_reader *, int, const char *);
+extern void cpp_error_from_errno (cpp_reader *, const char *);
+extern void cpp_perror_with_name (cpp_reader *, const char *);
+extern void v_cpp_message (cpp_reader *, int, const char *, va_list);
+
+extern void cpp_grow_buffer (cpp_reader *, long);
+extern HOST_WIDE_INT cpp_parse_escape (cpp_reader *, char **, HOST_WIDE_INT);
+extern cpp_buffer *cpp_push_buffer (cpp_reader *,
+ unsigned char *, long);
+extern cpp_buffer *cpp_pop_buffer (cpp_reader *);
+
+extern cpp_hashnode *cpp_lookup (cpp_reader *, const unsigned char *,
+ int, int);
+extern void cpp_reader_init (cpp_reader *);
+extern void cpp_options_init (cpp_options *);
+extern int cpp_start_read (cpp_reader *, char *);
+extern int cpp_read_check_assertion (cpp_reader *);
+extern int scan_decls (cpp_reader *, int, char **);
+extern void skip_rest_of_line (cpp_reader *);
+extern void cpp_finish (cpp_reader *);
/* From cpperror.c */
-extern void cpp_fatal PVPROTO ((cpp_reader *, const char *, ...))
+extern void cpp_fatal (cpp_reader *, const char *, ...)
ATTRIBUTE_PRINTF_2;
-extern void cpp_message PVPROTO ((cpp_reader *, int, const char *, ...))
+extern void cpp_message (cpp_reader *, int, const char *, ...)
ATTRIBUTE_PRINTF_3;
-extern void cpp_pfatal_with_name PROTO ((cpp_reader *, const char *));
-extern void cpp_file_line_for_message PROTO ((cpp_reader *, char *, int, int));
-extern void cpp_print_containing_files PROTO ((cpp_reader *));
+extern void cpp_pfatal_with_name (cpp_reader *, const char *);
+extern void cpp_file_line_for_message (cpp_reader *, char *, int, int);
+extern void cpp_print_containing_files (cpp_reader *);
/* In cppfiles.c */
-extern void append_include_chain PROTO ((cpp_reader *,
+extern void append_include_chain (cpp_reader *,
struct file_name_list **,
- const char *, int));
-extern void merge_include_chains PROTO ((struct cpp_options *));
-extern int find_include_file PROTO ((cpp_reader *, char *,
+ const char *, int);
+extern void merge_include_chains (struct cpp_options *);
+extern int find_include_file (cpp_reader *, char *,
struct file_name_list *,
struct include_hash **,
- int *));
-extern int finclude PROTO ((cpp_reader *, int,
- struct include_hash *));
-extern void deps_output PROTO ((cpp_reader *, char *, int));
-extern struct include_hash *include_hash PROTO ((cpp_reader *, char *, int));
+ int *);
+extern int finclude (cpp_reader *, int,
+ struct include_hash *);
+extern void deps_output (cpp_reader *, char *, int);
+extern struct include_hash *include_hash (cpp_reader *, char *, int);
#ifndef INCLUDE_LEN_FUDGE
#define INCLUDE_LEN_FUDGE 0
diff --git a/gcc/cse.c b/gcc/cse.c
index 4589cc1..242aeb8 100755
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -595,63 +595,63 @@ struct cse_basic_block_data {
|| XEXP (X, 0) == virtual_outgoing_args_rtx)) \
|| GET_CODE (X) == ADDRESSOF)
-static int notreg_cost PROTO((rtx));
-static void new_basic_block PROTO((void));
-static void make_new_qty PROTO((int));
-static void make_regs_eqv PROTO((int, int));
-static void delete_reg_equiv PROTO((int));
-static int mention_regs PROTO((rtx));
-static int insert_regs PROTO((rtx, struct table_elt *, int));
-static void free_element PROTO((struct table_elt *));
-static void remove_from_table PROTO((struct table_elt *, unsigned));
-static struct table_elt *get_element PROTO((void));
-static struct table_elt *lookup PROTO((rtx, unsigned, enum machine_mode)),
- *lookup_for_remove PROTO((rtx, unsigned, enum machine_mode));
-static rtx lookup_as_function PROTO((rtx, enum rtx_code));
-static struct table_elt *insert PROTO((rtx, struct table_elt *, unsigned,
- enum machine_mode));
-static void merge_equiv_classes PROTO((struct table_elt *,
- struct table_elt *));
-static void invalidate PROTO((rtx, enum machine_mode));
-static int cse_rtx_varies_p PROTO((rtx));
-static void remove_invalid_refs PROTO((int));
-static void remove_invalid_subreg_refs PROTO((int, int, enum machine_mode));
-static void rehash_using_reg PROTO((rtx));
-static void invalidate_memory PROTO((void));
-static void invalidate_for_call PROTO((void));
-static rtx use_related_value PROTO((rtx, struct table_elt *));
-static unsigned canon_hash PROTO((rtx, enum machine_mode));
-static unsigned safe_hash PROTO((rtx, enum machine_mode));
-static int exp_equiv_p PROTO((rtx, rtx, int, int));
-static void set_nonvarying_address_components PROTO((rtx, int, rtx *,
+static int notreg_cost (rtx);
+static void new_basic_block (void);
+static void make_new_qty (int);
+static void make_regs_eqv (int, int);
+static void delete_reg_equiv (int);
+static int mention_regs (rtx);
+static int insert_regs (rtx, struct table_elt *, int);
+static void free_element (struct table_elt *);
+static void remove_from_table (struct table_elt *, unsigned);
+static struct table_elt *get_element (void);
+static struct table_elt *lookup (rtx, unsigned, enum machine_mode);
+static struct table_elt *lookup_for_remove (rtx, unsigned, enum machine_mode);
+static rtx lookup_as_function (rtx, enum rtx_code);
+static struct table_elt *insert (rtx, struct table_elt *, unsigned,
+ enum machine_mode);
+static void merge_equiv_classes (struct table_elt *,
+ struct table_elt *);
+static void invalidate (rtx, enum machine_mode);
+static int cse_rtx_varies_p (rtx);
+static void remove_invalid_refs (int);
+static void remove_invalid_subreg_refs (int, int, enum machine_mode);
+static void rehash_using_reg (rtx);
+static void invalidate_memory (void);
+static void invalidate_for_call (void);
+static rtx use_related_value (rtx, struct table_elt *);
+static unsigned canon_hash (rtx, enum machine_mode);
+static unsigned safe_hash (rtx, enum machine_mode);
+static int exp_equiv_p (rtx, rtx, int, int);
+static void set_nonvarying_address_components (rtx, int, rtx *,
HOST_WIDE_INT *,
- HOST_WIDE_INT *));
-static int refers_to_p PROTO((rtx, rtx));
-static rtx canon_reg PROTO((rtx, rtx));
-static void find_best_addr PROTO((rtx, rtx *));
-static enum rtx_code find_comparison_args PROTO((enum rtx_code, rtx *, rtx *,
+ HOST_WIDE_INT *);
+static int refers_to_p (rtx, rtx);
+static rtx canon_reg (rtx, rtx);
+static void find_best_addr (rtx, rtx *);
+static enum rtx_code find_comparison_args (enum rtx_code, rtx *, rtx *,
enum machine_mode *,
- enum machine_mode *));
-static rtx cse_gen_binary PROTO((enum rtx_code, enum machine_mode,
- rtx, rtx));
-static rtx simplify_plus_minus PROTO((enum rtx_code, enum machine_mode,
- rtx, rtx));
-static rtx fold_rtx PROTO((rtx, rtx));
-static rtx equiv_constant PROTO((rtx));
-static void record_jump_equiv PROTO((rtx, int));
-static void record_jump_cond PROTO((enum rtx_code, enum machine_mode,
- rtx, rtx, int));
-static void cse_insn PROTO((rtx, rtx));
-static int note_mem_written PROTO((rtx));
-static void invalidate_from_clobbers PROTO((rtx));
-static rtx cse_process_notes PROTO((rtx, rtx));
-static void cse_around_loop PROTO((rtx));
-static void invalidate_skipped_set PROTO((rtx, rtx));
-static void invalidate_skipped_block PROTO((rtx));
-static void cse_check_loop_start PROTO((rtx, rtx));
-static void cse_set_around_loop PROTO((rtx, rtx, rtx));
-static rtx cse_basic_block PROTO((rtx, rtx, struct branch_path *, int));
-static void count_reg_usage PROTO((rtx, int *, rtx, int));
+ enum machine_mode *);
+static rtx cse_gen_binary (enum rtx_code, enum machine_mode,
+ rtx, rtx);
+static rtx simplify_plus_minus (enum rtx_code, enum machine_mode,
+ rtx, rtx);
+static rtx fold_rtx (rtx, rtx);
+static rtx equiv_constant (rtx);
+static void record_jump_equiv (rtx, int);
+static void record_jump_cond (enum rtx_code, enum machine_mode,
+ rtx, rtx, int);
+static void cse_insn (rtx, rtx);
+static int note_mem_written (rtx);
+static void invalidate_from_clobbers (rtx);
+static rtx cse_process_notes (rtx, rtx);
+static void cse_around_loop (rtx);
+static void invalidate_skipped_set (rtx, rtx);
+static void invalidate_skipped_block (rtx);
+static void cse_check_loop_start (rtx, rtx);
+static void cse_set_around_loop (rtx, rtx, rtx);
+static rtx cse_basic_block (rtx, rtx, struct branch_path *, int);
+static void count_reg_usage (rtx, int *, rtx, int);
extern int rtx_equal_function_value_matters;
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index e98380c..fc3418c 100755
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -182,25 +182,25 @@ static unsigned current_funcdef_fde;
/* Forward declarations for functions defined in this file. */
-static char *stripattributes PROTO((char *));
-static char *dwarf_cfi_name PROTO((unsigned));
-static dw_cfi_ref new_cfi PROTO((void));
-static void add_cfi PROTO((dw_cfi_ref *, dw_cfi_ref));
-static unsigned long size_of_uleb128 PROTO((unsigned long));
-static unsigned long size_of_sleb128 PROTO((long));
-static void output_uleb128 PROTO((unsigned long));
-static void output_sleb128 PROTO((long));
-static void add_fde_cfi PROTO((char *, dw_cfi_ref));
-static void lookup_cfa_1 PROTO((dw_cfi_ref, unsigned long *,
- long *));
-static void lookup_cfa PROTO((unsigned long *, long *));
-static void reg_save PROTO((char *, unsigned, unsigned,
- long));
-static void initial_return_save PROTO((rtx));
-static void output_cfi PROTO((dw_cfi_ref, dw_fde_ref));
-static void output_call_frame_info PROTO((int));
-static unsigned reg_number PROTO((rtx));
-static void dwarf2out_stack_adjust PROTO((rtx));
+static char *stripattributes (char *);
+static char *dwarf_cfi_name (unsigned);
+static dw_cfi_ref new_cfi (void);
+static void add_cfi (dw_cfi_ref *, dw_cfi_ref);
+static unsigned long size_of_uleb128 (unsigned long);
+static unsigned long size_of_sleb128 (long);
+static void output_uleb128 (unsigned long);
+static void output_sleb128 (long);
+static void add_fde_cfi (char *, dw_cfi_ref);
+static void lookup_cfa_1 (dw_cfi_ref, unsigned long *,
+ long *);
+static void lookup_cfa (unsigned long *, long *);
+static void reg_save (char *, unsigned, unsigned,
+ long);
+static void initial_return_save (rtx);
+static void output_cfi (dw_cfi_ref, dw_fde_ref);
+static void output_call_frame_info (int);
+static unsigned reg_number (rtx);
+static void dwarf2out_stack_adjust (rtx);
/* Definitions of defaults for assembler-dependent names of various
pseudo-ops and section names.
@@ -1982,7 +1982,7 @@ dwarf2out_frame_finish ()
/* And now, the support for symbolic debugging information. */
#ifdef DWARF2_DEBUGGING_INFO
-extern char *getpwd PROTO((void));
+extern char *getpwd (void);
/* NOTE: In the comments in this file, many references are made to
"Debugging Information Entries". This term is abbreviated as `DIE'
@@ -2399,186 +2399,186 @@ static tree dwarf_last_decl;
/* Forward declarations for functions defined in this file. */
-static void addr_const_to_string PROTO((dyn_string_t, rtx));
-static char *addr_to_string PROTO((rtx));
-static int is_pseudo_reg PROTO((rtx));
-static tree type_main_variant PROTO((tree));
-static int is_tagged_type PROTO((tree));
-static char *dwarf_tag_name PROTO((unsigned));
-static char *dwarf_attr_name PROTO((unsigned));
-static char *dwarf_form_name PROTO((unsigned));
-static char *dwarf_stack_op_name PROTO((unsigned));
+static void addr_const_to_string (dyn_string_t, rtx);
+static char *addr_to_string (rtx);
+static int is_pseudo_reg (rtx);
+static tree type_main_variant (tree);
+static int is_tagged_type (tree);
+static char *dwarf_tag_name (unsigned);
+static char *dwarf_attr_name (unsigned);
+static char *dwarf_form_name (unsigned);
+static char *dwarf_stack_op_name (unsigned);
#if 0
-static char *dwarf_type_encoding_name PROTO((unsigned));
+static char *dwarf_type_encoding_name (unsigned);
#endif
-static tree decl_ultimate_origin PROTO((tree));
-static tree block_ultimate_origin PROTO((tree));
-static tree decl_class_context PROTO((tree));
-static void add_dwarf_attr PROTO((dw_die_ref, dw_attr_ref));
-static void add_AT_flag PROTO((dw_die_ref,
+static tree decl_ultimate_origin (tree);
+static tree block_ultimate_origin (tree);
+static tree decl_class_context (tree);
+static void add_dwarf_attr (dw_die_ref, dw_attr_ref);
+static void add_AT_flag (dw_die_ref,
enum dwarf_attribute,
- unsigned));
-static void add_AT_int PROTO((dw_die_ref,
- enum dwarf_attribute, long));
-static void add_AT_unsigned PROTO((dw_die_ref,
+ unsigned);
+static void add_AT_int (dw_die_ref,
+ enum dwarf_attribute, long);
+static void add_AT_unsigned (dw_die_ref,
enum dwarf_attribute,
- unsigned long));
-static void add_AT_long_long PROTO((dw_die_ref,
+ unsigned long);
+static void add_AT_long_long (dw_die_ref,
enum dwarf_attribute,
- unsigned long, unsigned long));
-static void add_AT_float PROTO((dw_die_ref,
+ unsigned long, unsigned long);
+static void add_AT_float (dw_die_ref,
enum dwarf_attribute,
- unsigned, long *));
-static void add_AT_string PROTO((dw_die_ref,
- enum dwarf_attribute, char *));
-static void add_AT_die_ref PROTO((dw_die_ref,
+ unsigned, long *);
+static void add_AT_string (dw_die_ref,
+ enum dwarf_attribute, char *);
+static void add_AT_die_ref (dw_die_ref,
enum dwarf_attribute,
- dw_die_ref));
-static void add_AT_fde_ref PROTO((dw_die_ref,
+ dw_die_ref);
+static void add_AT_fde_ref (dw_die_ref,
enum dwarf_attribute,
- unsigned));
-static void add_AT_loc PROTO((dw_die_ref,
+ unsigned);
+static void add_AT_loc (dw_die_ref,
enum dwarf_attribute,
- dw_loc_descr_ref));
-static void add_AT_addr PROTO((dw_die_ref,
- enum dwarf_attribute, char *));
-static void add_AT_lbl_id PROTO((dw_die_ref,
- enum dwarf_attribute, char *));
-static void add_AT_section_offset PROTO((dw_die_ref,
- enum dwarf_attribute, char *));
-static int is_extern_subr_die PROTO((dw_die_ref));
-static dw_attr_ref get_AT PROTO((dw_die_ref,
- enum dwarf_attribute));
-static char *get_AT_low_pc PROTO((dw_die_ref));
-static char *get_AT_hi_pc PROTO((dw_die_ref));
-static char *get_AT_string PROTO((dw_die_ref,
- enum dwarf_attribute));
-static int get_AT_flag PROTO((dw_die_ref,
- enum dwarf_attribute));
-static unsigned get_AT_unsigned PROTO((dw_die_ref,
- enum dwarf_attribute));
-static int is_c_family PROTO((void));
-static int is_fortran PROTO((void));
-static void remove_AT PROTO((dw_die_ref,
- enum dwarf_attribute));
-static void remove_children PROTO((dw_die_ref));
-static void add_child_die PROTO((dw_die_ref, dw_die_ref));
-static dw_die_ref new_die PROTO((enum dwarf_tag, dw_die_ref));
-static dw_die_ref lookup_type_die PROTO((tree));
-static void equate_type_number_to_die PROTO((tree, dw_die_ref));
-static dw_die_ref lookup_decl_die PROTO((tree));
-static void equate_decl_number_to_die PROTO((tree, dw_die_ref));
-static dw_loc_descr_ref new_loc_descr PROTO((enum dwarf_location_atom,
- unsigned long, unsigned long));
-static void add_loc_descr PROTO((dw_loc_descr_ref *,
- dw_loc_descr_ref));
-static void print_spaces PROTO((FILE *));
-static void print_die PROTO((dw_die_ref, FILE *));
-static void print_dwarf_line_table PROTO((FILE *));
-static void add_sibling_attributes PROTO((dw_die_ref));
-static void build_abbrev_table PROTO((dw_die_ref));
-static unsigned long size_of_string PROTO((char *));
-static unsigned long size_of_loc_descr PROTO((dw_loc_descr_ref));
-static unsigned long size_of_locs PROTO((dw_loc_descr_ref));
-static int constant_size PROTO((long unsigned));
-static unsigned long size_of_die PROTO((dw_die_ref));
-static void calc_die_sizes PROTO((dw_die_ref));
-static unsigned long size_of_line_prolog PROTO((void));
-static unsigned long size_of_line_info PROTO((void));
-static unsigned long size_of_pubnames PROTO((void));
-static unsigned long size_of_aranges PROTO((void));
-static enum dwarf_form value_format PROTO((dw_val_ref));
-static void output_value_format PROTO((dw_val_ref));
-static void output_abbrev_section PROTO((void));
-static void output_loc_operands PROTO((dw_loc_descr_ref));
-static unsigned long sibling_offset PROTO((dw_die_ref));
-static void output_die PROTO((dw_die_ref));
-static void output_compilation_unit_header PROTO((void));
-static char *dwarf2_name PROTO((tree, int));
-static void add_pubname PROTO((tree, dw_die_ref));
-static void output_pubnames PROTO((void));
-static void add_arange PROTO((tree, dw_die_ref));
-static void output_aranges PROTO((void));
-static void output_line_info PROTO((void));
-static int is_body_block PROTO((tree));
-static dw_die_ref base_type_die PROTO((tree));
-static tree root_type PROTO((tree));
-static int is_base_type PROTO((tree));
-static dw_die_ref modified_type_die PROTO((tree, int, int, dw_die_ref));
-static int type_is_enum PROTO((tree));
-static dw_loc_descr_ref reg_loc_descriptor PROTO((rtx));
-static dw_loc_descr_ref based_loc_descr PROTO((unsigned, long));
-static int is_based_loc PROTO((rtx));
-static dw_loc_descr_ref mem_loc_descriptor PROTO((rtx));
-static dw_loc_descr_ref concat_loc_descriptor PROTO((rtx, rtx));
-static dw_loc_descr_ref loc_descriptor PROTO((rtx));
-static unsigned ceiling PROTO((unsigned, unsigned));
-static tree field_type PROTO((tree));
-static unsigned simple_type_align_in_bits PROTO((tree));
-static unsigned simple_type_size_in_bits PROTO((tree));
-static unsigned field_byte_offset PROTO((tree));
-static void add_AT_location_description PROTO((dw_die_ref,
- enum dwarf_attribute, rtx));
-static void add_data_member_location_attribute PROTO((dw_die_ref, tree));
-static void add_const_value_attribute PROTO((dw_die_ref, rtx));
-static void add_location_or_const_value_attribute PROTO((dw_die_ref, tree));
-static void add_name_attribute PROTO((dw_die_ref, char *));
-static void add_bound_info PROTO((dw_die_ref,
- enum dwarf_attribute, tree));
-static void add_subscript_info PROTO((dw_die_ref, tree));
-static void add_byte_size_attribute PROTO((dw_die_ref, tree));
-static void add_bit_offset_attribute PROTO((dw_die_ref, tree));
-static void add_bit_size_attribute PROTO((dw_die_ref, tree));
-static void add_prototyped_attribute PROTO((dw_die_ref, tree));
-static void add_abstract_origin_attribute PROTO((dw_die_ref, tree));
-static void add_pure_or_virtual_attribute PROTO((dw_die_ref, tree));
-static void add_src_coords_attributes PROTO((dw_die_ref, tree));
-static void add_name_and_src_coords_attributes PROTO((dw_die_ref, tree));
-static void push_decl_scope PROTO((tree));
-static dw_die_ref scope_die_for PROTO((tree, dw_die_ref));
-static void pop_decl_scope PROTO((void));
-static void add_type_attribute PROTO((dw_die_ref, tree, int, int,
- dw_die_ref));
-static char *type_tag PROTO((tree));
-static tree member_declared_type PROTO((tree));
+ dw_loc_descr_ref);
+static void add_AT_addr (dw_die_ref,
+ enum dwarf_attribute, char *);
+static void add_AT_lbl_id (dw_die_ref,
+ enum dwarf_attribute, char *);
+static void add_AT_section_offset (dw_die_ref,
+ enum dwarf_attribute, char *);
+static int is_extern_subr_die (dw_die_ref);
+static dw_attr_ref get_AT (dw_die_ref,
+ enum dwarf_attribute);
+static char *get_AT_low_pc (dw_die_ref);
+static char *get_AT_hi_pc (dw_die_ref);
+static char *get_AT_string (dw_die_ref,
+ enum dwarf_attribute);
+static int get_AT_flag (dw_die_ref,
+ enum dwarf_attribute);
+static unsigned get_AT_unsigned (dw_die_ref,
+ enum dwarf_attribute);
+static int is_c_family (void);
+static int is_fortran (void);
+static void remove_AT (dw_die_ref,
+ enum dwarf_attribute);
+static void remove_children (dw_die_ref);
+static void add_child_die (dw_die_ref, dw_die_ref);
+static dw_die_ref new_die (enum dwarf_tag, dw_die_ref);
+static dw_die_ref lookup_type_die (tree);
+static void equate_type_number_to_die (tree, dw_die_ref);
+static dw_die_ref lookup_decl_die (tree);
+static void equate_decl_number_to_die (tree, dw_die_ref);
+static dw_loc_descr_ref new_loc_descr (enum dwarf_location_atom,
+ unsigned long, unsigned long);
+static void add_loc_descr (dw_loc_descr_ref *,
+ dw_loc_descr_ref);
+static void print_spaces (FILE *);
+static void print_die (dw_die_ref, FILE *);
+static void print_dwarf_line_table (FILE *);
+static void add_sibling_attributes (dw_die_ref);
+static void build_abbrev_table (dw_die_ref);
+static unsigned long size_of_string (char *);
+static unsigned long size_of_loc_descr (dw_loc_descr_ref);
+static unsigned long size_of_locs (dw_loc_descr_ref);
+static int constant_size (long unsigned);
+static unsigned long size_of_die (dw_die_ref);
+static void calc_die_sizes (dw_die_ref);
+static unsigned long size_of_line_prolog (void);
+static unsigned long size_of_line_info (void);
+static unsigned long size_of_pubnames (void);
+static unsigned long size_of_aranges (void);
+static enum dwarf_form value_format (dw_val_ref);
+static void output_value_format (dw_val_ref);
+static void output_abbrev_section (void);
+static void output_loc_operands (dw_loc_descr_ref);
+static unsigned long sibling_offset (dw_die_ref);
+static void output_die (dw_die_ref);
+static void output_compilation_unit_header (void);
+static char *dwarf2_name (tree, int);
+static void add_pubname (tree, dw_die_ref);
+static void output_pubnames (void);
+static void add_arange (tree, dw_die_ref);
+static void output_aranges (void);
+static void output_line_info (void);
+static int is_body_block (tree);
+static dw_die_ref base_type_die (tree);
+static tree root_type (tree);
+static int is_base_type (tree);
+static dw_die_ref modified_type_die (tree, int, int, dw_die_ref);
+static int type_is_enum (tree);
+static dw_loc_descr_ref reg_loc_descriptor (rtx);
+static dw_loc_descr_ref based_loc_descr (unsigned, long);
+static int is_based_loc (rtx);
+static dw_loc_descr_ref mem_loc_descriptor (rtx);
+static dw_loc_descr_ref concat_loc_descriptor (rtx, rtx);
+static dw_loc_descr_ref loc_descriptor (rtx);
+static unsigned ceiling (unsigned, unsigned);
+static tree field_type (tree);
+static unsigned simple_type_align_in_bits (tree);
+static unsigned simple_type_size_in_bits (tree);
+static unsigned field_byte_offset (tree);
+static void add_AT_location_description (dw_die_ref,
+ enum dwarf_attribute, rtx);
+static void add_data_member_location_attribute (dw_die_ref, tree);
+static void add_const_value_attribute (dw_die_ref, rtx);
+static void add_location_or_const_value_attribute (dw_die_ref, tree);
+static void add_name_attribute (dw_die_ref, char *);
+static void add_bound_info (dw_die_ref,
+ enum dwarf_attribute, tree);
+static void add_subscript_info (dw_die_ref, tree);
+static void add_byte_size_attribute (dw_die_ref, tree);
+static void add_bit_offset_attribute (dw_die_ref, tree);
+static void add_bit_size_attribute (dw_die_ref, tree);
+static void add_prototyped_attribute (dw_die_ref, tree);
+static void add_abstract_origin_attribute (dw_die_ref, tree);
+static void add_pure_or_virtual_attribute (dw_die_ref, tree);
+static void add_src_coords_attributes (dw_die_ref, tree);
+static void add_name_and_src_coords_attributes (dw_die_ref, tree);
+static void push_decl_scope (tree);
+static dw_die_ref scope_die_for (tree, dw_die_ref);
+static void pop_decl_scope (void);
+static void add_type_attribute (dw_die_ref, tree, int, int,
+ dw_die_ref);
+static char *type_tag (tree);
+static tree member_declared_type (tree);
#if 0
-static char *decl_start_label PROTO((tree));
+static char *decl_start_label (tree);
#endif
-static void gen_array_type_die PROTO((tree, dw_die_ref));
-static void gen_set_type_die PROTO((tree, dw_die_ref));
+static void gen_array_type_die (tree, dw_die_ref);
+static void gen_set_type_die (tree, dw_die_ref);
#if 0
-static void gen_entry_point_die PROTO((tree, dw_die_ref));
+static void gen_entry_point_die (tree, dw_die_ref);
#endif
-static void pend_type PROTO((tree));
-static void output_pending_types_for_scope PROTO((dw_die_ref));
-static void gen_inlined_enumeration_type_die PROTO((tree, dw_die_ref));
-static void gen_inlined_structure_type_die PROTO((tree, dw_die_ref));
-static void gen_inlined_union_type_die PROTO((tree, dw_die_ref));
-static void gen_enumeration_type_die PROTO((tree, dw_die_ref));
-static dw_die_ref gen_formal_parameter_die PROTO((tree, dw_die_ref));
-static void gen_unspecified_parameters_die PROTO((tree, dw_die_ref));
-static void gen_formal_types_die PROTO((tree, dw_die_ref));
-static void gen_subprogram_die PROTO((tree, dw_die_ref));
-static void gen_variable_die PROTO((tree, dw_die_ref));
-static void gen_label_die PROTO((tree, dw_die_ref));
-static void gen_lexical_block_die PROTO((tree, dw_die_ref, int));
-static void gen_inlined_subroutine_die PROTO((tree, dw_die_ref, int));
-static void gen_field_die PROTO((tree, dw_die_ref));
-static void gen_ptr_to_mbr_type_die PROTO((tree, dw_die_ref));
-static void gen_compile_unit_die PROTO((char *));
-static void gen_string_type_die PROTO((tree, dw_die_ref));
-static void gen_inheritance_die PROTO((tree, dw_die_ref));
-static void gen_member_die PROTO((tree, dw_die_ref));
-static void gen_struct_or_union_type_die PROTO((tree, dw_die_ref));
-static void gen_subroutine_type_die PROTO((tree, dw_die_ref));
-static void gen_typedef_die PROTO((tree, dw_die_ref));
-static void gen_type_die PROTO((tree, dw_die_ref));
-static void gen_tagged_type_instantiation_die PROTO((tree, dw_die_ref));
-static void gen_block_die PROTO((tree, dw_die_ref, int));
-static void decls_for_scope PROTO((tree, dw_die_ref, int));
-static int is_redundant_typedef PROTO((tree));
-static void gen_decl_die PROTO((tree, dw_die_ref));
-static unsigned lookup_filename PROTO((char *));
+static void pend_type (tree);
+static void output_pending_types_for_scope (dw_die_ref);
+static void gen_inlined_enumeration_type_die (tree, dw_die_ref);
+static void gen_inlined_structure_type_die (tree, dw_die_ref);
+static void gen_inlined_union_type_die (tree, dw_die_ref);
+static void gen_enumeration_type_die (tree, dw_die_ref);
+static dw_die_ref gen_formal_parameter_die (tree, dw_die_ref);
+static void gen_unspecified_parameters_die (tree, dw_die_ref);
+static void gen_formal_types_die (tree, dw_die_ref);
+static void gen_subprogram_die (tree, dw_die_ref);
+static void gen_variable_die (tree, dw_die_ref);
+static void gen_label_die (tree, dw_die_ref);
+static void gen_lexical_block_die (tree, dw_die_ref, int);
+static void gen_inlined_subroutine_die (tree, dw_die_ref, int);
+static void gen_field_die (tree, dw_die_ref);
+static void gen_ptr_to_mbr_type_die (tree, dw_die_ref);
+static void gen_compile_unit_die (char *);
+static void gen_string_type_die (tree, dw_die_ref);
+static void gen_inheritance_die (tree, dw_die_ref);
+static void gen_member_die (tree, dw_die_ref);
+static void gen_struct_or_union_type_die (tree, dw_die_ref);
+static void gen_subroutine_type_die (tree, dw_die_ref);
+static void gen_typedef_die (tree, dw_die_ref);
+static void gen_type_die (tree, dw_die_ref);
+static void gen_tagged_type_instantiation_die (tree, dw_die_ref);
+static void gen_block_die (tree, dw_die_ref, int);
+static void decls_for_scope (tree, dw_die_ref, int);
+static int is_redundant_typedef (tree);
+static void gen_decl_die (tree, dw_die_ref);
+static unsigned lookup_filename (char *);
/* Section names used to hold DWARF debugging information. */
#ifndef DEBUG_INFO_SECTION
diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h
index ad6232e..8a94b0e 100755
--- a/gcc/dwarf2out.h
+++ b/gcc/dwarf2out.h
@@ -18,24 +18,24 @@ 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 void dwarf2out_init PROTO ((FILE *asm_out_file,
- char *main_input_filename));
-extern void dwarf2out_finish PROTO ((void));
-
-extern void dwarf2out_define PROTO ((unsigned, char *));
-extern void dwarf2out_undef PROTO ((unsigned, char *));
-extern void dwarf2out_start_source_file PROTO ((char *));
-extern void dwarf2out_end_source_file PROTO ((void));
-
-extern void dwarf2out_begin_block PROTO ((unsigned));
-extern void dwarf2out_end_block PROTO ((unsigned));
-extern void dwarf2out_label PROTO ((rtx));
-extern void dwarf2out_decl PROTO ((tree));
-extern void dwarf2out_line PROTO ((char *, unsigned));
-extern void dwarf2out_frame_init PROTO ((void));
-extern void dwarf2out_frame_debug PROTO ((rtx));
-extern void dwarf2out_frame_finish PROTO ((void));
-
-extern void debug_dwarf PROTO ((void));
+extern void dwarf2out_init (FILE *asm_out_file,
+ char *main_input_filename);
+extern void dwarf2out_finish (void);
+
+extern void dwarf2out_define (unsigned, char *);
+extern void dwarf2out_undef (unsigned, char *);
+extern void dwarf2out_start_source_file (char *);
+extern void dwarf2out_end_source_file (void);
+
+extern void dwarf2out_begin_block (unsigned);
+extern void dwarf2out_end_block (unsigned);
+extern void dwarf2out_label (rtx);
+extern void dwarf2out_decl (tree);
+extern void dwarf2out_line (char *, unsigned);
+extern void dwarf2out_frame_init (void);
+extern void dwarf2out_frame_debug (rtx);
+extern void dwarf2out_frame_finish (void);
+
+extern void debug_dwarf (void);
struct die_struct;
-extern void debug_dwarf_die PROTO ((struct die_struct *));
+extern void debug_dwarf_die (struct die_struct *);
diff --git a/gcc/dyn-string.h b/gcc/dyn-string.h
index d6cd137..e59ef50 100755
--- a/gcc/dyn-string.h
+++ b/gcc/dyn-string.h
@@ -26,7 +26,7 @@ typedef struct dyn_string
char *s; /* The string itself, NUL-terminated. */
}* dyn_string_t;
-extern dyn_string_t dyn_string_new PROTO((int));
-extern void dyn_string_delete PROTO((dyn_string_t));
-extern dyn_string_t dyn_string_append PROTO((dyn_string_t, char*));
-extern dyn_string_t dyn_string_resize PROTO((dyn_string_t, int));
+extern dyn_string_t dyn_string_new (int);
+extern void dyn_string_delete (dyn_string_t);
+extern dyn_string_t dyn_string_append (dyn_string_t, char*);
+extern dyn_string_t dyn_string_resize (dyn_string_t, int);
diff --git a/gcc/eh-common.h b/gcc/eh-common.h
index c0ff7e7..4d151b8 100755
--- a/gcc/eh-common.h
+++ b/gcc/eh-common.h
@@ -101,7 +101,7 @@ typedef struct exception_descriptor
3 - exception table region is in (exception descriptor *)
*/
-typedef void * (*__eh_matcher) PROTO ((void *, void *, void *));
+typedef void * (*__eh_matcher) (void *, void *, void *);
/* This value is to be checked as a 'match all' case in the runtime field. */
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 3034a55..9bacb2e 100755
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -236,9 +236,9 @@ extern int rtx_equal_function_value_matters;
extern char *emit_filename;
extern int emit_lineno;
-static rtx make_jump_insn_raw PROTO((rtx));
-static rtx make_call_insn_raw PROTO((rtx));
-static rtx find_line_note PROTO((rtx));
+static rtx make_jump_insn_raw (rtx);
+static rtx make_call_insn_raw (rtx);
+static rtx find_line_note (rtx);
rtx
gen_rtx_CONST_INT (mode, arg)
@@ -334,7 +334,7 @@ gen_rtx_MEM (mode, addr)
/*VARARGS2*/
rtx
-gen_rtx VPROTO((enum rtx_code code, enum machine_mode mode, ...))
+gen_rtx (enum rtx_code code, enum machine_mode mode, ...)
{
#ifndef ANSI_PROTOTYPES
enum rtx_code code;
@@ -417,7 +417,7 @@ gen_rtx VPROTO((enum rtx_code code, enum machine_mode mode, ...))
/*VARARGS1*/
rtvec
-gen_rtvec VPROTO((int n, ...))
+gen_rtvec (int n, ...)
{
#ifndef ANSI_PROTOTYPES
int n;
diff --git a/gcc/except.c b/gcc/except.c
index ffecaf4..1b912b5 100755
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -514,24 +514,24 @@ static rtx last_rethrow_symbol = NULL_RTX;
/* Prototypes for local functions. */
-static void push_eh_entry PROTO((struct eh_stack *));
-static struct eh_entry * pop_eh_entry PROTO((struct eh_stack *));
-static void enqueue_eh_entry PROTO((struct eh_queue *, struct eh_entry *));
-static struct eh_entry * dequeue_eh_entry PROTO((struct eh_queue *));
-static rtx call_get_eh_context PROTO((void));
-static void start_dynamic_cleanup PROTO((tree, tree));
-static void start_dynamic_handler PROTO((void));
-static void expand_rethrow PROTO((rtx));
-static void output_exception_table_entry PROTO((FILE *, int));
-static int can_throw PROTO((rtx));
-static rtx scan_region PROTO((rtx, int, int *));
-static void eh_regs PROTO((rtx *, rtx *, rtx *, int));
-static void set_insn_eh_region PROTO((rtx *, int));
+static void push_eh_entry (struct eh_stack *);
+static struct eh_entry * pop_eh_entry (struct eh_stack *);
+static void enqueue_eh_entry (struct eh_queue *, struct eh_entry *);
+static struct eh_entry * dequeue_eh_entry (struct eh_queue *);
+static rtx call_get_eh_context (void);
+static void start_dynamic_cleanup (tree, tree);
+static void start_dynamic_handler (void);
+static void expand_rethrow (rtx);
+static void output_exception_table_entry (FILE *, int);
+static int can_throw (rtx);
+static rtx scan_region (rtx, int, int *);
+static void eh_regs (rtx *, rtx *, rtx *, int);
+static void set_insn_eh_region (rtx *, int);
#ifdef DONT_USE_BUILTIN_SETJMP
-static void jumpif_rtx PROTO((rtx, rtx));
+static void jumpif_rtx (rtx, rtx);
#endif
-rtx expand_builtin_return_addr PROTO((enum built_in_function, int, rtx));
+rtx expand_builtin_return_addr (enum built_in_function, int, rtx);
/* Various support routines to manipulate the various data structures
used by the exception handling code. */
@@ -978,7 +978,7 @@ clear_function_eh_region ()
int
duplicate_eh_handlers (old_note_eh_region, new_note_eh_region, map)
int old_note_eh_region, new_note_eh_region;
- rtx (*map) PARAMS ((rtx));
+ rtx (*map) (rtx);
{
struct handler_info *ptr, *new_ptr;
int new_region, region;
@@ -1029,7 +1029,7 @@ eh_region_from_symbol (sym)
rtx
rethrow_symbol_map (sym, map)
rtx sym;
- rtx (*map) PARAMS ((rtx));
+ rtx (*map) (rtx);
{
int x, y;
for (x = 0; x < current_func_eh_entry; x++)
diff --git a/gcc/except.h b/gcc/except.h
index a8c4f9c..ec69912 100755
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -96,14 +96,14 @@ struct eh_queue {
this point are considered to be part of the region until
expand_eh_region_end () is invoked. */
-extern void expand_eh_region_start PROTO((void));
+extern void expand_eh_region_start (void);
/* Just like expand_eh_region_start, except if a cleanup action is
entered on the cleanup chain, the TREE_PURPOSE of the element put
on the chain is DECL. DECL should be the associated VAR_DECL, if
any, otherwise it should be NULL_TREE. */
-extern void expand_eh_region_start_for_decl PROTO((tree));
+extern void expand_eh_region_start_for_decl (tree);
/* Start an exception handling region for the given cleanup action.
All instructions emitted after this point are considered to be part
@@ -117,7 +117,7 @@ extern void expand_eh_region_start_for_decl PROTO((tree));
generation, and optimizes it so as to not need the exception
region. */
-extern int expand_eh_region_start_tree PROTO((tree, tree));
+extern int expand_eh_region_start_tree (tree, tree);
/* End an exception handling region. The information about the region
is found on the top of ehstack.
@@ -128,22 +128,22 @@ extern int expand_eh_region_start_tree PROTO((tree, tree));
HANDLER will be transformed to rtl when expand_leftover_cleanups ()
is invoked. */
-extern void expand_eh_region_end PROTO((tree));
+extern void expand_eh_region_end (tree);
/* Push RLABEL or TLABEL onto LABELSTACK. Only one of RLABEL or TLABEL
should be set; the other must be NULL. */
-extern void push_label_entry PROTO((struct label_node **labelstack, rtx rlabel, tree tlabel));
+extern void push_label_entry (struct label_node **labelstack, rtx rlabel, tree tlabel);
/* Pop the topmost entry from LABELSTACK and return its value as an
rtx node. If LABELSTACK is empty, return NULL. */
-extern rtx pop_label_entry PROTO((struct label_node **labelstack));
+extern rtx pop_label_entry (struct label_node **labelstack);
/* Return the topmost entry of LABELSTACK as a tree node, or return
NULL_TREE if LABELSTACK is empty. */
-extern tree top_label_entry PROTO((struct label_node **labelstack));
+extern tree top_label_entry (struct label_node **labelstack);
/* A set of insns for the catch clauses in the current function. They
will be emitted at the end of the current function. */
@@ -154,12 +154,12 @@ extern rtx catch_clauses;
/* Test: is exception handling turned on? */
-extern int doing_eh PROTO ((int));
+extern int doing_eh (int);
/* Toplevel initialization for EH. */
-void set_exception_lang_code PROTO((int));
-void set_exception_version_code PROTO((int));
+void set_exception_lang_code (int);
+void set_exception_version_code (int);
/* A list of handlers asocciated with an exception region. HANDLER_LABEL
is the the label that control should be transfered to if the data
@@ -186,137 +186,137 @@ typedef struct handler_info
typeinfo entry. Regardless where it is positioned, a NULL_TREE entry
is always output as the LAST handler in the exception table for a region. */
-void add_new_handler PROTO((int, struct handler_info *));
+void add_new_handler (int, struct handler_info *);
/* Remove a handler label. The handler label is being deleted, so all
regions which reference this handler should have it removed from their
list of possible handlers. Any region which has the final handler
removed can be deleted. */
-void remove_handler PROTO((rtx));
+void remove_handler (rtx);
/* Create a new handler structure initialized with the handler label and
typeinfo fields passed in. */
-struct handler_info *get_new_handler PROTO((rtx, void *));
+struct handler_info *get_new_handler (rtx, void *);
/* Make a duplicate of an exception region by copying all the handlers
for an exception region. Return the new handler index. */
-int duplicate_eh_handlers PROTO((int, int, rtx (*)(rtx)));
+int duplicate_eh_handlers (int, int, rtx (*)(rtx));
/* map symbol refs for rethrow */
-rtx rethrow_symbol_map PROTO((rtx, rtx (*)(rtx)));
+rtx rethrow_symbol_map (rtx, rtx (*)(rtx));
/* Is the rethrow label for a region used? */
-int rethrow_used PROTO((int));
+int rethrow_used (int);
/* Return the region number a this is the rethrow label for. */
-int eh_region_from_symbol PROTO((rtx));
+int eh_region_from_symbol (rtx);
/* Get a pointer to the first handler in an exception region's list. */
-struct handler_info *get_first_handler PROTO((int));
+struct handler_info *get_first_handler (int);
/* Find all the runtime handlers type matches currently referenced */
-int find_all_handler_type_matches PROTO((void ***));
+int find_all_handler_type_matches (void ***);
-extern void init_eh PROTO((void));
+extern void init_eh (void);
/* Initialization for the per-function EH data. */
-extern void init_eh_for_function PROTO((void));
+extern void init_eh_for_function (void);
/* Generate an exception label. Use instead of gen_label_rtx */
-extern rtx gen_exception_label PROTO((void));
+extern rtx gen_exception_label (void);
/* Adds an EH table entry for EH entry number N. Called from
final_scan_insn for NOTE_INSN_EH_REGION_BEG. */
-extern void add_eh_table_entry PROTO((int n));
+extern void add_eh_table_entry (int n);
/* Start a catch clause, triggered by runtime value paramter. */
#ifdef TREE_CODE
-extern void start_catch_handler PROTO((tree));
+extern void start_catch_handler (tree);
#endif
/* End an individual catch clause. */
-extern void end_catch_handler PROTO((void));
+extern void end_catch_handler (void);
/* Returns a non-zero value if we need to output an exception table. */
-extern int exception_table_p PROTO((void));
+extern int exception_table_p (void);
/* Outputs the exception table if we have one. */
-extern void output_exception_table PROTO((void));
+extern void output_exception_table (void);
/* Given a return address in ADDR, determine the address we should use
to find the corresponding EH region. */
-extern rtx eh_outer_context PROTO((rtx addr));
+extern rtx eh_outer_context (rtx addr);
/* Called at the start of a block of try statements for which there is
a supplied catch handler. */
-extern void expand_start_try_stmts PROTO((void));
+extern void expand_start_try_stmts (void);
/* Called at the start of a block of catch statements. It terminates the
previous set of try statements. */
-extern void expand_start_all_catch PROTO((void));
+extern void expand_start_all_catch (void);
/* Called at the end of a block of catch statements. */
-extern void expand_end_all_catch PROTO((void));
+extern void expand_end_all_catch (void);
#ifdef TREE_CODE
/* Create a new exception region and add the handler for the region
onto a list. These regions will be ended (and their handlers
emitted) when end_protect_partials is invoked. */
-extern void add_partial_entry PROTO((tree handler));
+extern void add_partial_entry (tree handler);
#endif
/* End all of the pending exception regions that have handlers added with
push_protect_entry (). */
-extern void end_protect_partials PROTO((void));
+extern void end_protect_partials (void);
/* An internal throw. */
-extern void expand_internal_throw PROTO((void));
+extern void expand_internal_throw (void);
/* Called from expand_exception_blocks and expand_end_catch_block to
expand and pending handlers. */
-extern void expand_leftover_cleanups PROTO((void));
+extern void expand_leftover_cleanups (void);
/* If necessary, emit insns to get EH context for the current
function. */
-extern void emit_eh_context PROTO((void));
+extern void emit_eh_context (void);
/* Builds a list of handler labels and puts them in the global
variable exception_handler_labels. */
-extern void find_exception_handler_labels PROTO((void));
+extern void find_exception_handler_labels (void);
/* Determine if an arbitrary label is an exception label */
-extern int is_exception_handler_label PROTO((int));
+extern int is_exception_handler_label (int);
/* Performs sanity checking on the check_exception_handler_labels
list. */
-extern void check_exception_handler_labels PROTO((void));
+extern void check_exception_handler_labels (void);
/* A stack used to keep track of the label used to resume normal program
flow out of the current exception handler region. */
@@ -340,20 +340,20 @@ extern rtx exception_handler_labels;
/* Performs optimizations for exception handling, such as removing
unnecessary exception regions. Invoked from jump_optimize (). */
-extern void exception_optimize PROTO((void));
+extern void exception_optimize (void);
/* Return EH context (and set it up once per fn). */
-extern rtx get_eh_context PROTO((void));
+extern rtx get_eh_context (void);
/* Get the dynamic handler chain. */
-extern rtx get_dynamic_handler_chain PROTO((void));
+extern rtx get_dynamic_handler_chain (void);
/* Get the dynamic cleanup chain. */
-extern rtx get_dynamic_cleanup_chain PROTO((void));
+extern rtx get_dynamic_cleanup_chain (void);
/* Throw an exception. */
-extern void emit_throw PROTO((void));
+extern void emit_throw (void);
/* One to use setjmp/longjmp method of generating code. */
@@ -369,32 +369,32 @@ extern int asynchronous_exceptions;
extern int protect_cleanup_actions_with_terminate;
#ifdef TREE_CODE
-extern tree protect_with_terminate PROTO((tree));
+extern tree protect_with_terminate (tree);
#endif
-extern void expand_fixup_region_start PROTO((void));
+extern void expand_fixup_region_start (void);
#ifdef TREE_CODE
-extern void expand_fixup_region_end PROTO((tree));
+extern void expand_fixup_region_end (tree);
#endif
/* Various hooks for the DWARF 2 __throw routine. */
-void expand_builtin_unwind_init PROTO((void));
-rtx expand_builtin_dwarf_fp_regnum PROTO((void));
+void expand_builtin_unwind_init (void);
+rtx expand_builtin_dwarf_fp_regnum (void);
#ifdef TREE_CODE
-rtx expand_builtin_frob_return_addr PROTO((tree));
-rtx expand_builtin_extract_return_addr PROTO((tree));
-rtx expand_builtin_dwarf_reg_size PROTO((tree, rtx));
-void expand_builtin_eh_return PROTO((tree, tree, tree));
+rtx expand_builtin_frob_return_addr (tree);
+rtx expand_builtin_extract_return_addr (tree);
+rtx expand_builtin_dwarf_reg_size (tree, rtx);
+void expand_builtin_eh_return (tree, tree, tree);
#endif
-void expand_eh_return PROTO((void));
+void expand_eh_return (void);
/* Checking whether 2 instructions are within the same exception region. */
-int in_same_eh_region PROTO((rtx, rtx));
-void free_insn_eh_region PROTO((void));
-void init_insn_eh_region PROTO((rtx, int));
+int in_same_eh_region (rtx, rtx);
+void free_insn_eh_region (void);
+void init_insn_eh_region (rtx, int);
#ifdef rtx
#undef rtx
diff --git a/gcc/explow.c b/gcc/explow.c
index e9f32ec..d126f27 100755
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -35,8 +35,8 @@ Boston, MA 02111-1307, USA. */
#define PREFERRED_STACK_BOUNDARY STACK_BOUNDARY
#endif
-static rtx break_out_memory_refs PROTO((rtx));
-static void emit_stack_probe PROTO((rtx));
+static rtx break_out_memory_refs (rtx);
+static void emit_stack_probe (rtx);
/* Return an rtx for the sum of X and the integer C.
This function should be used via the `plus_constant' macro. */
@@ -888,7 +888,7 @@ emit_stack_save (save_level, psave, after)
{
rtx sa = *psave;
/* The default is that we use a move insn and save in a Pmode object. */
- rtx (*fcn) PROTO ((rtx, rtx)) = gen_move_insn;
+ rtx (*fcn) (rtx, rtx) = gen_move_insn;
enum machine_mode mode = STACK_SAVEAREA_MODE (save_level);
/* See if this machine has anything special to do for this kind of save. */
@@ -970,7 +970,7 @@ emit_stack_restore (save_level, sa, after)
rtx sa;
{
/* The default is that we use a move insn. */
- rtx (*fcn) PROTO ((rtx, rtx)) = gen_move_insn;
+ rtx (*fcn) (rtx, rtx) = gen_move_insn;
/* See if this machine has anything special to do for this kind of save. */
switch (save_level)
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 2cfcfa9..8599fc2 100755
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -32,17 +32,17 @@ Boston, MA 02111-1307, USA. */
#include "real.h"
#include "recog.h"
-static void store_fixed_bit_field PROTO((rtx, int, int, int, rtx, int));
-static void store_split_bit_field PROTO((rtx, int, int, rtx, int));
-static rtx extract_fixed_bit_field PROTO((enum machine_mode, rtx, int,
- int, int, rtx, int, int));
-static rtx mask_rtx PROTO((enum machine_mode, int,
- int, int));
-static rtx lshift_value PROTO((enum machine_mode, rtx,
- int, int));
-static rtx extract_split_bit_field PROTO((rtx, int, int, int, int));
-static void do_cmp_and_jump PROTO((rtx, rtx, enum rtx_code,
- enum machine_mode, rtx));
+static void store_fixed_bit_field (rtx, int, int, int, rtx, int);
+static void store_split_bit_field (rtx, int, int, rtx, int);
+static rtx extract_fixed_bit_field (enum machine_mode, rtx, int,
+ int, int, rtx, int, int);
+static rtx mask_rtx (enum machine_mode, int,
+ int, int);
+static rtx lshift_value (enum machine_mode, rtx,
+ int, int);
+static rtx extract_split_bit_field (rtx, int, int, int, int);
+static void do_cmp_and_jump (rtx, rtx, enum rtx_code,
+ enum machine_mode, rtx);
#define CEIL(x,y) (((x) + (y) - 1) / (y))
@@ -2045,15 +2045,15 @@ struct algorithm
char log[MAX_BITS_PER_WORD];
};
-static void synth_mult PROTO((struct algorithm *,
+static void synth_mult (struct algorithm *,
unsigned HOST_WIDE_INT,
- int));
-static unsigned HOST_WIDE_INT choose_multiplier PROTO((unsigned HOST_WIDE_INT,
+ int);
+static unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT,
int, int,
unsigned HOST_WIDE_INT *,
- int *, int *));
-static unsigned HOST_WIDE_INT invert_mod2n PROTO((unsigned HOST_WIDE_INT,
- int));
+ int *, int *);
+static unsigned HOST_WIDE_INT invert_mod2n (unsigned HOST_WIDE_INT,
+ int);
/* Compute and return the best algorithm for multiplying by T.
The algorithm must cost less than cost_limit
If retval.cost >= COST_LIMIT, no algorithm was found and all
diff --git a/gcc/expr.c b/gcc/expr.c
index c3fdb4e..8c19503 100755
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -143,51 +143,51 @@ extern int maximum_field_alignment;
extern struct obstack permanent_obstack;
extern rtx arg_pointer_save_area;
-static rtx get_push_address PROTO ((int));
-
-static rtx enqueue_insn PROTO((rtx, rtx));
-static int queued_subexp_p PROTO((rtx));
-static void init_queue PROTO((void));
-static int move_by_pieces_ninsns PROTO((unsigned int, int));
-static void move_by_pieces_1 PROTO((rtx (*) (rtx, ...), enum machine_mode,
- struct move_by_pieces *));
-static void clear_by_pieces PROTO((rtx, int, int));
-static void clear_by_pieces_1 PROTO((rtx (*) (rtx, ...), enum machine_mode,
- struct clear_by_pieces *));
-static int is_zeros_p PROTO((tree));
-static int mostly_zeros_p PROTO((tree));
-static void store_constructor_field PROTO((rtx, int, int, enum machine_mode,
- tree, tree, int));
-static void store_constructor PROTO((tree, rtx, int));
-static rtx store_field PROTO((rtx, int, int, enum machine_mode, tree,
+static rtx get_push_address (int);
+
+static rtx enqueue_insn (rtx, rtx);
+static int queued_subexp_p (rtx);
+static void init_queue (void);
+static int move_by_pieces_ninsns (unsigned int, int);
+static void move_by_pieces_1 (rtx (*) (rtx, ...), enum machine_mode,
+ struct move_by_pieces *);
+static void clear_by_pieces (rtx, int, int);
+static void clear_by_pieces_1 (rtx (*) (rtx, ...), enum machine_mode,
+ struct clear_by_pieces *);
+static int is_zeros_p (tree);
+static int mostly_zeros_p (tree);
+static void store_constructor_field (rtx, int, int, enum machine_mode,
+ tree, tree, int);
+static void store_constructor (tree, rtx, int);
+static rtx store_field (rtx, int, int, enum machine_mode, tree,
enum machine_mode, int, int,
- int, int));
+ int, int);
static enum memory_use_mode
- get_memory_usage_from_modifier PROTO((enum expand_modifier));
-static tree save_noncopied_parts PROTO((tree, tree));
-static tree init_noncopied_parts PROTO((tree, tree));
-static int safe_from_p PROTO((rtx, tree, int));
-static int fixed_type_p PROTO((tree));
-static rtx var_rtx PROTO((tree));
-static int get_pointer_alignment PROTO((tree, unsigned));
-static tree string_constant PROTO((tree, tree *));
-static tree c_strlen PROTO((tree));
-static rtx get_memory_rtx PROTO((tree));
-static rtx expand_builtin PROTO((tree, rtx, rtx,
- enum machine_mode, int));
-static int apply_args_size PROTO((void));
-static int apply_result_size PROTO((void));
-static rtx result_vector PROTO((int, rtx));
-static rtx expand_builtin_apply_args PROTO((void));
-static rtx expand_builtin_apply PROTO((rtx, rtx, rtx));
-static void expand_builtin_return PROTO((rtx));
-static rtx expand_increment PROTO((tree, int, int));
-static void preexpand_calls PROTO((tree));
-static void do_jump_by_parts_greater PROTO((tree, int, rtx, rtx));
-static void do_jump_by_parts_equality PROTO((tree, rtx, rtx));
-static void do_jump_for_compare PROTO((rtx, rtx, rtx));
-static rtx compare PROTO((tree, enum rtx_code, enum rtx_code));
-static rtx do_store_flag PROTO((tree, rtx, enum machine_mode, int));
+ get_memory_usage_from_modifier (enum expand_modifier);
+static tree save_noncopied_parts (tree, tree);
+static tree init_noncopied_parts (tree, tree);
+static int safe_from_p (rtx, tree, int);
+static int fixed_type_p (tree);
+static rtx var_rtx (tree);
+static int get_pointer_alignment (tree, unsigned);
+static tree string_constant (tree, tree *);
+static tree c_strlen (tree);
+static rtx get_memory_rtx (tree);
+static rtx expand_builtin (tree, rtx, rtx,
+ enum machine_mode, int);
+static int apply_args_size (void);
+static int apply_result_size (void);
+static rtx result_vector (int, rtx);
+static rtx expand_builtin_apply_args (void);
+static rtx expand_builtin_apply (rtx, rtx, rtx);
+static void expand_builtin_return (rtx);
+static rtx expand_increment (tree, int, int);
+static void preexpand_calls (tree);
+static void do_jump_by_parts_greater (tree, int, rtx, rtx);
+static void do_jump_by_parts_equality (tree, rtx, rtx);
+static void do_jump_for_compare (rtx, rtx, rtx);
+static rtx compare (tree, enum rtx_code, enum rtx_code);
+static rtx do_store_flag (tree, rtx, enum machine_mode, int);
/* Record for each mode whether we can move a register directly to or
from an object of that mode in memory. If we can't, we won't try
@@ -1582,7 +1582,7 @@ move_by_pieces_ninsns (l, align)
static void
move_by_pieces_1 (genfun, mode, data)
- rtx (*genfun) PROTO ((rtx, ...));
+ rtx (*genfun) (rtx, ...);
enum machine_mode mode;
struct move_by_pieces *data;
{
@@ -2334,7 +2334,7 @@ clear_by_pieces (to, len, align)
static void
clear_by_pieces_1 (genfun, mode, data)
- rtx (*genfun) PROTO ((rtx, ...));
+ rtx (*genfun) (rtx, ...);
enum machine_mode mode;
struct clear_by_pieces *data;
{
diff --git a/gcc/expr.h b/gcc/expr.h
index 7e6c15c..9fb34f4 100755
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -362,7 +362,7 @@ typedef struct optab
#define GEN_FCN(CODE) (*insn_gen_function[(int) (CODE)])
#endif
-extern rtx (*const insn_gen_function[]) PROTO ((rtx, ...));
+extern rtx (*const insn_gen_function[]) (rtx, ...);
extern optab add_optab;
extern optab sub_optab;
@@ -560,7 +560,7 @@ extern rtx chkr_check_str_libfunc;
extern rtx profile_function_entry_libfunc;
extern rtx profile_function_exit_libfunc;
-typedef rtx (*rtxfun) PROTO ((rtx));
+typedef rtx (*rtxfun) (rtx);
/* Indexed by the rtx-code for a conditional (eg. EQ, LT,...)
gives the gen_function to make a branch to test that condition. */
@@ -589,70 +589,70 @@ extern enum insn_code clrstr_optab[NUM_MACHINE_MODES];
/* Define functions given in optabs.c. */
/* Expand a binary operation given optab and rtx operands. */
-extern rtx expand_binop PROTO((enum machine_mode, optab, rtx, rtx, rtx,
- int, enum optab_methods));
+extern rtx expand_binop (enum machine_mode, optab, rtx, rtx, rtx,
+ int, enum optab_methods);
/* Expand a binary operation with both signed and unsigned forms. */
-extern rtx sign_expand_binop PROTO((enum machine_mode, optab, optab, rtx,
- rtx, rtx, int, enum optab_methods));
+extern rtx sign_expand_binop (enum machine_mode, optab, optab, rtx,
+ rtx, rtx, int, enum optab_methods);
/* Generate code to perform an operation on two operands with two results. */
-extern int expand_twoval_binop PROTO((optab, rtx, rtx, rtx, rtx, int));
+extern int expand_twoval_binop (optab, rtx, rtx, rtx, rtx, int);
/* Expand a unary arithmetic operation given optab rtx operand. */
-extern rtx expand_unop PROTO((enum machine_mode, optab, rtx, rtx, int));
+extern rtx expand_unop (enum machine_mode, optab, rtx, rtx, int);
/* Expand the absolute value operation. */
-extern rtx expand_abs PROTO((enum machine_mode, rtx, rtx, int, int));
+extern rtx expand_abs (enum machine_mode, rtx, rtx, int, int);
/* Expand the complex absolute value operation. */
-extern rtx expand_complex_abs PROTO((enum machine_mode, rtx, rtx, int));
+extern rtx expand_complex_abs (enum machine_mode, rtx, rtx, int);
/* Generate an instruction with a given INSN_CODE with an output and
an input. */
-extern void emit_unop_insn PROTO((int, rtx, rtx, enum rtx_code));
+extern void emit_unop_insn (int, rtx, rtx, enum rtx_code);
/* Emit code to perform a series of operations on a multi-word quantity, one
word at a time. */
-extern rtx emit_no_conflict_block PROTO((rtx, rtx, rtx, rtx, rtx));
+extern rtx emit_no_conflict_block (rtx, rtx, rtx, rtx, rtx);
/* Emit code to make a call to a constant function or a library call. */
-extern void emit_libcall_block PROTO((rtx, rtx, rtx, rtx));
+extern void emit_libcall_block (rtx, rtx, rtx, rtx);
/* Emit one rtl instruction to store zero in specified rtx. */
-extern void emit_clr_insn PROTO((rtx));
+extern void emit_clr_insn (rtx);
/* Emit one rtl insn to store 1 in specified rtx assuming it contains 0. */
-extern void emit_0_to_1_insn PROTO((rtx));
+extern void emit_0_to_1_insn (rtx);
/* Emit one rtl insn to compare two rtx's. */
-extern void emit_cmp_insn PROTO((rtx, rtx, enum rtx_code, rtx,
- enum machine_mode, int, int));
+extern void emit_cmp_insn (rtx, rtx, enum rtx_code, rtx,
+ enum machine_mode, int, int);
/* Emit a pair of rtl insns to compare two rtx's and to jump
to a label if the comparison is true. */
-extern void emit_cmp_and_jump_insns PROTO((rtx, rtx, enum rtx_code, rtx,
- enum machine_mode, int, int, rtx));
+extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx,
+ enum machine_mode, int, int, rtx);
/* Nonzero if a compare of mode MODE can be done straightforwardly
(without splitting it into pieces). */
-extern int can_compare_p PROTO((enum machine_mode));
+extern int can_compare_p (enum machine_mode);
/* Emit a library call comparison between floating point X and Y.
COMPARISON is the rtl operator to compare with (EQ, NE, GT, etc.). */
-extern void emit_float_lib_cmp PROTO((rtx, rtx, enum rtx_code));
+extern void emit_float_lib_cmp (rtx, rtx, enum rtx_code);
/* Generate code to indirectly jump to a location given in the rtx LOC. */
-extern void emit_indirect_jump PROTO((rtx));
+extern void emit_indirect_jump (rtx);
#ifdef HAVE_conditional_move
/* Emit a conditional move operation. */
-rtx emit_conditional_move PROTO((rtx, enum rtx_code, rtx, rtx,
+rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx,
enum machine_mode, rtx, rtx,
- enum machine_mode, int));
+ enum machine_mode, int);
/* Return non-zero if the conditional move is supported. */
-int can_conditionally_move_p PROTO((enum machine_mode mode));
+int can_conditionally_move_p (enum machine_mode mode);
#endif
@@ -660,349 +660,349 @@ int can_conditionally_move_p PROTO((enum machine_mode mode));
Modes must match; operands must meet the operation's predicates.
Likewise for subtraction and for just copying.
These do not call protect_from_queue; caller must do so. */
-extern rtx gen_add2_insn PROTO((rtx, rtx));
-extern rtx gen_sub2_insn PROTO((rtx, rtx));
-extern rtx gen_move_insn PROTO((rtx, rtx));
-extern int have_add2_insn PROTO((enum machine_mode));
-extern int have_sub2_insn PROTO((enum machine_mode));
+extern rtx gen_add2_insn (rtx, rtx);
+extern rtx gen_sub2_insn (rtx, rtx);
+extern rtx gen_move_insn (rtx, rtx);
+extern int have_add2_insn (enum machine_mode);
+extern int have_sub2_insn (enum machine_mode);
/* Return the INSN_CODE to use for an extend operation. */
-extern enum insn_code can_extend_p PROTO((enum machine_mode,
- enum machine_mode, int));
+extern enum insn_code can_extend_p (enum machine_mode,
+ enum machine_mode, int);
/* Generate the body of an insn to extend Y (with mode MFROM)
into X (with mode MTO). Do zero-extension if UNSIGNEDP is nonzero. */
-extern rtx gen_extend_insn PROTO((rtx, rtx, enum machine_mode,
- enum machine_mode, int));
+extern rtx gen_extend_insn (rtx, rtx, enum machine_mode,
+ enum machine_mode, int);
/* Initialize the tables that control conversion between fixed and
floating values. */
-extern void init_fixtab PROTO((void));
-extern void init_floattab PROTO((void));
+extern void init_fixtab (void);
+extern void init_floattab (void);
/* Generate code for a FLOAT_EXPR. */
-extern void expand_float PROTO((rtx, rtx, int));
+extern void expand_float (rtx, rtx, int);
/* Generate code for a FIX_EXPR. */
-extern void expand_fix PROTO((rtx, rtx, int));
+extern void expand_fix (rtx, rtx, int);
/* Call this once to initialize the contents of the optabs
appropriately for the current target machine. */
-extern void init_optabs PROTO((void));
+extern void init_optabs (void);
/* Functions from expmed.c: */
/* Arguments MODE, RTX: return an rtx for the negation of that value.
May emit insns. */
-extern rtx negate_rtx PROTO((enum machine_mode, rtx));
+extern rtx negate_rtx (enum machine_mode, rtx);
/* Expand a logical AND operation. */
-extern rtx expand_and PROTO((rtx, rtx, rtx));
+extern rtx expand_and (rtx, rtx, rtx);
/* Emit a store-flag operation. */
-extern rtx emit_store_flag PROTO((rtx, enum rtx_code, rtx, rtx,
- enum machine_mode, int, int));
+extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx,
+ enum machine_mode, int, int);
/* Like emit_store_flag, but always succeeds. */
-extern rtx emit_store_flag_force PROTO((rtx, enum rtx_code, rtx, rtx,
- enum machine_mode, int, int));
+extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
+ enum machine_mode, int, int);
/* Functions from loop.c: */
/* Given a JUMP_INSN, return a description of the test being made. */
-extern rtx get_condition PROTO((rtx, rtx *));
+extern rtx get_condition (rtx, rtx *);
/* Generate a conditional trap instruction. */
-extern rtx gen_cond_trap PROTO((enum rtx_code, rtx, rtx, rtx));
+extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
/* Functions from expr.c: */
/* This is run once per compilation to set up which modes can be used
directly in memory and to initialize the block move optab. */
-extern void init_expr_once PROTO((void));
+extern void init_expr_once (void);
/* This is run at the start of compiling a function. */
-extern void init_expr PROTO((void));
+extern void init_expr (void);
/* Use protect_from_queue to convert a QUEUED expression
into something that you can put immediately into an instruction. */
-extern rtx protect_from_queue PROTO((rtx, int));
+extern rtx protect_from_queue (rtx, int);
/* Perform all the pending incrementations. */
-extern void emit_queue PROTO((void));
+extern void emit_queue (void);
/* Emit some rtl insns to move data between rtx's, converting machine modes.
Both modes must be floating or both fixed. */
-extern void convert_move PROTO((rtx, rtx, int));
+extern void convert_move (rtx, rtx, int);
/* Convert an rtx to specified machine mode and return the result. */
-extern rtx convert_to_mode PROTO((enum machine_mode, rtx, int));
+extern rtx convert_to_mode (enum machine_mode, rtx, int);
/* Convert an rtx to MODE from OLDMODE and return the result. */
-extern rtx convert_modes PROTO((enum machine_mode, enum machine_mode, rtx, int));
+extern rtx convert_modes (enum machine_mode, enum machine_mode, rtx, int);
/* Emit code to move a block Y to a block X. */
-extern rtx emit_block_move PROTO((rtx, rtx, rtx, int));
+extern rtx emit_block_move (rtx, rtx, rtx, int);
/* Copy all or part of a value X into registers starting at REGNO.
The number of registers to be filled is NREGS. */
-extern void move_block_to_reg PROTO((int, rtx, int, enum machine_mode));
+extern void move_block_to_reg (int, rtx, int, enum machine_mode);
/* Copy all or part of a BLKmode value X out of registers starting at REGNO.
The number of registers to be filled is NREGS. */
-extern void move_block_from_reg PROTO((int, rtx, int, int));
+extern void move_block_from_reg (int, rtx, int, int);
/* Load a BLKmode value into non-consecutive registers represented by a
PARALLEL. */
-extern void emit_group_load PROTO((rtx, rtx, int, int));
+extern void emit_group_load (rtx, rtx, int, int);
/* Store a BLKmode value from non-consecutive registers represented by a
PARALLEL. */
-extern void emit_group_store PROTO((rtx, rtx, int, int));
+extern void emit_group_store (rtx, rtx, int, int);
#ifdef TREE_CODE
/* Copy BLKmode object from a set of registers. */
-extern rtx copy_blkmode_from_reg PROTO((rtx,rtx,tree));
+extern rtx copy_blkmode_from_reg (rtx,rtx,tree);
#endif
/* Mark REG as holding a parameter for the next CALL_INSN. */
-extern void use_reg PROTO((rtx *, rtx));
+extern void use_reg (rtx *, rtx);
/* Mark NREGS consecutive regs, starting at REGNO, as holding parameters
for the next CALL_INSN. */
-extern void use_regs PROTO((rtx *, int, int));
+extern void use_regs (rtx *, int, int);
/* Mark a PARALLEL as holding a parameter for the next CALL_INSN. */
-extern void use_group_regs PROTO((rtx *, rtx));
+extern void use_group_regs (rtx *, rtx);
/* Write zeros through the storage of OBJECT.
If OBJECT has BLKmode, SIZE is its length in bytes and ALIGN is its
alignment. */
-extern rtx clear_storage PROTO((rtx, rtx, int));
+extern rtx clear_storage (rtx, rtx, int);
/* Emit insns to set X from Y. */
-extern rtx emit_move_insn PROTO((rtx, rtx));
+extern rtx emit_move_insn (rtx, rtx);
/* Emit insns to set X from Y, with no frills. */
-extern rtx emit_move_insn_1 PROTO ((rtx, rtx));
+extern rtx emit_move_insn_1 (rtx, rtx);
/* Push a block of length SIZE (perhaps variable)
and return an rtx to address the beginning of the block. */
-extern rtx push_block PROTO((rtx, int, int));
+extern rtx push_block (rtx, int, int);
/* Make an operand to push something on the stack. */
-extern rtx gen_push_operand PROTO((void));
+extern rtx gen_push_operand (void);
#ifdef TREE_CODE
/* Generate code to push something onto the stack, given its mode and type. */
-extern void emit_push_insn PROTO((rtx, enum machine_mode, tree, rtx, int,
- int, rtx, int, rtx, rtx, int));
+extern void emit_push_insn (rtx, enum machine_mode, tree, rtx, int,
+ int, rtx, int, rtx, rtx, int);
/* Emit library call. */
-extern void emit_library_call PVPROTO((rtx orgfun, int no_queue,
- enum machine_mode outmode, int nargs, ...));
-extern rtx emit_library_call_value PVPROTO((rtx orgfun, rtx value, int no_queue,
- enum machine_mode outmode, int nargs, ...));
+extern void emit_library_call (rtx orgfun, int no_queue,
+ enum machine_mode outmode, int nargs, ...);
+extern rtx emit_library_call_value (rtx orgfun, rtx value, int no_queue,
+ enum machine_mode outmode, int nargs, ...);
/* Expand an assignment that stores the value of FROM into TO. */
-extern rtx expand_assignment PROTO((tree, tree, int, int));
+extern rtx expand_assignment (tree, tree, int, int);
/* Generate code for computing expression EXP,
and storing the value into TARGET.
If SUGGEST_REG is nonzero, copy the value through a register
and return that register, if that is possible. */
-extern rtx store_expr PROTO((tree, rtx, int));
+extern rtx store_expr (tree, rtx, int);
#endif
/* Given an rtx that may include add and multiply operations,
generate them as insns and return a pseudo-reg containing the value.
Useful after calling expand_expr with 1 as sum_ok. */
-extern rtx force_operand PROTO((rtx, rtx));
+extern rtx force_operand (rtx, rtx);
-extern rtx expand_builtin_setjmp PROTO((rtx, rtx, rtx, rtx));
+extern rtx expand_builtin_setjmp (rtx, rtx, rtx, rtx);
#ifdef TREE_CODE
/* Generate code for computing expression EXP.
An rtx for the computed value is returned. The value is never null.
In the case of a void EXP, const0_rtx is returned. */
-extern rtx expand_expr PROTO((tree, rtx, enum machine_mode,
- enum expand_modifier));
+extern rtx expand_expr (tree, rtx, enum machine_mode,
+ enum expand_modifier);
#endif
/* At the start of a function, record that we have no previously-pushed
arguments waiting to be popped. */
-extern void init_pending_stack_adjust PROTO((void));
+extern void init_pending_stack_adjust (void);
/* Pop any previously-pushed arguments that have not been popped yet. */
-extern void do_pending_stack_adjust PROTO((void));
+extern void do_pending_stack_adjust (void);
#ifdef TREE_CODE
/* Generate code to evaluate EXP and jump to LABEL if the value is zero. */
-extern void jumpifnot PROTO((tree, rtx));
+extern void jumpifnot (tree, rtx);
/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero. */
-extern void jumpif PROTO((tree, rtx));
+extern void jumpif (tree, rtx);
/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
the result is zero, or IF_TRUE_LABEL if the result is one. */
-extern void do_jump PROTO((tree, rtx, rtx));
+extern void do_jump (tree, rtx, rtx);
#endif
/* Generate rtl to compare two rtx's, will call emit_cmp_insn. */
-extern rtx compare_from_rtx PROTO((rtx, rtx, enum rtx_code, int,
- enum machine_mode, rtx, int));
+extern rtx compare_from_rtx (rtx, rtx, enum rtx_code, int,
+ enum machine_mode, rtx, int);
/* Generate a tablejump instruction (used for switch statements). */
-extern void do_tablejump PROTO((rtx, enum machine_mode, rtx, rtx, rtx));
+extern void do_tablejump (rtx, enum machine_mode, rtx, rtx, rtx);
#ifdef TREE_CODE
/* rtl.h and tree.h were included. */
/* Return an rtx for the size in bytes of the value of an expr. */
-extern rtx expr_size PROTO((tree));
+extern rtx expr_size (tree);
-extern rtx lookup_static_chain PROTO((tree));
+extern rtx lookup_static_chain (tree);
/* Convert a stack slot address ADDR valid in function FNDECL
into an address valid in this function (using a static chain). */
-extern rtx fix_lexical_addr PROTO((rtx, tree));
+extern rtx fix_lexical_addr (rtx, tree);
/* Return the address of the trampoline for entering nested fn FUNCTION. */
-extern rtx trampoline_address PROTO((tree));
+extern rtx trampoline_address (tree);
/* Return an rtx that refers to the value returned by a function
in its original home. This becomes invalid if any more code is emitted. */
-extern rtx hard_function_value PROTO((tree, tree));
+extern rtx hard_function_value (tree, tree);
-extern rtx prepare_call_address PROTO((rtx, tree, rtx *, int));
+extern rtx prepare_call_address (rtx, tree, rtx *, int);
-extern rtx expand_call PROTO((tree, rtx, int));
+extern rtx expand_call (tree, rtx, int);
-extern rtx expand_shift PROTO((enum tree_code, enum machine_mode, rtx, tree, rtx, int));
-extern rtx expand_divmod PROTO((int, enum tree_code, enum machine_mode, rtx, rtx, rtx, int));
-extern void locate_and_pad_parm PROTO((enum machine_mode, tree, int, tree, struct args_size *, struct args_size *, struct args_size *));
-extern rtx expand_inline_function PROTO((tree, tree, rtx, int, tree, rtx));
+extern rtx expand_shift (enum tree_code, enum machine_mode, rtx, tree, rtx, int);
+extern rtx expand_divmod (int, enum tree_code, enum machine_mode, rtx, rtx, rtx, int);
+extern void locate_and_pad_parm (enum machine_mode, tree, int, tree, struct args_size *, struct args_size *, struct args_size *);
+extern rtx expand_inline_function (tree, tree, rtx, int, tree, rtx);
/* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary. */
-extern rtx label_rtx PROTO((tree));
+extern rtx label_rtx (tree);
#endif
/* Indicate how an input argument register was promoted. */
-extern rtx promoted_input_arg PROTO((int, enum machine_mode *, int *));
+extern rtx promoted_input_arg (int, enum machine_mode *, int *);
/* Return an rtx like arg but sans any constant terms.
Returns the original rtx if it has no constant terms.
The constant terms are added and stored via a second arg. */
-extern rtx eliminate_constant_term PROTO((rtx, rtx *));
+extern rtx eliminate_constant_term (rtx, rtx *);
/* Convert arg to a valid memory address for specified machine mode,
by emitting insns to perform arithmetic if nec. */
-extern rtx memory_address PROTO((enum machine_mode, rtx));
+extern rtx memory_address (enum machine_mode, rtx);
/* Like `memory_address' but pretent `flag_force_addr' is 0. */
-extern rtx memory_address_noforce PROTO((enum machine_mode, rtx));
+extern rtx memory_address_noforce (enum machine_mode, rtx);
/* Return a memory reference like MEMREF, but with its mode changed
to MODE and its address changed to ADDR.
(VOIDmode means don't change the mode.
NULL for ADDR means don't change the address.) */
-extern rtx change_address PROTO((rtx, enum machine_mode, rtx));
+extern rtx change_address (rtx, enum machine_mode, rtx);
/* Return a memory reference like MEMREF, but which is known to have a
valid address. */
-extern rtx validize_mem PROTO((rtx));
+extern rtx validize_mem (rtx);
/* Assemble the static constant template for function entry trampolines. */
-extern rtx assemble_trampoline_template PROTO((void));
+extern rtx assemble_trampoline_template (void);
/* Return 1 if two rtx's are equivalent in structure and elements. */
-extern int rtx_equal_p PROTO((rtx, rtx));
+extern int rtx_equal_p (rtx, rtx);
/* Given rtx, return new rtx whose address won't be affected by
any side effects. It has been copied to a new temporary reg. */
-extern rtx stabilize PROTO((rtx));
+extern rtx stabilize (rtx);
/* Given an rtx, copy all regs it refers to into new temps
and return a modified copy that refers to the new temps. */
-extern rtx copy_all_regs PROTO((rtx));
+extern rtx copy_all_regs (rtx);
/* Copy given rtx to a new temp reg and return that. */
-extern rtx copy_to_reg PROTO((rtx));
+extern rtx copy_to_reg (rtx);
/* Like copy_to_reg but always make the reg Pmode. */
-extern rtx copy_addr_to_reg PROTO((rtx));
+extern rtx copy_addr_to_reg (rtx);
/* Like copy_to_reg but always make the reg the specified mode MODE. */
-extern rtx copy_to_mode_reg PROTO((enum machine_mode, rtx));
+extern rtx copy_to_mode_reg (enum machine_mode, rtx);
/* Copy given rtx to given temp reg and return that. */
-extern rtx copy_to_suggested_reg PROTO((rtx, rtx, enum machine_mode));
+extern rtx copy_to_suggested_reg (rtx, rtx, enum machine_mode);
/* Copy a value to a register if it isn't already a register.
Args are mode (in case value is a constant) and the value. */
-extern rtx force_reg PROTO((enum machine_mode, rtx));
+extern rtx force_reg (enum machine_mode, rtx);
/* Return given rtx, copied into a new temp reg if it was in memory. */
-extern rtx force_not_mem PROTO((rtx));
+extern rtx force_not_mem (rtx);
#ifdef TREE_CODE
/* Return mode and signedness to use when object is promoted. */
-extern enum machine_mode promote_mode PROTO((tree, enum machine_mode,
- int *, int));
+extern enum machine_mode promote_mode (tree, enum machine_mode,
+ int *, int);
#endif
/* Remove some bytes from the stack. An rtx says how many. */
-extern void adjust_stack PROTO((rtx));
+extern void adjust_stack (rtx);
/* Add some bytes to the stack. An rtx says how many. */
-extern void anti_adjust_stack PROTO((rtx));
+extern void anti_adjust_stack (rtx);
/* This enum is used for the following two functions. */
enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
/* Save the stack pointer at the specified level. */
-extern void emit_stack_save PROTO((enum save_level, rtx *, rtx));
+extern void emit_stack_save (enum save_level, rtx *, rtx);
/* Restore the stack pointer from a save area of the specified level. */
-extern void emit_stack_restore PROTO((enum save_level, rtx, rtx));
+extern void emit_stack_restore (enum save_level, rtx, rtx);
/* Allocate some space on the stack dynamically and return its address. An rtx
says how many bytes. */
-extern rtx allocate_dynamic_stack_space PROTO((rtx, rtx, int));
+extern rtx allocate_dynamic_stack_space (rtx, rtx, int);
/* Probe a range of stack addresses from FIRST to FIRST+SIZE, inclusive.
FIRST is a constant and size is a Pmode RTX. These are offsets from the
current stack pointer. STACK_GROWS_DOWNWARD says whether to add or
subtract from the stack. If SIZE is constant, this is done
with a fixed number of probes. Otherwise, we must make a loop. */
-extern void probe_stack_range PROTO((HOST_WIDE_INT, rtx));
+extern void probe_stack_range (HOST_WIDE_INT, rtx);
/* Return an rtx that refers to the value returned by a library call
in its original home. This becomes invalid if any more code is emitted. */
-extern rtx hard_libcall_value PROTO((enum machine_mode));
+extern rtx hard_libcall_value (enum machine_mode);
/* Given an rtx, return an rtx for a value rounded up to a multiple
of STACK_BOUNDARY / BITS_PER_UNIT. */
-extern rtx round_push PROTO((rtx));
+extern rtx round_push (rtx);
-extern rtx store_bit_field PROTO((rtx, int, int, enum machine_mode, rtx, int, int));
-extern rtx extract_bit_field PROTO((rtx, int, int, int, rtx, enum machine_mode, enum machine_mode, int, int));
-extern rtx expand_mult PROTO((enum machine_mode, rtx, rtx, rtx, int));
-extern rtx expand_mult_add PROTO((rtx, rtx, rtx, rtx,enum machine_mode, int));
-extern rtx expand_mult_highpart_adjust PROTO((enum machine_mode, rtx, rtx, rtx, rtx, int));
+extern rtx store_bit_field (rtx, int, int, enum machine_mode, rtx, int, int);
+extern rtx extract_bit_field (rtx, int, int, int, rtx, enum machine_mode, enum machine_mode, int, int);
+extern rtx expand_mult (enum machine_mode, rtx, rtx, rtx, int);
+extern rtx expand_mult_add (rtx, rtx, rtx, rtx,enum machine_mode, int);
+extern rtx expand_mult_highpart_adjust (enum machine_mode, rtx, rtx, rtx, rtx, int);
-extern rtx assemble_static_space PROTO((int));
+extern rtx assemble_static_space (int);
/* Hook called by expand_expr for language-specific tree codes.
It is up to the language front end to install a hook
if it has any such codes that expand_expr needs to know about. */
-extern rtx (*lang_expand_expr) PROTO ((union tree_node *, rtx,
+extern rtx (*lang_expand_expr) (union tree_node *, rtx,
enum machine_mode,
- enum expand_modifier modifier));
+ enum expand_modifier modifier);
-extern void init_all_optabs PROTO ((void));
-extern void init_mov_optab PROTO ((void));
-extern void do_jump_by_parts_equality_rtx PROTO((rtx, rtx, rtx));
-extern void do_jump_by_parts_greater_rtx PROTO ((enum machine_mode, int,
- rtx, rtx, rtx, rtx));
+extern void init_all_optabs (void);
+extern void init_mov_optab (void);
+extern void do_jump_by_parts_equality_rtx (rtx, rtx, rtx);
+extern void do_jump_by_parts_greater_rtx (enum machine_mode, int,
+ rtx, rtx, rtx, rtx);
#ifdef TREE_CODE /* Don't lose if tree.h not included. */
-extern void mark_seen_cases PROTO ((tree, unsigned char *,
- long, int));
+extern void mark_seen_cases (tree, unsigned char *,
+ long, int);
#endif
diff --git a/gcc/final.c b/gcc/final.c
index 1627075..93d1fef 100755
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -230,20 +230,20 @@ static char *line_note_exists;
extern int range_max_number;
/* END CYGNUS LOCAL */
-extern rtx peephole PROTO((rtx));
+extern rtx peephole (rtx);
#ifdef HAVE_ATTR_length
-static int asm_insn_count PROTO((rtx));
+static int asm_insn_count (rtx);
#endif
-static void output_source_line PROTO((FILE *, rtx));
-static rtx walk_alter_subreg PROTO((rtx));
-static void output_asm_name PROTO((void));
-static void output_operand PROTO((rtx, int));
+static void output_source_line (FILE *, rtx);
+static rtx walk_alter_subreg (rtx);
+static void output_asm_name (void);
+static void output_operand (rtx, int);
#ifdef LEAF_REGISTERS
-static void leaf_renumber_regs PROTO((rtx));
+static void leaf_renumber_regs (rtx);
#endif
#ifdef HAVE_cc0
-static int alter_cond PROTO((rtx));
+static int alter_cond (rtx);
#endif
extern char *getpwd ();
@@ -2731,7 +2731,7 @@ output_addr_const (file, x)
We handle alternate assembler dialects here, just like output_asm_insn. */
void
-asm_fprintf VPROTO((FILE *file, char *p, ...))
+asm_fprintf (FILE *file, char *p, ...)
{
#ifndef ANSI_PROTOTYPES
FILE *file;
diff --git a/gcc/flow.c b/gcc/flow.c
index 1c0726b..308c4c1 100755
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -262,46 +262,46 @@ static rtx mem_set_list;
static HARD_REG_SET elim_reg_set;
/* Forward declarations */
-static void find_basic_blocks_1 PROTO((rtx, rtx));
-static void add_edge PROTO((int, int));
-static void add_edge_to_label PROTO((int, rtx));
-static void make_edges PROTO((int));
-static void mark_label_ref PROTO((int, rtx));
-static void delete_unreachable_blocks PROTO((void));
-static int delete_block PROTO((int));
-static void life_analysis_1 PROTO((rtx, int));
-static void propagate_block PROTO((regset, rtx, rtx, int,
- regset, int));
-static int set_noop_p PROTO((rtx));
-static int noop_move_p PROTO((rtx));
-static void record_volatile_insns PROTO((rtx));
-static void mark_regs_live_at_end PROTO((regset));
-static int insn_dead_p PROTO((rtx, regset, int, rtx));
-static int libcall_dead_p PROTO((rtx, regset, rtx, rtx));
-static void mark_set_regs PROTO((regset, regset, rtx,
- rtx, regset));
-static void mark_set_1 PROTO((regset, regset, rtx,
- rtx, regset));
+static void find_basic_blocks_1 (rtx, rtx);
+static void add_edge (int, int);
+static void add_edge_to_label (int, rtx);
+static void make_edges (int);
+static void mark_label_ref (int, rtx);
+static void delete_unreachable_blocks (void);
+static int delete_block (int);
+static void life_analysis_1 (rtx, int);
+static void propagate_block (regset, rtx, rtx, int,
+ regset, int);
+static int set_noop_p (rtx);
+static int noop_move_p (rtx);
+static void record_volatile_insns (rtx);
+static void mark_regs_live_at_end (regset);
+static int insn_dead_p (rtx, regset, int, rtx);
+static int libcall_dead_p (rtx, regset, rtx, rtx);
+static void mark_set_regs (regset, regset, rtx,
+ rtx, regset);
+static void mark_set_1 (regset, regset, rtx,
+ rtx, regset);
#ifdef AUTO_INC_DEC
-static void find_auto_inc PROTO((regset, rtx, rtx));
-static int try_pre_increment_1 PROTO((rtx));
-static int try_pre_increment PROTO((rtx, rtx, HOST_WIDE_INT));
+static void find_auto_inc (regset, rtx, rtx);
+static int try_pre_increment_1 (rtx);
+static int try_pre_increment (rtx, rtx, HOST_WIDE_INT);
#endif
-static void mark_used_regs PROTO((regset, regset, rtx, int, rtx));
-void dump_flow_info PROTO((FILE *));
-static void add_pred_succ PROTO ((int, int, int_list_ptr *,
- int_list_ptr *, int *, int *));
-static int_list_ptr alloc_int_list_node PROTO ((int_list_block **));
-static int_list_ptr add_int_list_node PROTO ((int_list_block **,
- int_list **, int));
+static void mark_used_regs (regset, regset, rtx, int, rtx);
+void dump_flow_info (FILE *);
+static void add_pred_succ (int, int, int_list_ptr *,
+ int_list_ptr *, int *, int *);
+static int_list_ptr alloc_int_list_node (int_list_block **);
+static int_list_ptr add_int_list_node (int_list_block **,
+ int_list **, int);
/* CYGNUS LOCAL LRS */
-void init_regset_vector PROTO ((regset *, int,
- struct obstack *));
-static void count_reg_sets_1 PROTO ((rtx));
-static void count_reg_sets PROTO ((rtx));
-static void count_reg_references PROTO ((rtx));
-static void notice_stack_pointer_modification PROTO ((rtx, rtx));
-static void invalidate_mems_from_autoinc PROTO ((rtx));
+void init_regset_vector (regset *, int,
+ struct obstack *);
+static void count_reg_sets_1 (rtx);
+static void count_reg_sets (rtx);
+static void count_reg_references (rtx);
+static void notice_stack_pointer_modification (rtx, rtx);
+static void invalidate_mems_from_autoinc (rtx);
/* Find basic blocks of the current function.
F is the first insn of the function and NREGS the number of register numbers
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 07611bd..2f954c5 100755
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -53,52 +53,52 @@ Boston, MA 02111-1307, USA. */
/* Handle floating overflow for `const_binop'. */
static jmp_buf float_error;
-static void encode PROTO((HOST_WIDE_INT *,
- HOST_WIDE_INT, HOST_WIDE_INT));
-static void decode PROTO((HOST_WIDE_INT *,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-int div_and_round_double PROTO((enum tree_code, int, HOST_WIDE_INT,
+static void encode (HOST_WIDE_INT *,
+ HOST_WIDE_INT, HOST_WIDE_INT);
+static void decode (HOST_WIDE_INT *,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+int div_and_round_double (enum tree_code, int, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT *,
HOST_WIDE_INT *, HOST_WIDE_INT *,
- HOST_WIDE_INT *));
-static int split_tree PROTO((tree, enum tree_code, tree *,
- tree *, int *));
-static tree int_const_binop PROTO((enum tree_code, tree, tree, int, int));
-static tree const_binop PROTO((enum tree_code, tree, tree, int));
-static tree fold_convert PROTO((tree, tree));
-static enum tree_code invert_tree_comparison PROTO((enum tree_code));
-static enum tree_code swap_tree_comparison PROTO((enum tree_code));
-static int truth_value_p PROTO((enum tree_code));
-static int operand_equal_for_comparison_p PROTO((tree, tree, tree));
-static int twoval_comparison_p PROTO((tree, tree *, tree *, int *));
-static tree eval_subst PROTO((tree, tree, tree, tree, tree));
-static tree omit_one_operand PROTO((tree, tree, tree));
-static tree pedantic_omit_one_operand PROTO((tree, tree, tree));
-static tree distribute_bit_expr PROTO((enum tree_code, tree, tree, tree));
-static tree make_bit_field_ref PROTO((tree, tree, int, int, int));
-static tree optimize_bit_field_compare PROTO((enum tree_code, tree,
- tree, tree));
-static tree decode_field_reference PROTO((tree, int *, int *,
+ HOST_WIDE_INT *);
+static int split_tree (tree, enum tree_code, tree *,
+ tree *, int *);
+static tree int_const_binop (enum tree_code, tree, tree, int, int);
+static tree const_binop (enum tree_code, tree, tree, int);
+static tree fold_convert (tree, tree);
+static enum tree_code invert_tree_comparison (enum tree_code);
+static enum tree_code swap_tree_comparison (enum tree_code);
+static int truth_value_p (enum tree_code);
+static int operand_equal_for_comparison_p (tree, tree, tree);
+static int twoval_comparison_p (tree, tree *, tree *, int *);
+static tree eval_subst (tree, tree, tree, tree, tree);
+static tree omit_one_operand (tree, tree, tree);
+static tree pedantic_omit_one_operand (tree, tree, tree);
+static tree distribute_bit_expr (enum tree_code, tree, tree, tree);
+static tree make_bit_field_ref (tree, tree, int, int, int);
+static tree optimize_bit_field_compare (enum tree_code, tree,
+ tree, tree);
+static tree decode_field_reference (tree, int *, int *,
enum machine_mode *, int *,
- int *, tree *, tree *));
-static int all_ones_mask_p PROTO((tree, int));
-static int simple_operand_p PROTO((tree));
+ int *, tree *, tree *);
+static int all_ones_mask_p (tree, int);
+static int simple_operand_p (tree);
/* CYGNUS LOCAL -- meissner/nortel */
-static int simple2_operand_p PROTO((tree, int));
+static int simple2_operand_p (tree, int);
/* END CYGNUS LOCAL -- meissner/nortel */
-static tree range_binop PROTO((enum tree_code, tree, tree, int,
- tree, int));
-static tree make_range PROTO((tree, int *, tree *, tree *));
-static tree build_range_check PROTO((tree, tree, int, tree, tree));
-static int merge_ranges PROTO((int *, tree *, tree *, int, tree, tree,
- int, tree, tree));
-static tree fold_range_test PROTO((tree));
-static tree unextend PROTO((tree, int, int, tree));
-static tree fold_truthop PROTO((enum tree_code, tree, tree, tree));
-static tree strip_compound_expr PROTO((tree, tree));
-static int multiple_of_p PROTO((tree, tree, tree));
-static tree constant_boolean_node PROTO((int, tree));
+static tree range_binop (enum tree_code, tree, tree, int,
+ tree, int);
+static tree make_range (tree, int *, tree *, tree *);
+static tree build_range_check (tree, tree, int, tree, tree);
+static int merge_ranges (int *, tree *, tree *, int, tree, tree,
+ int, tree, tree);
+static tree fold_range_test (tree);
+static tree unextend (tree, int, int, tree);
+static tree fold_truthop (enum tree_code, tree, tree, tree);
+static tree strip_compound_expr (tree, tree);
+static int multiple_of_p (tree, tree, tree);
+static tree constant_boolean_node (int, tree);
#ifndef BRANCH_COST
#define BRANCH_COST 1
diff --git a/gcc/function.c b/gcc/function.c
index bb08b18..62783a7 100755
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -346,8 +346,8 @@ static int virtuals_instantiated;
/* These variables hold pointers to functions to
save and restore machine-specific data,
in push_function_context and pop_function_context. */
-void (*save_machine_status) PROTO((struct function *));
-void (*restore_machine_status) PROTO((struct function *));
+void (*save_machine_status) (struct function *);
+void (*restore_machine_status) (struct function *);
/* Nonzero if we need to distinguish between the return value of this function
and the return value of a function called by this function. This helps
@@ -435,45 +435,45 @@ struct fixup_replacement
/* Forward declarations. */
-static rtx assign_outer_stack_local PROTO ((enum machine_mode, HOST_WIDE_INT,
- int, struct function *));
-static struct temp_slot *find_temp_slot_from_address PROTO((rtx));
-static void put_reg_into_stack PROTO((struct function *, rtx, tree,
+static rtx assign_outer_stack_local (enum machine_mode, HOST_WIDE_INT,
+ int, struct function *);
+static struct temp_slot *find_temp_slot_from_address (rtx);
+static void put_reg_into_stack (struct function *, rtx, tree,
enum machine_mode, enum machine_mode,
- int, int, int));
-static void fixup_var_refs PROTO((rtx, enum machine_mode, int));
+ int, int, int);
+static void fixup_var_refs (rtx, enum machine_mode, int);
static struct fixup_replacement
- *find_fixup_replacement PROTO((struct fixup_replacement **, rtx));
-static void fixup_var_refs_insns PROTO((rtx, enum machine_mode, int,
- rtx, int));
-static void fixup_var_refs_1 PROTO((rtx, enum machine_mode, rtx *, rtx,
- struct fixup_replacement **));
-static rtx fixup_memory_subreg PROTO((rtx, rtx, int));
-static rtx walk_fixup_memory_subreg PROTO((rtx, rtx, int));
-static rtx fixup_stack_1 PROTO((rtx, rtx));
-static void optimize_bit_field PROTO((rtx, rtx, rtx *));
-static void instantiate_decls PROTO((tree, int));
-static void instantiate_decls_1 PROTO((tree, int));
-static void instantiate_decl PROTO((rtx, int, int));
-static int instantiate_virtual_regs_1 PROTO((rtx *, rtx, int));
-static void delete_handlers PROTO((void));
-static void pad_to_arg_alignment PROTO((struct args_size *, int));
+ *find_fixup_replacement (struct fixup_replacement **, rtx);
+static void fixup_var_refs_insns (rtx, enum machine_mode, int,
+ rtx, int);
+static void fixup_var_refs_1 (rtx, enum machine_mode, rtx *, rtx,
+ struct fixup_replacement **);
+static rtx fixup_memory_subreg (rtx, rtx, int);
+static rtx walk_fixup_memory_subreg (rtx, rtx, int);
+static rtx fixup_stack_1 (rtx, rtx);
+static void optimize_bit_field (rtx, rtx, rtx *);
+static void instantiate_decls (tree, int);
+static void instantiate_decls_1 (tree, int);
+static void instantiate_decl (rtx, int, int);
+static int instantiate_virtual_regs_1 (rtx *, rtx, int);
+static void delete_handlers (void);
+static void pad_to_arg_alignment (struct args_size *, int);
#ifndef ARGS_GROW_DOWNWARD
-static void pad_below PROTO((struct args_size *, enum machine_mode,
- tree));
+static void pad_below (struct args_size *, enum machine_mode,
+ tree);
#endif
#ifdef ARGS_GROW_DOWNWARD
-static tree round_down PROTO((tree, int));
+static tree round_down (tree, int);
#endif
-static rtx round_trampoline_addr PROTO((rtx));
-static tree blocks_nreverse PROTO((tree));
-static int all_blocks PROTO((tree, tree *));
+static rtx round_trampoline_addr (rtx);
+static tree blocks_nreverse (tree);
+static int all_blocks (tree, tree *);
#if defined (HAVE_prologue) || defined (HAVE_epilogue)
-static int *record_insns PROTO((rtx));
-static int contains PROTO((rtx, int *));
+static int *record_insns (rtx);
+static int contains (rtx, int *);
#endif /* HAVE_prologue || HAVE_epilogue */
-static void put_addressof_into_stack PROTO((rtx));
-static void purge_addressof_1 PROTO((rtx *, rtx, int, int));
+static void put_addressof_into_stack (rtx);
+static void purge_addressof_1 (rtx *, rtx, int, int);
/* Pointer to chain of `struct function' for containing functions. */
struct function *outer_function_chain;
@@ -5946,7 +5946,7 @@ expand_function_start (subr, parms_have_cleanups)
static void
diddle_return_value (doit, arg)
- void (*doit) PARAMS ((rtx, void *));
+ void (*doit) (rtx, void *);
void *arg;
{
rtx outgoing = current_function_return_rtx;
diff --git a/gcc/function.h b/gcc/function.h
index 05929a9..95ede25 100755
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -225,7 +225,7 @@ extern rtx stack_slot_list;
/* Given a function decl for a containing function,
return the `struct function' for it. */
-struct function *find_function_data PROTO((tree));
+struct function *find_function_data (tree);
/* Pointer to chain of `struct function' for containing functions. */
extern struct function *outer_function_chain;
@@ -233,36 +233,36 @@ extern struct function *outer_function_chain;
/* Put all this function's BLOCK nodes into a vector and return it.
Also store in each NOTE for the beginning or end of a block
the index of that block in the vector. */
-extern tree *identify_blocks PROTO((tree, rtx));
+extern tree *identify_blocks (tree, rtx);
/* Return size needed for stack frame based on slots so far allocated.
This size counts from zero. It is not rounded to STACK_BOUNDARY;
the caller may have to do that. */
-extern HOST_WIDE_INT get_frame_size PROTO((void));
+extern HOST_WIDE_INT get_frame_size (void);
/* These variables hold pointers to functions to
save and restore machine-specific data,
in push_function_context and pop_function_context. */
-extern void (*save_machine_status) PROTO((struct function *));
-extern void (*restore_machine_status) PROTO((struct function *));
+extern void (*save_machine_status) (struct function *);
+extern void (*restore_machine_status) (struct function *);
/* Save and restore status information for a nested function. */
-extern void save_tree_status PROTO((struct function *, tree));
-extern void restore_tree_status PROTO((struct function *, tree));
-extern void save_varasm_status PROTO((struct function *, tree));
-extern void restore_varasm_status PROTO((struct function *));
-extern void save_eh_status PROTO((struct function *));
-extern void restore_eh_status PROTO((struct function *));
-extern void save_stmt_status PROTO((struct function *));
-extern void restore_stmt_status PROTO((struct function *));
-extern void save_expr_status PROTO((struct function *));
-extern void restore_expr_status PROTO((struct function *));
-extern void save_emit_status PROTO((struct function *));
-extern void restore_emit_status PROTO((struct function *));
-extern void save_storage_status PROTO((struct function *));
-extern void restore_storage_status PROTO((struct function *));
-
-extern rtx get_first_block_beg PROTO((void));
+extern void save_tree_status (struct function *, tree);
+extern void restore_tree_status (struct function *, tree);
+extern void save_varasm_status (struct function *, tree);
+extern void restore_varasm_status (struct function *);
+extern void save_eh_status (struct function *);
+extern void restore_eh_status (struct function *);
+extern void save_stmt_status (struct function *);
+extern void restore_stmt_status (struct function *);
+extern void save_expr_status (struct function *);
+extern void restore_expr_status (struct function *);
+extern void save_emit_status (struct function *);
+extern void restore_emit_status (struct function *);
+extern void save_storage_status (struct function *);
+extern void restore_storage_status (struct function *);
+
+extern rtx get_first_block_beg (void);
#ifdef rtx
#undef rtx
diff --git a/gcc/gansidecl.h b/gcc/gansidecl.h
index 5929f15..f3f4d91 100755
--- a/gcc/gansidecl.h
+++ b/gcc/gansidecl.h
@@ -27,13 +27,6 @@ Boston, MA 02111-1307, USA. */
#include "ansidecl.h"
-/* Undef ansidecl.h's "obsolete" version. */
-#undef PROTO
-/* These macros are deprecated, use ansidecl.h's PARAMS style instead. */
-#define PROTO(ARGS) PARAMS(ARGS)
-#define VPROTO(ARGS) VPARAMS(ARGS)
-#define PVPROTO(ARGS) PARAMS(ARGS)
-
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __attribute__(x)
#endif
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b3b08fb..8fadbeb 100755
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -165,53 +165,53 @@ extern char *version_string;
/* Forward declaration for prototypes. */
struct path_prefix;
-static void init_spec PROTO((void));
-static void read_specs PROTO((char *, int));
-static void set_spec PROTO((char *, char *));
-static struct compiler *lookup_compiler PROTO((char *, size_t, char *));
-static char *build_search_list PROTO((struct path_prefix *, char *, int));
-static void putenv_from_prefixes PROTO((struct path_prefix *, char *));
+static void init_spec (void);
+static void read_specs (char *, int);
+static void set_spec (char *, char *);
+static struct compiler *lookup_compiler (char *, size_t, char *);
+static char *build_search_list (struct path_prefix *, char *, int);
+static void putenv_from_prefixes (struct path_prefix *, char *);
/* CYGNUS LOCAL -- meissner/relative pathnames */
-static char **split_directories PROTO((char *, int *));
-static void free_split_directories PROTO((char **));
-static char *make_relative_prefix PROTO((char *, char *, char *));
+static char **split_directories (char *, int *);
+static void free_split_directories (char **);
+static char *make_relative_prefix (char *, char *, char *);
/* END CYGNUS LOCAL -- meissner/relative pathnames */
-static char *find_a_file PROTO((struct path_prefix *, char *, int));
-static void add_prefix PROTO((struct path_prefix *, const char *,
- const char *, int, int, int *));
-static char *skip_whitespace PROTO((char *));
-static void record_temp_file PROTO((char *, int, int));
-static void delete_if_ordinary PROTO((char *));
-static void delete_temp_files PROTO((void));
-static void delete_failure_queue PROTO((void));
-static void clear_failure_queue PROTO((void));
-static int check_live_switch PROTO((int, int));
-static char *handle_braces PROTO((char *));
-static char *save_string PROTO((const char *, int));
-extern int do_spec PROTO((char *));
-static int do_spec_1 PROTO((char *, int, char *));
-static char *find_file PROTO((char *));
-static int is_directory PROTO((char *, char *, int));
-static void validate_switches PROTO((char *));
-static void validate_all_switches PROTO((void));
-static void give_switch PROTO((int, int, int));
-static int used_arg PROTO((char *, int));
-static int default_arg PROTO((char *, int));
-static void set_multilib_dir PROTO((void));
-static void print_multilib_info PROTO((void));
-static void pfatal_with_name PROTO((char *)) ATTRIBUTE_NORETURN;
-static void perror_with_name PROTO((char *));
-static void pfatal_pexecute PROTO((char *, char *)) ATTRIBUTE_NORETURN;
-static void fatal PVPROTO((char *, ...))
+static char *find_a_file (struct path_prefix *, char *, int);
+static void add_prefix (struct path_prefix *, const char *,
+ const char *, int, int, int *);
+static char *skip_whitespace (char *);
+static void record_temp_file (char *, int, int);
+static void delete_if_ordinary (char *);
+static void delete_temp_files (void);
+static void delete_failure_queue (void);
+static void clear_failure_queue (void);
+static int check_live_switch (int, int);
+static char *handle_braces (char *);
+static char *save_string (const char *, int);
+extern int do_spec (char *);
+static int do_spec_1 (char *, int, char *);
+static char *find_file (char *);
+static int is_directory (char *, char *, int);
+static void validate_switches (char *);
+static void validate_all_switches (void);
+static void give_switch (int, int, int);
+static int used_arg (char *, int);
+static int default_arg (char *, int);
+static void set_multilib_dir (void);
+static void print_multilib_info (void);
+static void pfatal_with_name (char *) ATTRIBUTE_NORETURN;
+static void perror_with_name (char *);
+static void pfatal_pexecute (char *, char *) ATTRIBUTE_NORETURN;
+static void fatal (char *, ...)
ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_1;
-static void error PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
-static void display_help PROTO((void));
+static void error (char *, ...) ATTRIBUTE_PRINTF_1;
+static void display_help (void);
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
#ifdef LANG_SPECIFIC_DRIVER
/* Called before processing to change/add/remove arguments. */
-extern void lang_specific_driver PROTO ((void (*) PVPROTO((char *, ...)), int *, char ***, int *));
+extern void lang_specific_driver (void (*)(char *, ...), int *, char ***, int *);
/* Called before linking. Returns 0 on success and -1 on failure. */
extern int lang_specific_pre_link ();
@@ -776,7 +776,6 @@ static struct compiler default_compilers[] =
"%{!M:%{!MM:%{!E:%{!S:as %a %Y\
%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}\
%{!pipe:%g.s} %A\n }}}}"}},
-#include "specs.h"
/* Mark end of table */
{0, {0}}
};
@@ -1378,7 +1377,7 @@ static int argbuf_index;
#define MKTEMP_EACH_FILE
-extern char *make_temp_file PROTO((char *));
+extern char *make_temp_file (char *);
/* This is the list of suffixes and codes (%g/%u/%U) and the associated
temp file. */
@@ -5619,7 +5618,7 @@ fancy_abort ()
/* Output an error message and exit */
static void
-fatal VPROTO((char *format, ...))
+fatal (char *format, ...)
{
#ifndef ANSI_PROTOTYPES
char *format;
@@ -5641,7 +5640,7 @@ fatal VPROTO((char *format, ...))
}
static void
-error VPROTO((char *format, ...))
+error (char *format, ...)
{
#ifndef ANSI_PROTOTYPES
char *format;
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 0b7ee3b..fb13148 100755
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -507,113 +507,113 @@ static sbitmap *rd_kill, *rd_gen, *reaching_defs, *rd_out;
static sbitmap *ae_kill, *ae_gen, *ae_in, *ae_out;
-static void compute_can_copy PROTO ((void));
-
-static char *gmalloc PROTO ((unsigned int));
-static char *grealloc PROTO ((char *, unsigned int));
-static char *gcse_alloc PROTO ((unsigned long));
-static void alloc_gcse_mem PROTO ((rtx));
-static void free_gcse_mem PROTO ((void));
-static void alloc_reg_set_mem PROTO ((int));
-static void free_reg_set_mem PROTO ((void));
-static void record_one_set PROTO ((int, rtx));
-static void record_set_info PROTO ((rtx, rtx));
-static void compute_sets PROTO ((rtx));
-
-static void hash_scan_insn PROTO ((rtx, int, int));
-static void hash_scan_set PROTO ((rtx, rtx, int));
-static void hash_scan_clobber PROTO ((rtx, rtx));
-static void hash_scan_call PROTO ((rtx, rtx));
-static int want_to_gcse_p PROTO ((rtx));
-static int oprs_unchanged_p PROTO ((rtx, rtx, int));
-static int oprs_anticipatable_p PROTO ((rtx, rtx));
-static int oprs_available_p PROTO ((rtx, rtx));
-static void insert_expr_in_table PROTO ((rtx, enum machine_mode,
- rtx, int, int));
-static void insert_set_in_table PROTO ((rtx, rtx));
-static unsigned int hash_expr PROTO ((rtx, enum machine_mode,
- int *, int));
-static unsigned int hash_expr_1 PROTO ((rtx, enum machine_mode, int *));
-static unsigned int hash_set PROTO ((int, int));
-static int expr_equiv_p PROTO ((rtx, rtx));
-static void record_last_reg_set_info PROTO ((rtx, int));
-static void record_last_mem_set_info PROTO ((rtx));
-static void record_last_set_info PROTO ((rtx, rtx));
-static void compute_hash_table PROTO ((int));
-static void alloc_set_hash_table PROTO ((int));
-static void free_set_hash_table PROTO ((void));
-static void compute_set_hash_table PROTO ((void));
-static void alloc_expr_hash_table PROTO ((int));
-static void free_expr_hash_table PROTO ((void));
-static void compute_expr_hash_table PROTO ((void));
-static void dump_hash_table PROTO ((FILE *, char *, struct expr **,
- int, int));
-static struct expr *lookup_set PROTO ((int, rtx));
-static struct expr *next_set PROTO ((int, struct expr *));
-static void reset_opr_set_tables PROTO ((void));
-static int oprs_not_set_p PROTO ((rtx, rtx));
-static void mark_call PROTO ((rtx));
-static void mark_set PROTO ((rtx, rtx));
-static void mark_clobber PROTO ((rtx, rtx));
-static void mark_oprs_set PROTO ((rtx));
-
-static void alloc_cprop_mem PROTO ((int, int));
-static void free_cprop_mem PROTO ((void));
-static void compute_transp PROTO ((rtx, int, sbitmap *, int));
-static void compute_transpout PROTO ((void));
-static void compute_local_properties PROTO ((sbitmap *, sbitmap *,
- sbitmap *, int));
-static void compute_cprop_avinout PROTO ((void));
-static void compute_cprop_data PROTO ((void));
-static void find_used_regs PROTO ((rtx));
-static int try_replace_reg PROTO ((rtx, rtx, rtx));
-static struct expr *find_avail_set PROTO ((int, rtx));
-static int cprop_insn PROTO ((rtx, int));
-static int cprop PROTO ((int));
-static int one_cprop_pass PROTO ((int, int));
-
-static void alloc_pre_mem PROTO ((int, int));
-static void free_pre_mem PROTO ((void));
-static void compute_pre_data PROTO ((void));
-static int pre_expr_reaches_here_p PROTO ((int, struct expr *,
- int, int, char *));
-static void insert_insn_end_bb PROTO ((struct expr *, int, int));
-static void pre_insert PROTO ((struct expr **));
-static void pre_insert_copy_insn PROTO ((struct expr *, rtx));
-static void pre_insert_copies PROTO ((void));
-static int pre_delete PROTO ((void));
-static int pre_gcse PROTO ((void));
-static int one_pre_gcse_pass PROTO ((int));
-
-static void alloc_code_hoist_mem PROTO ((int, int));
-static void free_code_hoist_mem PROTO ((void));
-static void compute_code_hoist_vbeinout PROTO ((void));
-static void compute_code_hoist_data PROTO ((void));
-static int hoist_expr_reaches_here_p PROTO ((int, int, int, char *));
-static void hoist_code PROTO ((void));
-static int one_code_hoisting_pass PROTO ((void));
-static void alloc_rd_mem PROTO ((int, int));
-static void free_rd_mem PROTO ((void));
-static void handle_rd_kill_set PROTO ((rtx, int, int));
-static void compute_kill_rd PROTO ((void));
-static void compute_rd PROTO ((void));
-static void alloc_avail_expr_mem PROTO ((int, int));
-static void free_avail_expr_mem PROTO ((void));
-static void compute_ae_gen PROTO ((void));
-static int expr_killed_p PROTO ((rtx, int));
-static void compute_ae_kill PROTO ((void));
-static void compute_available PROTO ((void));
-static int expr_reaches_here_p PROTO ((struct occr *, struct expr *,
- int, int, char *));
-static rtx computing_insn PROTO ((struct expr *, rtx));
-static int def_reaches_here_p PROTO ((rtx, rtx));
-static int can_disregard_other_sets PROTO ((struct reg_set**, rtx, int));
-static int handle_avail_expr PROTO ((rtx, struct expr *));
-static int classic_gcse PROTO ((void));
-static int one_classic_gcse_pass PROTO ((int));
-
-static void mems_conflict_for_gcse_p PROTO ((rtx, rtx));
-static int load_killed_in_block_p PROTO ((int, int, rtx, int));
+static void compute_can_copy (void);
+
+static char *gmalloc (unsigned int);
+static char *grealloc (char *, unsigned int);
+static char *gcse_alloc (unsigned long);
+static void alloc_gcse_mem (rtx);
+static void free_gcse_mem (void);
+static void alloc_reg_set_mem (int);
+static void free_reg_set_mem (void);
+static void record_one_set (int, rtx);
+static void record_set_info (rtx, rtx);
+static void compute_sets (rtx);
+
+static void hash_scan_insn (rtx, int, int);
+static void hash_scan_set (rtx, rtx, int);
+static void hash_scan_clobber (rtx, rtx);
+static void hash_scan_call (rtx, rtx);
+static int want_to_gcse_p (rtx);
+static int oprs_unchanged_p (rtx, rtx, int);
+static int oprs_anticipatable_p (rtx, rtx);
+static int oprs_available_p (rtx, rtx);
+static void insert_expr_in_table (rtx, enum machine_mode,
+ rtx, int, int);
+static void insert_set_in_table (rtx, rtx);
+static unsigned int hash_expr (rtx, enum machine_mode,
+ int *, int);
+static unsigned int hash_expr_1 (rtx, enum machine_mode, int *);
+static unsigned int hash_set (int, int);
+static int expr_equiv_p (rtx, rtx);
+static void record_last_reg_set_info (rtx, int);
+static void record_last_mem_set_info (rtx);
+static void record_last_set_info (rtx, rtx);
+static void compute_hash_table (int);
+static void alloc_set_hash_table (int);
+static void free_set_hash_table (void);
+static void compute_set_hash_table (void);
+static void alloc_expr_hash_table (int);
+static void free_expr_hash_table (void);
+static void compute_expr_hash_table (void);
+static void dump_hash_table (FILE *, char *, struct expr **,
+ int, int);
+static struct expr *lookup_set (int, rtx);
+static struct expr *next_set (int, struct expr *);
+static void reset_opr_set_tables (void);
+static int oprs_not_set_p (rtx, rtx);
+static void mark_call (rtx);
+static void mark_set (rtx, rtx);
+static void mark_clobber (rtx, rtx);
+static void mark_oprs_set (rtx);
+
+static void alloc_cprop_mem (int, int);
+static void free_cprop_mem (void);
+static void compute_transp (rtx, int, sbitmap *, int);
+static void compute_transpout (void);
+static void compute_local_properties (sbitmap *, sbitmap *,
+ sbitmap *, int);
+static void compute_cprop_avinout (void);
+static void compute_cprop_data (void);
+static void find_used_regs (rtx);
+static int try_replace_reg (rtx, rtx, rtx);
+static struct expr *find_avail_set (int, rtx);
+static int cprop_insn (rtx, int);
+static int cprop (int);
+static int one_cprop_pass (int, int);
+
+static void alloc_pre_mem (int, int);
+static void free_pre_mem (void);
+static void compute_pre_data (void);
+static int pre_expr_reaches_here_p (int, struct expr *,
+ int, int, char *);
+static void insert_insn_end_bb (struct expr *, int, int);
+static void pre_insert (struct expr **);
+static void pre_insert_copy_insn (struct expr *, rtx);
+static void pre_insert_copies (void);
+static int pre_delete (void);
+static int pre_gcse (void);
+static int one_pre_gcse_pass (int);
+
+static void alloc_code_hoist_mem (int, int);
+static void free_code_hoist_mem (void);
+static void compute_code_hoist_vbeinout (void);
+static void compute_code_hoist_data (void);
+static int hoist_expr_reaches_here_p (int, int, int, char *);
+static void hoist_code (void);
+static int one_code_hoisting_pass (void);
+static void alloc_rd_mem (int, int);
+static void free_rd_mem (void);
+static void handle_rd_kill_set (rtx, int, int);
+static void compute_kill_rd (void);
+static void compute_rd (void);
+static void alloc_avail_expr_mem (int, int);
+static void free_avail_expr_mem (void);
+static void compute_ae_gen (void);
+static int expr_killed_p (rtx, int);
+static void compute_ae_kill (void);
+static void compute_available (void);
+static int expr_reaches_here_p (struct occr *, struct expr *,
+ int, int, char *);
+static rtx computing_insn (struct expr *, rtx);
+static int def_reaches_here_p (rtx, rtx);
+static int can_disregard_other_sets (struct reg_set**, rtx, int);
+static int handle_avail_expr (rtx, struct expr *);
+static int classic_gcse (void);
+static int one_classic_gcse_pass (int);
+
+static void mems_conflict_for_gcse_p (rtx, rtx);
+static int load_killed_in_block_p (int, int, rtx, int);
/* Entry point for global common subexpression elimination.
diff --git a/gcc/genattr.c b/gcc/genattr.c
index d50cab5..3b3ab2b 100755
--- a/gcc/genattr.c
+++ b/gcc/genattr.c
@@ -25,69 +25,20 @@ Boston, MA 02111-1307, USA. */
#include "rtl.h"
#include "obstack.h"
-static struct obstack obstack;
-struct obstack *rtl_obstack = &obstack;
-
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
- ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+static struct obstack obstack;
+struct obstack *rtl_obstack = &obstack;
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
-/* A range of values. */
-
-struct range
-{
- int min;
- int max;
-};
-
-/* Record information about each function unit mentioned in a
- DEFINE_FUNCTION_UNIT. */
-
-struct function_unit
-{
- char *name; /* Function unit name. */
- struct function_unit *next; /* Next function unit. */
- int multiplicity; /* Number of units of this type. */
- int simultaneity; /* Maximum number of simultaneous insns
- on this function unit or 0 if unlimited. */
- struct range ready_cost; /* Range of ready cost values. */
- struct range issue_delay; /* Range of issue delay values. */
-};
-
-static void extend_range PROTO((struct range *, int, int));
-static void init_range PROTO((struct range *));
-static void write_upcase PROTO((char *));
-static void gen_attr PROTO((rtx));
-static void write_units PROTO((int, struct range *, struct range *,
- struct range *, struct range *,
- struct range *));
-static void
-extend_range (range, min, max)
- struct range *range;
- int min;
- int max;
-{
- if (range->min > min) range->min = min;
- if (range->max < max) range->max = max;
-}
-
-static void
-init_range (range)
- struct range *range;
-{
- range->min = 100000;
- range->max = -1;
-}
+static void write_upcase (char *);
+static void gen_attr (rtx);
static void
-write_upcase (str)
- char *str;
+write_upcase (char *str)
{
for (; *str; str++)
if (*str >= 'a' && *str <= 'z')
@@ -97,8 +48,7 @@ write_upcase (str)
}
static void
-gen_attr (attr)
- rtx attr;
+gen_attr (rtx attr)
{
char *p;
@@ -137,107 +87,21 @@ gen_attr (attr)
if (! strcmp (XSTR (attr, 0), "length"))
{
printf ("extern void init_lengths ();\n");
- printf ("extern void shorten_branches PROTO((rtx));\n");
- printf ("extern int insn_default_length PROTO((rtx));\n");
- printf ("extern int insn_variable_length_p PROTO((rtx));\n");
- printf ("extern int insn_current_length PROTO((rtx));\n\n");
+ printf ("extern void shorten_branches (rtx);\n");
+ printf ("extern int insn_default_length (rtx);\n");
+ printf ("extern int insn_variable_length_p (rtx);\n");
+ printf ("extern int insn_current_length (rtx);\n\n");
printf ("extern int *insn_addresses;\n");
printf ("extern int insn_current_address;\n\n");
}
}
static void
-write_units (num_units, multiplicity, simultaneity,
- ready_cost, issue_delay, blockage)
- int num_units;
- struct range *multiplicity;
- struct range *simultaneity;
- struct range *ready_cost;
- struct range *issue_delay;
- struct range *blockage;
+fatal(const char *format, ...)
{
- int i, q_size;
-
- printf ("#define INSN_SCHEDULING\n\n");
- printf ("extern int result_ready_cost PROTO((rtx));\n");
- printf ("extern int function_units_used PROTO((rtx));\n\n");
- printf ("extern struct function_unit_desc\n");
- printf ("{\n");
- printf (" char *name;\n");
- printf (" int bitmask;\n");
- printf (" int multiplicity;\n");
- printf (" int simultaneity;\n");
- printf (" int default_cost;\n");
- printf (" int max_issue_delay;\n");
- printf (" int (*ready_cost_function) ();\n");
- printf (" int (*conflict_cost_function) ();\n");
- printf (" int max_blockage;\n");
- printf (" unsigned int (*blockage_range_function) ();\n");
- printf (" int (*blockage_function) ();\n");
- printf ("} function_units[];\n\n");
- printf ("#define FUNCTION_UNITS_SIZE %d\n", num_units);
- printf ("#define MIN_MULTIPLICITY %d\n", multiplicity->min);
- printf ("#define MAX_MULTIPLICITY %d\n", multiplicity->max);
- printf ("#define MIN_SIMULTANEITY %d\n", simultaneity->min);
- printf ("#define MAX_SIMULTANEITY %d\n", simultaneity->max);
- printf ("#define MIN_READY_COST %d\n", ready_cost->min);
- printf ("#define MAX_READY_COST %d\n", ready_cost->max);
- printf ("#define MIN_ISSUE_DELAY %d\n", issue_delay->min);
- printf ("#define MAX_ISSUE_DELAY %d\n", issue_delay->max);
- printf ("#define MIN_BLOCKAGE %d\n", blockage->min);
- printf ("#define MAX_BLOCKAGE %d\n", blockage->max);
- for (i = 0; (1 << i) < blockage->max; i++)
- ;
- printf ("#define BLOCKAGE_BITS %d\n", i + 1);
-
- /* INSN_QUEUE_SIZE is a power of two larger than MAX_BLOCKAGE and
- MAX_READY_COST. This is the longest time an isnsn may be queued. */
- i = MAX (blockage->max, ready_cost->max);
- for (q_size = 1; q_size <= i; q_size <<= 1)
- ;
- printf ("#define INSN_QUEUE_SIZE %d\n", q_size);
-}
-
-PTR
-xmalloc (size)
- size_t size;
-{
- register PTR val = (PTR) malloc (size);
-
- if (val == 0)
- fatal ("virtual memory exhausted");
- return val;
-}
-
-PTR
-xrealloc (old, size)
- PTR old;
- size_t size;
-{
- register PTR ptr;
- if (old)
- ptr = (PTR) realloc (old, size);
- else
- ptr = (PTR) malloc (size);
- if (!ptr)
- fatal ("virtual memory exhausted");
- return ptr;
-}
-
-static void
-fatal VPROTO ((const char *format, ...))
-{
-#ifndef ANSI_PROTOTYPES
- const char *format;
-#endif
va_list ap;
- VA_START (ap, format);
-
-#ifndef ANSI_PROTOTYPES
- format = va_arg (ap, const char *);
-#endif
-
+ va_start (ap, format);
fprintf (stderr, "genattr: ");
vfprintf (stderr, format, ap);
va_end (ap);
@@ -245,37 +109,23 @@ fatal VPROTO ((const char *format, ...))
exit (EXIT_FAILURE);
}
-/* More 'friendly' abort that prints the line and file.
- config.h can #define abort fancy_abort if you like that sort of thing. */
-
-void
-fancy_abort ()
+void *
+xmalloc(size_t size)
{
- fatal ("Internal gcc abort.");
+ void *val = malloc(size);
+
+ if (val == NULL)
+ fatal ("virtual memory exhausted");
+
+ return val;
}
-
+
int
-main (argc, argv)
- int argc;
- char **argv;
+main(int argc, char **argv)
{
rtx desc;
FILE *infile;
- register int c;
- int have_delay = 0;
- int have_annul_true = 0;
- int have_annul_false = 0;
- int num_units = 0;
- struct range all_simultaneity, all_multiplicity;
- struct range all_ready_cost, all_issue_delay, all_blockage;
- struct function_unit *units = 0, *unit;
- int i;
-
- init_range (&all_multiplicity);
- init_range (&all_simultaneity);
- init_range (&all_ready_cost);
- init_range (&all_issue_delay);
- init_range (&all_blockage);
+ int c;
obstack_init (rtl_obstack);
@@ -312,120 +162,6 @@ from the machine description file `md'. */\n\n");
desc = read_rtx (infile);
if (GET_CODE (desc) == DEFINE_ATTR)
gen_attr (desc);
-
- else if (GET_CODE (desc) == DEFINE_DELAY)
- {
- if (! have_delay)
- {
- printf ("#define DELAY_SLOTS\n");
- printf ("extern int num_delay_slots PROTO((rtx));\n");
- printf ("extern int eligible_for_delay PROTO((rtx, int, rtx, int));\n\n");
- printf ("extern int const_num_delay_slots PROTO((rtx));\n\n");
- have_delay = 1;
- }
-
- for (i = 0; i < XVECLEN (desc, 1); i += 3)
- {
- if (XVECEXP (desc, 1, i + 1) && ! have_annul_true)
- {
- printf ("#define ANNUL_IFTRUE_SLOTS\n");
- printf ("extern int eligible_for_annul_true ();\n");
- have_annul_true = 1;
- }
-
- if (XVECEXP (desc, 1, i + 2) && ! have_annul_false)
- {
- printf ("#define ANNUL_IFFALSE_SLOTS\n");
- printf ("extern int eligible_for_annul_false ();\n");
- have_annul_false = 1;
- }
- }
- }
-
- else if (GET_CODE (desc) == DEFINE_FUNCTION_UNIT)
- {
- char *name = XSTR (desc, 0);
- int multiplicity = XINT (desc, 1);
- int simultaneity = XINT (desc, 2);
- int ready_cost = MAX (XINT (desc, 4), 1);
- int issue_delay = MAX (XINT (desc, 5), 1);
- int issueexp_p = (XVEC (desc, 6) != 0);
-
- for (unit = units; unit; unit = unit->next)
- if (strcmp (unit->name, name) == 0)
- break;
-
- if (unit == 0)
- {
- int len = strlen (name) + 1;
- unit = (struct function_unit *)
- alloca (sizeof (struct function_unit));
- unit->name = (char *) alloca (len);
- copy_memory (name, unit->name, len);
- unit->multiplicity = multiplicity;
- unit->simultaneity = simultaneity;
- unit->ready_cost.min = unit->ready_cost.max = ready_cost;
- unit->issue_delay.min = unit->issue_delay.max = issue_delay;
- unit->next = units;
- units = unit;
- num_units++;
-
- extend_range (&all_multiplicity, multiplicity, multiplicity);
- extend_range (&all_simultaneity, simultaneity, simultaneity);
- }
- else if (unit->multiplicity != multiplicity
- || unit->simultaneity != simultaneity)
- fatal ("Differing specifications given for `%s' function unit.",
- unit->name);
-
- extend_range (&unit->ready_cost, ready_cost, ready_cost);
- extend_range (&unit->issue_delay,
- issueexp_p ? 1 : issue_delay, issue_delay);
- extend_range (&all_ready_cost,
- unit->ready_cost.min, unit->ready_cost.max);
- extend_range (&all_issue_delay,
- unit->issue_delay.min, unit->issue_delay.max);
- }
- }
-
- if (num_units > 0)
- {
- /* Compute the range of blockage cost values. See genattrtab.c
- for the derivation. BLOCKAGE (E,C) when SIMULTANEITY is zero is
-
- MAX (ISSUE-DELAY (E,C),
- READY-COST (E) - (READY-COST (C) - 1))
-
- and otherwise
-
- MAX (ISSUE-DELAY (E,C),
- READY-COST (E) - (READY-COST (C) - 1),
- READY-COST (E) - FILL-TIME) */
-
- for (unit = units; unit; unit = unit->next)
- {
- struct range blockage;
-
- blockage = unit->issue_delay;
- blockage.max = MAX (unit->ready_cost.max
- - (unit->ready_cost.min - 1),
- blockage.max);
- blockage.min = MAX (1, blockage.min);
-
- if (unit->simultaneity != 0)
- {
- int fill_time = ((unit->simultaneity - 1)
- * unit->issue_delay.min);
- blockage.min = MAX (unit->ready_cost.min - fill_time,
- blockage.min);
- blockage.max = MAX (unit->ready_cost.max - fill_time,
- blockage.max);
- }
- extend_range (&all_blockage, blockage.min, blockage.max);
- }
-
- write_units (num_units, &all_multiplicity, &all_simultaneity,
- &all_ready_cost, &all_issue_delay, &all_blockage);
}
/* Output flag masks for use by reorg.
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index 6911f4b..458e5b1 100755
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -119,9 +119,9 @@ struct obstack *temp_obstack = &obstack2;
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* enough space to reserve for printing out ints */
#define MAX_DIGITS (HOST_BITS_PER_INT * 3 / 10 + 3)
@@ -361,99 +361,99 @@ int optimize = 0;
struct _global_rtl global_rtl;
-static void attr_hash_add_rtx PROTO((int, rtx));
-static void attr_hash_add_string PROTO((int, char *));
-static rtx attr_rtx PVPROTO((enum rtx_code, ...));
-static char *attr_printf PVPROTO((int, const char *, ...))
+static void attr_hash_add_rtx (int, rtx);
+static void attr_hash_add_string (int, char *);
+static rtx attr_rtx (enum rtx_code, ...);
+static char *attr_printf (int, const char *, ...)
ATTRIBUTE_PRINTF_2;
-static char *attr_string PROTO((const char *, int));
-static rtx check_attr_test PROTO((rtx, int));
-static rtx check_attr_value PROTO((rtx, struct attr_desc *));
-static rtx convert_set_attr_alternative PROTO((rtx, int, int));
-static rtx convert_set_attr PROTO((rtx, int, int));
-static void check_defs PROTO((void));
+static char *attr_string (const char *, int);
+static rtx check_attr_test (rtx, int);
+static rtx check_attr_value (rtx, struct attr_desc *);
+static rtx convert_set_attr_alternative (rtx, int, int);
+static rtx convert_set_attr (rtx, int, int);
+static void check_defs (void);
#if 0
-static rtx convert_const_symbol_ref PROTO((rtx, struct attr_desc *));
+static rtx convert_const_symbol_ref (rtx, struct attr_desc *);
#endif
-static rtx make_canonical PROTO((struct attr_desc *, rtx));
-static struct attr_value *get_attr_value PROTO((rtx, struct attr_desc *, int));
-static rtx copy_rtx_unchanging PROTO((rtx));
-static rtx copy_boolean PROTO((rtx));
-static void expand_delays PROTO((void));
-static rtx operate_exp PROTO((enum operator, rtx, rtx));
-static void expand_units PROTO((void));
-static rtx simplify_knowing PROTO((rtx, rtx));
-static rtx encode_units_mask PROTO((rtx));
-static void fill_attr PROTO((struct attr_desc *));
+static rtx make_canonical (struct attr_desc *, rtx);
+static struct attr_value *get_attr_value (rtx, struct attr_desc *, int);
+static rtx copy_rtx_unchanging (rtx);
+static rtx copy_boolean (rtx);
+static void expand_delays (void);
+static rtx operate_exp (enum operator, rtx, rtx);
+static void expand_units (void);
+static rtx simplify_knowing (rtx, rtx);
+static rtx encode_units_mask (rtx);
+static void fill_attr (struct attr_desc *);
/* dpx2 compiler chokes if we specify the arg types of the args. */
-static rtx substitute_address PROTO((rtx, rtx (*) (), rtx (*) ()));
-static void make_length_attrs PROTO((void));
-static rtx identity_fn PROTO((rtx));
-static rtx zero_fn PROTO((rtx));
-static rtx one_fn PROTO((rtx));
-static rtx max_fn PROTO((rtx));
-static void write_length_unit_log PROTO ((void));
-static rtx simplify_cond PROTO((rtx, int, int));
+static rtx substitute_address (rtx, rtx (*) (), rtx (*) ());
+static void make_length_attrs (void);
+static rtx identity_fn (rtx);
+static rtx zero_fn (rtx);
+static rtx one_fn (rtx);
+static rtx max_fn (rtx);
+static void write_length_unit_log (void);
+static rtx simplify_cond (rtx, int, int);
#if 0
-static rtx simplify_by_alternatives PROTO((rtx, int, int));
+static rtx simplify_by_alternatives (rtx, int, int);
#endif
-static rtx simplify_by_exploding PROTO((rtx));
-static int find_and_mark_used_attributes PROTO((rtx, rtx *, int *));
-static void unmark_used_attributes PROTO((rtx, struct dimension *, int));
-static int add_values_to_cover PROTO((struct dimension *));
-static int increment_current_value PROTO((struct dimension *, int));
-static rtx test_for_current_value PROTO((struct dimension *, int));
-static rtx simplify_with_current_value PROTO((rtx, struct dimension *, int));
-static rtx simplify_with_current_value_aux PROTO((rtx));
-static void clear_struct_flag PROTO((rtx));
-static int count_sub_rtxs PROTO((rtx, int));
-static void remove_insn_ent PROTO((struct attr_value *, struct insn_ent *));
-static void insert_insn_ent PROTO((struct attr_value *, struct insn_ent *));
-static rtx insert_right_side PROTO((enum rtx_code, rtx, rtx, int, int));
-static rtx make_alternative_compare PROTO((int));
-static int compute_alternative_mask PROTO((rtx, enum rtx_code));
-static rtx evaluate_eq_attr PROTO((rtx, rtx, int, int));
-static rtx simplify_and_tree PROTO((rtx, rtx *, int, int));
-static rtx simplify_or_tree PROTO((rtx, rtx *, int, int));
-static rtx simplify_test_exp PROTO((rtx, int, int));
-static void optimize_attrs PROTO((void));
-static void gen_attr PROTO((rtx));
-static int count_alternatives PROTO((rtx));
-static int compares_alternatives_p PROTO((rtx));
-static int contained_in_p PROTO((rtx, rtx));
-static void gen_insn PROTO((rtx));
-static void gen_delay PROTO((rtx));
-static void gen_unit PROTO((rtx));
-static void write_test_expr PROTO((rtx, int));
-static int max_attr_value PROTO((rtx));
-static int or_attr_value PROTO((rtx));
-static void walk_attr_value PROTO((rtx));
-static void write_attr_get PROTO((struct attr_desc *));
-static rtx eliminate_known_true PROTO((rtx, rtx, int, int));
-static void write_attr_set PROTO((struct attr_desc *, int, rtx,
+static rtx simplify_by_exploding (rtx);
+static int find_and_mark_used_attributes (rtx, rtx *, int *);
+static void unmark_used_attributes (rtx, struct dimension *, int);
+static int add_values_to_cover (struct dimension *);
+static int increment_current_value (struct dimension *, int);
+static rtx test_for_current_value (struct dimension *, int);
+static rtx simplify_with_current_value (rtx, struct dimension *, int);
+static rtx simplify_with_current_value_aux (rtx);
+static void clear_struct_flag (rtx);
+static int count_sub_rtxs (rtx, int);
+static void remove_insn_ent (struct attr_value *, struct insn_ent *);
+static void insert_insn_ent (struct attr_value *, struct insn_ent *);
+static rtx insert_right_side (enum rtx_code, rtx, rtx, int, int);
+static rtx make_alternative_compare (int);
+static int compute_alternative_mask (rtx, enum rtx_code);
+static rtx evaluate_eq_attr (rtx, rtx, int, int);
+static rtx simplify_and_tree (rtx, rtx *, int, int);
+static rtx simplify_or_tree (rtx, rtx *, int, int);
+static rtx simplify_test_exp (rtx, int, int);
+static void optimize_attrs (void);
+static void gen_attr (rtx);
+static int count_alternatives (rtx);
+static int compares_alternatives_p (rtx);
+static int contained_in_p (rtx, rtx);
+static void gen_insn (rtx);
+static void gen_delay (rtx);
+static void gen_unit (rtx);
+static void write_test_expr (rtx, int);
+static int max_attr_value (rtx);
+static int or_attr_value (rtx);
+static void walk_attr_value (rtx);
+static void write_attr_get (struct attr_desc *);
+static rtx eliminate_known_true (rtx, rtx, int, int);
+static void write_attr_set (struct attr_desc *, int, rtx,
const char *, const char *, rtx,
- int, int));
-static void write_attr_case PROTO((struct attr_desc *, struct attr_value *,
- int, const char *, const char *, int, rtx));
-static void write_unit_name PROTO((const char *, int, const char *));
-static void write_attr_valueq PROTO((struct attr_desc *, char *));
-static void write_attr_value PROTO((struct attr_desc *, rtx));
-static void write_upcase PROTO((char *));
-static void write_indent PROTO((int));
-static void write_eligible_delay PROTO((const char *));
-static void write_function_unit_info PROTO((void));
-static void write_complex_function PROTO((struct function_unit *, const char *,
- const char *));
-static int write_expr_attr_cache PROTO((rtx, struct attr_desc *));
-static void write_toplevel_expr PROTO((rtx));
-static int n_comma_elts PROTO((char *));
-static char *next_comma_elt PROTO((char **));
-static struct attr_desc *find_attr PROTO((const char *, int));
-static void make_internal_attr PROTO((const char *, rtx, int));
-static struct attr_value *find_most_used PROTO((struct attr_desc *));
-static rtx find_single_value PROTO((struct attr_desc *));
-static rtx make_numeric_value PROTO((int));
-static void extend_range PROTO((struct range *, int, int));
+ int, int);
+static void write_attr_case (struct attr_desc *, struct attr_value *,
+ int, const char *, const char *, int, rtx);
+static void write_unit_name (const char *, int, const char *);
+static void write_attr_valueq (struct attr_desc *, char *);
+static void write_attr_value (struct attr_desc *, rtx);
+static void write_upcase (char *);
+static void write_indent (int);
+static void write_eligible_delay (const char *);
+static void write_function_unit_info (void);
+static void write_complex_function (struct function_unit *, const char *,
+ const char *);
+static int write_expr_attr_cache (rtx, struct attr_desc *);
+static void write_toplevel_expr (rtx);
+static int n_comma_elts (char *);
+static char *next_comma_elt (char **);
+static struct attr_desc *find_attr (const char *, int);
+static void make_internal_attr (const char *, rtx, int);
+static struct attr_value *find_most_used (struct attr_desc *);
+static rtx find_single_value (struct attr_desc *);
+static rtx make_numeric_value (int);
+static void extend_range (struct range *, int, int);
#define oballoc(size) obstack_alloc (hash_obstack, size)
@@ -535,7 +535,7 @@ attr_hash_add_string (hashcode, str)
/*VARARGS1*/
static rtx
-attr_rtx VPROTO((enum rtx_code code, ...))
+attr_rtx (enum rtx_code code, ...)
{
#ifndef ANSI_PROTOTYPES
enum rtx_code code;
@@ -732,7 +732,7 @@ attr_rtx VPROTO((enum rtx_code code, ...))
/*VARARGS2*/
static char *
-attr_printf VPROTO((register int len, const char *fmt, ...))
+attr_printf (register int len, const char *fmt, ...)
{
#ifndef ANSI_PROTOTYPES
register int len;
@@ -2384,8 +2384,8 @@ make_length_attrs ()
static const char *new_names[] = {"*insn_default_length",
"*insn_variable_length_p",
"*insn_current_length"};
- static rtx (*no_address_fn[]) PROTO((rtx)) = {identity_fn, zero_fn, zero_fn};
- static rtx (*address_fn[]) PROTO((rtx)) = {max_fn, one_fn, identity_fn};
+ static rtx (*no_address_fn[]) (rtx) = {identity_fn, zero_fn, zero_fn};
+ static rtx (*address_fn[]) (rtx) = {max_fn, one_fn, identity_fn};
size_t i;
struct attr_desc *length_attr, *new_attr;
struct attr_value *av, *new_av;
@@ -5813,7 +5813,7 @@ copy_rtx_unchanging (orig)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/gencodes.c b/gcc/gencodes.c
index 4976e1a..818cef7 100755
--- a/gcc/gencodes.c
+++ b/gcc/gencodes.c
@@ -33,16 +33,16 @@ struct obstack *rtl_obstack = &obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
static int insn_code_number;
-static void gen_insn PROTO((rtx));
+static void gen_insn (rtx);
static void
gen_insn (insn)
@@ -83,7 +83,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genconfig.c b/gcc/genconfig.c
index 8da0cb2..defc3d5 100755
--- a/gcc/genconfig.c
+++ b/gcc/genconfig.c
@@ -53,15 +53,15 @@ static int max_insns_per_split = 1;
static int clobbers_seen_this_insn;
static int dup_operands_seen_this_insn;
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
-static void walk_insn_part PROTO((rtx, int, int));
-static void gen_insn PROTO((rtx));
-static void gen_expand PROTO((rtx));
-static void gen_split PROTO((rtx));
-static void gen_peephole PROTO((rtx));
+static void walk_insn_part (rtx, int, int);
+static void gen_insn (rtx);
+static void gen_expand (rtx);
+static void gen_split (rtx);
+static void gen_peephole (rtx);
/* RECOG_P will be non-zero if this pattern was seen in a context where it will
be used to recognize, rather than just generate an insn.
@@ -296,7 +296,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genemit.c b/gcc/genemit.c
index a07e607..ed85fb8 100755
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -30,9 +30,9 @@ struct obstack *rtl_obstack = &obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
@@ -63,15 +63,15 @@ struct clobber_ent
struct clobber_ent *next;
};
-static void max_operand_1 PROTO((rtx));
-static int max_operand_vec PROTO((rtx, int));
-static void print_code PROTO((RTX_CODE));
-static void gen_exp PROTO((rtx));
-static void gen_insn PROTO((rtx));
-static void gen_expand PROTO((rtx));
-static void gen_split PROTO((rtx));
-static void output_add_clobbers PROTO((void));
-static void output_init_mov_optab PROTO((void));
+static void max_operand_1 (rtx);
+static int max_operand_vec (rtx, int);
+static void print_code (RTX_CODE);
+static void gen_exp (rtx);
+static void gen_insn (rtx);
+static void gen_expand (rtx);
+static void gen_split (rtx);
+static void output_add_clobbers (void);
+static void output_init_mov_optab (void);
static void
@@ -706,7 +706,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genextract.c b/gcc/genextract.c
index 6ea788a..7704b0e 100755
--- a/gcc/genextract.c
+++ b/gcc/genextract.c
@@ -95,14 +95,14 @@ static int dupnums[MAX_DUP_OPERANDS];
static struct code_ptr *peepholes;
-static void gen_insn PROTO ((rtx));
-static void walk_rtx PROTO ((rtx, const char *));
-static void print_path PROTO ((char *));
-static void fatal PVPROTO ((const char *, ...))
+static void gen_insn (rtx);
+static void walk_rtx (rtx, const char *);
+static void print_path (char *);
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-static char *copystr PROTO ((const char *));
+static char *copystr (const char *);
static void mybzero ();
-void fancy_abort PROTO ((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
static void
gen_insn (insn)
@@ -373,7 +373,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genflags.c b/gcc/genflags.c
index eef32ec..475655d 100755
--- a/gcc/genflags.c
+++ b/gcc/genflags.c
@@ -33,9 +33,9 @@ struct obstack *rtl_obstack = &obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* Names for patterns. Need to allow linking with print-rtl. */
char **insn_name_ptr;
@@ -46,10 +46,10 @@ static struct obstack call_obstack, normal_obstack;
/* Max size of names encountered. */
static int max_id_len;
-static int num_operands PROTO((rtx));
-static void gen_proto PROTO((rtx));
-static void gen_nonproto PROTO((rtx));
-static void gen_insn PROTO((rtx));
+static int num_operands (rtx);
+static void gen_proto (rtx);
+static void gen_nonproto (rtx);
+static void gen_insn (rtx);
/* Count the number of match_operand's found. */
@@ -97,7 +97,7 @@ gen_proto (insn)
rtx insn;
{
int num = num_operands (insn);
- printf ("extern rtx gen_%-*s PROTO((", max_id_len, XSTR (insn, 0));
+ printf ("extern rtx gen_%-*s (", max_id_len, XSTR (insn, 0));
if (num == 0)
printf ("void");
@@ -109,7 +109,7 @@ gen_proto (insn)
printf ("rtx");
}
- printf ("));\n");
+ printf (");\n");
}
/* Print out a function declaration without a prototype. */
@@ -203,7 +203,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/gengenrtl.c b/gcc/gengenrtl.c
index 99af3d4..02cf8d3 100755
--- a/gcc/gengenrtl.c
+++ b/gcc/gengenrtl.c
@@ -40,17 +40,17 @@ struct rtx_definition defs[] =
const char *formats[NUM_RTX_CODE];
-static const char *type_from_format PROTO((int));
-static const char *accessor_from_format PROTO((int));
-static int special_format PROTO((const char *));
-static int special_rtx PROTO((int));
-static void find_formats PROTO((void));
-static void gendecl PROTO((FILE *, const char *));
-static void genmacro PROTO((FILE *, int));
-static void gendef PROTO((FILE *, const char *));
-static void genlegend PROTO((FILE *));
-static void genheader PROTO((FILE *));
-static void gencode PROTO((FILE *));
+static const char *type_from_format (int);
+static const char *accessor_from_format (int);
+static int special_format (const char *);
+static int special_rtx (int);
+static void find_formats (void);
+static void gendecl (FILE *, const char *);
+static void genmacro (FILE *, int);
+static void gendef (FILE *, const char *);
+static void genlegend (FILE *);
+static void genheader (FILE *);
+static void gencode (FILE *);
static const char *
type_from_format (c)
@@ -158,12 +158,12 @@ gendecl (f, format)
const char *p;
int i;
- fprintf (f, "extern rtx gen_rtx_fmt_%s PROTO((RTX_CODE, enum machine_mode mode",
+ fprintf (f, "extern rtx gen_rtx_fmt_%s (RTX_CODE, enum machine_mode mode",
format);
for (p = format, i = 0; *p ; ++p)
if (*p != '0')
fprintf (f, ", %s arg%d", type_from_format (*p), i++);
- fprintf (f, "));\n");
+ fprintf (f, ");\n");
}
static void
@@ -264,9 +264,8 @@ gencode (f)
fputs ("#include \"obstack.h\"\n", f);
fputs ("#include \"rtl.h\"\n\n", f);
fputs ("extern struct obstack *rtl_obstack;\n\n", f);
- fputs ("static rtx obstack_alloc_rtx PROTO((int length));\n", f);
- fputs ("static rtx obstack_alloc_rtx (length)\n", f);
- fputs (" register int length;\n{\n", f);
+ fputs ("static rtx obstack_alloc_rtx(int length)\n", f);
+ fputs ("{\n", f);
fputs (" rtx rt = (rtx) obstack_alloc (rtl_obstack, length);\n\n", f);
fputs (" zero_memory((char *) rt, sizeof(struct rtx_def) - sizeof(rtunion));\n\n", f);
fputs (" return rt;\n}\n\n", f);
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index abeb109..f2a6fed 100755
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -30,9 +30,9 @@ struct obstack *rtl_obstack = &obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* Many parts of GCC use arrays that are indexed by machine mode and
contain the insn codes for pattern in the MD file that perform a given
@@ -127,7 +127,7 @@ const char *optabs[] =
/* Allow linking with print-rtl.c. */
char **insn_name_ptr;
-static void gen_insn PROTO((rtx));
+static void gen_insn (rtx);
static void
gen_insn (insn)
@@ -311,7 +311,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index 7774d9c..17eb476 100755
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -107,13 +107,13 @@ struct obstack *rtl_obstack = &obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
-static void error PVPROTO ((const char *, ...)) ATTRIBUTE_PRINTF_1;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
+static void error (const char *, ...) ATTRIBUTE_PRINTF_1;
static void mybcopy ();
static void mybzero ();
-static int n_occurrences PROTO((int, char *));
+static int n_occurrences (int, char *);
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
@@ -172,17 +172,17 @@ int have_constraints;
static int have_error;
-static char * name_for_index PROTO((int));
-static void output_prologue PROTO((void));
-static void output_epilogue PROTO((void));
-static void scan_operands PROTO((rtx, int, int));
-static void process_template PROTO((struct data *, char *));
-static void validate_insn_alternatives PROTO((struct data *));
-static void gen_insn PROTO((rtx));
-static void gen_peephole PROTO((rtx));
-static void gen_expand PROTO((rtx));
-static void gen_split PROTO((rtx));
-static int n_occurrences PROTO((int, char *));
+static char * name_for_index (int);
+static void output_prologue (void);
+static void output_epilogue (void);
+static void scan_operands (rtx, int, int);
+static void process_template (struct data *, char *);
+static void validate_insn_alternatives (struct data *);
+static void gen_insn (rtx);
+static void gen_peephole (rtx);
+static void gen_expand (rtx);
+static void gen_split (rtx);
+static int n_occurrences (int, char *);
static char *
name_for_index (index)
@@ -950,7 +950,7 @@ mybcopy (b1, b2, length)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
@@ -980,7 +980,7 @@ fancy_abort ()
}
static void
-error VPROTO ((const char *format, ...))
+error (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genpeep.c b/gcc/genpeep.c
index 91acc75..473ba70 100755
--- a/gcc/genpeep.c
+++ b/gcc/genpeep.c
@@ -46,9 +46,9 @@ struct link
int vecelt;
};
-static void fatal PVPROTO ((const char *, ...))
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
static int max_opno;
@@ -61,10 +61,10 @@ static int n_operands;
static int insn_code_number = 0;
-static void gen_peephole PROTO((rtx));
-static void match_rtx PROTO((rtx, struct link *, int));
-static void print_path PROTO((struct link *));
-static void print_code PROTO((RTX_CODE));
+static void gen_peephole (rtx);
+static void match_rtx (rtx, struct link *, int);
+static void print_path (struct link *);
+static void print_code (RTX_CODE);
static void
gen_peephole (peep)
@@ -411,7 +411,7 @@ xrealloc (old, size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index de77be5..69cef92 100755
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -169,35 +169,35 @@ static struct pred_table
#define NUM_KNOWN_PREDS (sizeof preds / sizeof preds[0])
-static struct decision_head make_insn_sequence PROTO((rtx, enum routine_type));
-static struct decision *add_to_sequence PROTO((rtx, struct decision_head *,
- const char *));
-static int not_both_true PROTO((struct decision *, struct decision *,
- int));
-static int position_merit PROTO((struct decision *, enum machine_mode,
- enum rtx_code));
-static struct decision_head merge_trees PROTO((struct decision_head,
- struct decision_head));
-static int break_out_subroutines PROTO((struct decision_head,
- enum routine_type, int));
-static void write_subroutine PROTO((struct decision *, enum routine_type));
-static void write_tree_1 PROTO((struct decision *, const char *,
- struct decision *, enum routine_type));
-static void print_code PROTO((enum rtx_code));
-static int same_codes PROTO((struct decision *, enum rtx_code));
-static void clear_codes PROTO((struct decision *));
-static int same_modes PROTO((struct decision *, enum machine_mode));
-static void clear_modes PROTO((struct decision *));
-static void write_tree PROTO((struct decision *, const char *,
+static struct decision_head make_insn_sequence (rtx, enum routine_type);
+static struct decision *add_to_sequence (rtx, struct decision_head *,
+ const char *);
+static int not_both_true (struct decision *, struct decision *,
+ int);
+static int position_merit (struct decision *, enum machine_mode,
+ enum rtx_code);
+static struct decision_head merge_trees (struct decision_head,
+ struct decision_head);
+static int break_out_subroutines (struct decision_head,
+ enum routine_type, int);
+static void write_subroutine (struct decision *, enum routine_type);
+static void write_tree_1 (struct decision *, const char *,
+ struct decision *, enum routine_type);
+static void print_code (enum rtx_code);
+static int same_codes (struct decision *, enum rtx_code);
+static void clear_codes (struct decision *);
+static int same_modes (struct decision *, enum machine_mode);
+static void clear_modes (struct decision *);
+static void write_tree (struct decision *, const char *,
struct decision *, int,
- enum routine_type));
-static void change_state PROTO((const char *, const char *, int));
-static char *copystr PROTO((const char *));
-static void mybzero PROTO((char *, unsigned));
-static void mybcopy PROTO((char *, char *, unsigned));
-static void fatal PVPROTO((const char *, ...))
+ enum routine_type);
+static void change_state (const char *, const char *, int);
+static char *copystr (const char *);
+static void mybzero (char *, unsigned);
+static void mybcopy (char *, char *, unsigned);
+static void fatal (const char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fancy_abort PROTO((void)) ATTRIBUTE_NORETURN;
+void fancy_abort (void) ATTRIBUTE_NORETURN;
/* Construct and return a sequence of decisions
that will recognize INSN.
@@ -1670,7 +1670,7 @@ xmalloc(size_t size)
}
static void
-fatal VPROTO ((const char *format, ...))
+fatal (const char *format, ...)
{
#ifndef ANSI_PROTOTYPES
const char *format;
diff --git a/gcc/global.c b/gcc/global.c
index 590935a..076440f 100755
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -263,24 +263,24 @@ static int n_regs_set;
static HARD_REG_SET eliminable_regset;
-static int allocno_compare PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static void global_conflicts PROTO((void));
-static void expand_preferences PROTO((void));
-static void prune_preferences PROTO((void));
-static void find_reg PROTO((int, HARD_REG_SET, int, int, int));
-static void record_one_conflict PROTO((int));
-static void record_conflicts PROTO((int *, int));
-static void mark_reg_store PROTO((rtx, rtx));
-static void mark_reg_clobber PROTO((rtx, rtx));
-static void mark_reg_conflicts PROTO((rtx));
-static void mark_reg_death PROTO((rtx));
-static void mark_reg_live_nc PROTO((int, enum machine_mode));
-static void set_preference PROTO((rtx, rtx));
-static void dump_conflicts PROTO((FILE *));
-static void reg_becomes_live PROTO((rtx, rtx));
-static void reg_dies PROTO((int, enum machine_mode));
-static void build_insn_chain PROTO((rtx));
-static void global_init PROTO((FILE *));
+static int allocno_compare (const GENERIC_PTR, const GENERIC_PTR);
+static void global_conflicts (void);
+static void expand_preferences (void);
+static void prune_preferences (void);
+static void find_reg (int, HARD_REG_SET, int, int, int);
+static void record_one_conflict (int);
+static void record_conflicts (int *, int);
+static void mark_reg_store (rtx, rtx);
+static void mark_reg_clobber (rtx, rtx);
+static void mark_reg_conflicts (rtx);
+static void mark_reg_death (rtx);
+static void mark_reg_live_nc (int, enum machine_mode);
+static void set_preference (rtx, rtx);
+static void dump_conflicts (FILE *);
+static void reg_becomes_live (rtx, rtx);
+static void reg_dies (int, enum machine_mode);
+static void build_insn_chain (rtx);
+static void global_init (FILE *);
/* Perform allocation of pseudo-registers not allocated by local_alloc.
FILE is a file to output debugging information on,
diff --git a/gcc/hash.c b/gcc/hash.c
index f333c6c..fdaba1f 100755
--- a/gcc/hash.c
+++ b/gcc/hash.c
@@ -37,11 +37,11 @@ Boston, MA 02111-1307, USA. */
boolean
hash_table_init_n (table, newfunc, hash, comp, size)
struct hash_table *table;
- struct hash_entry *(*newfunc) PARAMS ((struct hash_entry *,
+ struct hash_entry *(*newfunc) (struct hash_entry *,
struct hash_table *,
- hash_table_key));
- unsigned long (*hash) PARAMS ((hash_table_key));
- boolean (*comp) PARAMS ((hash_table_key, hash_table_key));
+ hash_table_key);
+ unsigned long (*hash) (hash_table_key);
+ boolean (*comp) (hash_table_key, hash_table_key);
unsigned int size;
{
unsigned int alloc;
@@ -72,11 +72,11 @@ hash_table_init_n (table, newfunc, hash, comp, size)
boolean
hash_table_init (table, newfunc, hash, comp)
struct hash_table *table;
- struct hash_entry *(*newfunc) PARAMS ((struct hash_entry *,
+ struct hash_entry *(*newfunc) (struct hash_entry *,
struct hash_table *,
- hash_table_key));
- unsigned long (*hash) PARAMS ((hash_table_key));
- boolean (*comp) PARAMS ((hash_table_key, hash_table_key));
+ hash_table_key);
+ unsigned long (*hash) (hash_table_key);
+ boolean (*comp) (hash_table_key, hash_table_key);
{
return hash_table_init_n (table, newfunc, hash, comp, DEFAULT_SIZE);
}
@@ -98,8 +98,8 @@ hash_lookup (table, key, create, copy)
struct hash_table *table;
hash_table_key key;
boolean create;
- hash_table_key (*copy) PARAMS ((struct obstack* memory,
- hash_table_key key));
+ hash_table_key (*copy) (struct obstack* memory,
+ hash_table_key key);
{
register unsigned long hash;
struct hash_entry *hashp;
@@ -168,7 +168,7 @@ hash_allocate (table, size)
void
hash_traverse (table, func, info)
struct hash_table *table;
- boolean (*func) PARAMS ((struct hash_entry *, hash_table_key));
+ boolean (*func) (struct hash_entry *, hash_table_key);
PTR info;
{
unsigned int i;
diff --git a/gcc/hash.h b/gcc/hash.h
index ac3b1ed..02a5c3e 100755
--- a/gcc/hash.h
+++ b/gcc/hash.h
@@ -60,72 +60,72 @@ struct hash_table
built each of which calls the function in the superclass. Thus
each function should be written to allocate a new block of memory
only if the argument is NULL. */
- struct hash_entry *(*newfunc) PARAMS ((struct hash_entry *,
+ struct hash_entry *(*newfunc) (struct hash_entry *,
struct hash_table *,
- hash_table_key));
+ hash_table_key);
/* A function to compute the hash code for a key in the hash table. */
- unsigned long (*hash) PARAMS ((hash_table_key));
+ unsigned long (*hash) (hash_table_key);
/* A function to compare two keys. */
- boolean (*comp) PARAMS ((hash_table_key, hash_table_key));
+ boolean (*comp) (hash_table_key, hash_table_key);
/* An obstack for this hash table. */
struct obstack memory;
};
/* Initialize a hash table. */
extern boolean hash_table_init
- PARAMS ((struct hash_table *,
+ (struct hash_table *,
struct hash_entry *(*) (struct hash_entry *,
struct hash_table *,
hash_table_key),
unsigned long (*hash) (hash_table_key),
- boolean (*comp) (hash_table_key, hash_table_key)));
+ boolean (*comp) (hash_table_key, hash_table_key));
/* Initialize a hash table specifying a size. */
extern boolean hash_table_init_n
- PARAMS ((struct hash_table *,
+ (struct hash_table *,
struct hash_entry *(*) (struct hash_entry *,
struct hash_table *,
hash_table_key),
unsigned long (*hash) (hash_table_key),
boolean (*comp) (hash_table_key, hash_table_key),
- unsigned int size));
+ unsigned int size);
/* Free up a hash table. */
-extern void hash_table_free PARAMS ((struct hash_table *));
+extern void hash_table_free (struct hash_table *);
/* Look up KEY in a hash table. If CREATE is true, a new entry
will be created for this KEY if one does not already exist. If
COPY is non-NULL, it is used to copy the KEY before storing it in
the hash table. */
extern struct hash_entry *hash_lookup
- PARAMS ((struct hash_table *, hash_table_key key, boolean create,
- hash_table_key (*copy)(struct obstack*, hash_table_key)));
+ (struct hash_table *, hash_table_key key, boolean create,
+ hash_table_key (*copy)(struct obstack*, hash_table_key));
/* Base method for creating a hash table entry. */
extern struct hash_entry *hash_newfunc
- PARAMS ((struct hash_entry *, struct hash_table *,
- hash_table_key key));
+ (struct hash_entry *, struct hash_table *,
+ hash_table_key key);
/* Grab some space for a hash table entry. */
-extern PTR hash_allocate PARAMS ((struct hash_table *,
- unsigned int));
+extern PTR hash_allocate (struct hash_table *,
+ unsigned int);
/* Traverse a hash table in a random order, calling a function on each
element. If the function returns false, the traversal stops. The
INFO argument is passed to the function. */
-extern void hash_traverse PARAMS ((struct hash_table *,
+extern void hash_traverse (struct hash_table *,
boolean (*) (struct hash_entry *,
hash_table_key),
- hash_table_key info));
+ hash_table_key info);
/* Hash a string K, which is really of type `char*'. */
-extern unsigned long string_hash PARAMS ((hash_table_key k));
+extern unsigned long string_hash (hash_table_key k);
/* Compare two strings K1, K2 which are really of type `char*'. */
-extern boolean string_compare PARAMS ((hash_table_key k1,
- hash_table_key k2));
+extern boolean string_compare (hash_table_key k1,
+ hash_table_key k2);
/* Copy a string K, which is really of type `char*'. */
-extern hash_table_key string_copy PARAMS ((struct obstack* memory,
- hash_table_key k));
+extern hash_table_key string_copy (struct obstack* memory,
+ hash_table_key k);
diff --git a/gcc/integrate.c b/gcc/integrate.c
index b2c8aa3..de2d238 100755
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -59,32 +59,32 @@ extern struct obstack *function_maybepermanent_obstack;
: (8 * (8 + list_length (DECL_ARGUMENTS (DECL)))))
#endif
-static rtx initialize_for_inline PROTO((tree, int, int, int, int));
-static void finish_inline PROTO((tree, rtx));
-static void adjust_copied_decl_tree PROTO((tree));
-static tree copy_decl_list PROTO((tree));
-static tree copy_decl_tree PROTO((tree));
-static void copy_decl_rtls PROTO((tree));
-static void save_constants PROTO((rtx *));
-static void note_modified_parmregs PROTO((rtx, rtx));
-static rtx copy_for_inline PROTO((rtx));
-static void integrate_parm_decls PROTO((tree, struct inline_remap *,
- rtvec));
-static void integrate_decl_tree PROTO((tree, int,
- struct inline_remap *));
-static void save_constants_in_decl_trees PROTO ((tree));
-static void subst_constants PROTO((rtx *, rtx,
- struct inline_remap *));
-static void restore_constants PROTO((rtx *));
-static void set_block_origin_self PROTO((tree));
-static void set_decl_origin_self PROTO((tree));
-static void set_block_abstract_flags PROTO((tree, int));
-static void process_reg_param PROTO((struct inline_remap *, rtx,
- rtx));
-
-
-void set_decl_abstract_flags PROTO((tree, int));
-static tree copy_and_set_decl_abstract_origin PROTO((tree));
+static rtx initialize_for_inline (tree, int, int, int, int);
+static void finish_inline (tree, rtx);
+static void adjust_copied_decl_tree (tree);
+static tree copy_decl_list (tree);
+static tree copy_decl_tree (tree);
+static void copy_decl_rtls (tree);
+static void save_constants (rtx *);
+static void note_modified_parmregs (rtx, rtx);
+static rtx copy_for_inline (rtx);
+static void integrate_parm_decls (tree, struct inline_remap *,
+ rtvec);
+static void integrate_decl_tree (tree, int,
+ struct inline_remap *);
+static void save_constants_in_decl_trees (tree);
+static void subst_constants (rtx *, rtx,
+ struct inline_remap *);
+static void restore_constants (rtx *);
+static void set_block_origin_self (tree);
+static void set_decl_origin_self (tree);
+static void set_block_abstract_flags (tree, int);
+static void process_reg_param (struct inline_remap *, rtx,
+ rtx);
+
+
+void set_decl_abstract_flags (tree, int);
+static tree copy_and_set_decl_abstract_origin (tree);
/* Returns the Ith entry in the label_map contained in MAP. If the
Ith entry has not yet been set, return a fresh label. This function
diff --git a/gcc/integrate.h b/gcc/integrate.h
index 23e2e56..95e7388 100755
--- a/gcc/integrate.h
+++ b/gcc/integrate.h
@@ -116,14 +116,14 @@ struct inline_remap
/* Return a copy of an rtx (as needed), substituting pseudo-register,
labels, and frame-pointer offsets as necessary. */
-extern rtx copy_rtx_and_substitute PROTO((rtx, struct inline_remap *));
+extern rtx copy_rtx_and_substitute (rtx, struct inline_remap *);
-extern void try_constants PROTO((rtx, struct inline_remap *));
+extern void try_constants (rtx, struct inline_remap *);
-extern void mark_stores PROTO((rtx, rtx));
+extern void mark_stores (rtx, rtx);
/* Return the label indicated. */
-extern rtx get_label_from_map PROTO((struct inline_remap *, int));
+extern rtx get_label_from_map (struct inline_remap *, int);
/* Set the label indicated. */
#define set_label_in_map(MAP, I, X) ((MAP)->label_map[I] = (X))
diff --git a/gcc/jump.c b/gcc/jump.c
index 7da8c07..583c338 100755
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -70,7 +70,7 @@ Boston, MA 02111-1307, USA. */
change a conditional jump around code into conditional {true,false}
execution. */
#ifdef HAVE_conditional_execution
-static rtx conditional_execution PROTO((rtx));
+static rtx conditional_execution (rtx);
#ifndef MAX_CONDITIONAL_EXECUTE
#ifdef HAVE_cc0
@@ -127,29 +127,29 @@ int can_reach_end;
static int cross_jump_death_matters = 0;
-static int init_label_info PROTO((rtx));
-static void delete_barrier_successors PROTO((rtx));
-static void mark_all_labels PROTO((rtx, int));
-static rtx delete_unreferenced_labels PROTO((rtx));
-static void delete_noop_moves PROTO((rtx));
-static int calculate_can_reach_end PROTO((rtx, int, int));
-static int duplicate_loop_exit_test PROTO((rtx));
-static void find_cross_jump PROTO((rtx, rtx, int, rtx *, rtx *));
-static void do_cross_jump PROTO((rtx, rtx, rtx));
-static int jump_back_p PROTO((rtx, rtx));
-static int tension_vector_labels PROTO((rtx, int));
-static void mark_jump_label PROTO((rtx, rtx, int));
-static void delete_computation PROTO((rtx));
-static void delete_from_jump_chain PROTO((rtx));
-static int delete_labelref_insn PROTO((rtx, rtx, int));
-static void mark_modified_reg PROTO((rtx, rtx));
-static void redirect_tablejump PROTO((rtx, rtx));
+static int init_label_info (rtx);
+static void delete_barrier_successors (rtx);
+static void mark_all_labels (rtx, int);
+static rtx delete_unreferenced_labels (rtx);
+static void delete_noop_moves (rtx);
+static int calculate_can_reach_end (rtx, int, int);
+static int duplicate_loop_exit_test (rtx);
+static void find_cross_jump (rtx, rtx, int, rtx *, rtx *);
+static void do_cross_jump (rtx, rtx, rtx);
+static int jump_back_p (rtx, rtx);
+static int tension_vector_labels (rtx, int);
+static void mark_jump_label (rtx, rtx, int);
+static void delete_computation (rtx);
+static void delete_from_jump_chain (rtx);
+static int delete_labelref_insn (rtx, rtx, int);
+static void mark_modified_reg (rtx, rtx);
+static void redirect_tablejump (rtx, rtx);
/* CYGNUS LOCAL -- branch prediction */
-static rtx branch_predict_move PROTO((rtx, rtx, rtx, rtx));
-static void branch_predict_reorg PROTO((rtx));
+static rtx branch_predict_move (rtx, rtx, rtx, rtx);
+static void branch_predict_reorg (rtx);
/* END CYGNUS LOCAL */
#ifndef HAVE_cc0
-static rtx find_insert_position PROTO((rtx, rtx));
+static rtx find_insert_position (rtx, rtx);
#endif
/* Delete no-op jumps and optimize jumps to jumps
diff --git a/gcc/lcm.c b/gcc/lcm.c
index 981b524..8d07e3e 100755
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -63,35 +63,35 @@ Boston, MA 02111-1307, USA. */
#include "recog.h"
#include "basic-block.h"
-static void compute_antinout PROTO ((int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
-static void compute_earlyinout PROTO ((int, int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
-static void compute_delayinout PROTO ((int, int, int_list_ptr *, sbitmap *,
+static void compute_antinout (int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
+static void compute_earlyinout (int, int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
+static void compute_delayinout (int, int, int_list_ptr *, sbitmap *,
sbitmap *, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_latein PROTO ((int, int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_isoinout PROTO ((int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
-static void compute_optimal PROTO ((int, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_redundant PROTO ((int, int, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
+ sbitmap *, sbitmap *);
+static void compute_latein (int, int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *);
+static void compute_isoinout (int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
+static void compute_optimal (int, sbitmap *,
+ sbitmap *, sbitmap *);
+static void compute_redundant (int, int, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
/* Similarly, but for the reversed flowgraph. */
-static void compute_avinout PROTO ((int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
-static void compute_fartherinout PROTO ((int, int, int_list_ptr *,
+static void compute_avinout (int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
+static void compute_fartherinout (int, int, int_list_ptr *,
sbitmap *, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_earlierinout PROTO ((int, int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *);
+static void compute_earlierinout (int, int, int_list_ptr *, sbitmap *,
sbitmap *, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_firstout PROTO ((int, int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *));
-static void compute_rev_isoinout PROTO ((int, int_list_ptr *, sbitmap *,
- sbitmap *, sbitmap *, sbitmap *));
+ sbitmap *, sbitmap *);
+static void compute_firstout (int, int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *);
+static void compute_rev_isoinout (int, int_list_ptr *, sbitmap *,
+ sbitmap *, sbitmap *, sbitmap *);
/* Given local properties TRANSP, ANTLOC, return the redundant and optimal
computation points for expressions.
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 25daa98..066bff4 100755
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -237,31 +237,31 @@ static rtx *reg_equiv_replacement;
/* Used for communication between update_equiv_regs and no_equiv. */
static rtx *reg_equiv_init_insns;
-static void alloc_qty PROTO((int, enum machine_mode, int, int));
-static void validate_equiv_mem_from_store PROTO((rtx, rtx));
-static int validate_equiv_mem PROTO((rtx, rtx, rtx));
-static int contains_replace_regs PROTO((rtx, char *));
-static int memref_referenced_p PROTO((rtx, rtx));
-static int memref_used_between_p PROTO((rtx, rtx, rtx));
-static void update_equiv_regs PROTO((void));
-static void no_equiv PROTO((rtx, rtx));
-static void block_alloc PROTO((int));
-static int qty_sugg_compare PROTO((int, int));
-static int qty_sugg_compare_1 PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static int qty_compare PROTO((int, int));
-static int qty_compare_1 PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static int combine_regs PROTO((rtx, rtx, int, int, rtx, int));
-static int reg_meets_class_p PROTO((int, enum reg_class));
-static void update_qty_class PROTO((int, int));
-static void reg_is_set PROTO((rtx, rtx));
-static void reg_is_born PROTO((rtx, int));
-static void wipe_dead_reg PROTO((rtx, int));
-static int find_free_reg PROTO((enum reg_class, enum machine_mode,
- int, int, int, int, int));
-static void mark_life PROTO((int, enum machine_mode, int));
-static void post_mark_life PROTO((int, enum machine_mode, int, int, int));
-static int no_conflict_p PROTO((rtx, rtx, rtx));
-static int requires_inout PROTO((char *));
+static void alloc_qty (int, enum machine_mode, int, int);
+static void validate_equiv_mem_from_store (rtx, rtx);
+static int validate_equiv_mem (rtx, rtx, rtx);
+static int contains_replace_regs (rtx, char *);
+static int memref_referenced_p (rtx, rtx);
+static int memref_used_between_p (rtx, rtx, rtx);
+static void update_equiv_regs (void);
+static void no_equiv (rtx, rtx);
+static void block_alloc (int);
+static int qty_sugg_compare (int, int);
+static int qty_sugg_compare_1 (const GENERIC_PTR, const GENERIC_PTR);
+static int qty_compare (int, int);
+static int qty_compare_1 (const GENERIC_PTR, const GENERIC_PTR);
+static int combine_regs (rtx, rtx, int, int, rtx, int);
+static int reg_meets_class_p (int, enum reg_class);
+static void update_qty_class (int, int);
+static void reg_is_set (rtx, rtx);
+static void reg_is_born (rtx, int);
+static void wipe_dead_reg (rtx, int);
+static int find_free_reg (enum reg_class, enum machine_mode,
+ int, int, int, int, int);
+static void mark_life (int, enum machine_mode, int);
+static void post_mark_life (int, enum machine_mode, int, int, int);
+static int no_conflict_p (rtx, rtx, rtx);
+static int requires_inout (char *);
/* Allocate a new quantity (new within current basic block)
for register number REGNO which is born at index BIRTH
diff --git a/gcc/loop.c b/gcc/loop.c
index eb37e74..d5cf5b2 100755
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -280,68 +280,68 @@ FILE *loop_dump_stream;
/* Forward declarations. */
-static void verify_dominator PROTO((int));
-static void find_and_verify_loops PROTO((rtx));
-static void mark_loop_jump PROTO((rtx, int));
-static void prescan_loop PROTO((rtx, rtx));
-static int reg_in_basic_block_p PROTO((rtx, rtx));
-static int consec_sets_invariant_p PROTO((rtx, int, rtx));
-static rtx libcall_other_reg PROTO((rtx, rtx));
-static int labels_in_range_p PROTO((rtx, int));
-static void count_one_set PROTO((rtx, rtx, varray_type, rtx *));
-
-static void count_loop_regs_set PROTO((rtx, rtx, varray_type, varray_type,
- int *, int));
-static void note_addr_stored PROTO((rtx, rtx));
-static int loop_reg_used_before_p PROTO((rtx, rtx, rtx, rtx, rtx));
-static void scan_loop PROTO((rtx, rtx, rtx, int, int));
+static void verify_dominator (int);
+static void find_and_verify_loops (rtx);
+static void mark_loop_jump (rtx, int);
+static void prescan_loop (rtx, rtx);
+static int reg_in_basic_block_p (rtx, rtx);
+static int consec_sets_invariant_p (rtx, int, rtx);
+static rtx libcall_other_reg (rtx, rtx);
+static int labels_in_range_p (rtx, int);
+static void count_one_set (rtx, rtx, varray_type, rtx *);
+
+static void count_loop_regs_set (rtx, rtx, varray_type, varray_type,
+ int *, int);
+static void note_addr_stored (rtx, rtx);
+static int loop_reg_used_before_p (rtx, rtx, rtx, rtx, rtx);
+static void scan_loop (rtx, rtx, rtx, int, int);
#if 0
-static void replace_call_address PROTO((rtx, rtx, rtx));
+static void replace_call_address (rtx, rtx, rtx);
#endif
-static rtx skip_consec_insns PROTO((rtx, int));
-static int libcall_benefit PROTO((rtx));
-static void ignore_some_movables PROTO((struct movable *));
-static void force_movables PROTO((struct movable *));
-static void combine_movables PROTO((struct movable *, int));
-static int regs_match_p PROTO((rtx, rtx, struct movable *));
-static int rtx_equal_for_loop_p PROTO((rtx, rtx, struct movable *));
-static void add_label_notes PROTO((rtx, rtx));
-static void move_movables PROTO((struct movable *, int, int, rtx, rtx, int));
-static int count_nonfixed_reads PROTO((rtx));
-static void strength_reduce PROTO((rtx, rtx, rtx, int, rtx, rtx, rtx, int, int));
-static void find_single_use_in_loop PROTO((rtx, rtx, varray_type));
-static int valid_initial_value_p PROTO((rtx, rtx, int, rtx));
-static void find_mem_givs PROTO((rtx, rtx, int, rtx, rtx));
-static void record_biv PROTO((struct induction *, rtx, rtx, rtx, rtx, rtx *, int, int));
-static void check_final_value PROTO((struct induction *, rtx, rtx,
- unsigned HOST_WIDE_INT));
-static void record_giv PROTO((struct induction *, rtx, rtx, rtx, rtx, rtx, int, enum g_types, int, rtx *, rtx, rtx));
-static void update_giv_derive PROTO((rtx));
-static int basic_induction_var PROTO((rtx, enum machine_mode, rtx, rtx, rtx *, rtx *, rtx **));
-static rtx simplify_giv_expr PROTO((rtx, int *));
-static int general_induction_var PROTO((rtx, rtx *, rtx *, rtx *, int, int *));
-static int consec_sets_giv PROTO((int, rtx, rtx, rtx, rtx *, rtx *, rtx *));
-static int check_dbra_loop PROTO((rtx, int, rtx, struct loop_info *));
-static rtx express_from_1 PROTO((rtx, rtx, rtx));
-static rtx combine_givs_p PROTO((struct induction *, struct induction *));
-static void combine_givs PROTO((struct iv_class *));
+static rtx skip_consec_insns (rtx, int);
+static int libcall_benefit (rtx);
+static void ignore_some_movables (struct movable *);
+static void force_movables (struct movable *);
+static void combine_movables (struct movable *, int);
+static int regs_match_p (rtx, rtx, struct movable *);
+static int rtx_equal_for_loop_p (rtx, rtx, struct movable *);
+static void add_label_notes (rtx, rtx);
+static void move_movables (struct movable *, int, int, rtx, rtx, int);
+static int count_nonfixed_reads (rtx);
+static void strength_reduce (rtx, rtx, rtx, int, rtx, rtx, rtx, int, int);
+static void find_single_use_in_loop (rtx, rtx, varray_type);
+static int valid_initial_value_p (rtx, rtx, int, rtx);
+static void find_mem_givs (rtx, rtx, int, rtx, rtx);
+static void record_biv (struct induction *, rtx, rtx, rtx, rtx, rtx *, int, int);
+static void check_final_value (struct induction *, rtx, rtx,
+ unsigned HOST_WIDE_INT);
+static void record_giv (struct induction *, rtx, rtx, rtx, rtx, rtx, int, enum g_types, int, rtx *, rtx, rtx);
+static void update_giv_derive (rtx);
+static int basic_induction_var (rtx, enum machine_mode, rtx, rtx, rtx *, rtx *, rtx **);
+static rtx simplify_giv_expr (rtx, int *);
+static int general_induction_var (rtx, rtx *, rtx *, rtx *, int, int *);
+static int consec_sets_giv (int, rtx, rtx, rtx, rtx *, rtx *, rtx *);
+static int check_dbra_loop (rtx, int, rtx, struct loop_info *);
+static rtx express_from_1 (rtx, rtx, rtx);
+static rtx combine_givs_p (struct induction *, struct induction *);
+static void combine_givs (struct iv_class *);
struct recombine_givs_stats;
-static int find_life_end PROTO((rtx, struct recombine_givs_stats *, rtx, rtx));
-static void recombine_givs PROTO((struct iv_class *, rtx, rtx, int));
-static int product_cheap_p PROTO((rtx, rtx));
-static int maybe_eliminate_biv PROTO((struct iv_class *, rtx, rtx, int, int, int));
-static int maybe_eliminate_biv_1 PROTO((rtx, rtx, struct iv_class *, int, rtx));
-static int last_use_this_basic_block PROTO((rtx, rtx));
-static void record_initial PROTO((rtx, rtx));
-static void update_reg_last_use PROTO((rtx, rtx));
-static rtx next_insn_in_loop PROTO((rtx, rtx, rtx, rtx));
-static void load_mems_and_recount_loop_regs_set PROTO((rtx, rtx, rtx,
+static int find_life_end (rtx, struct recombine_givs_stats *, rtx, rtx);
+static void recombine_givs (struct iv_class *, rtx, rtx, int);
+static int product_cheap_p (rtx, rtx);
+static int maybe_eliminate_biv (struct iv_class *, rtx, rtx, int, int, int);
+static int maybe_eliminate_biv_1 (rtx, rtx, struct iv_class *, int, rtx);
+static int last_use_this_basic_block (rtx, rtx);
+static void record_initial (rtx, rtx);
+static void update_reg_last_use (rtx, rtx);
+static rtx next_insn_in_loop (rtx, rtx, rtx, rtx);
+static void load_mems_and_recount_loop_regs_set (rtx, rtx, rtx,
rtx, varray_type,
- int *));
-static void load_mems PROTO((rtx, rtx, rtx, rtx));
-static int insert_loop_mem PROTO((rtx *, void *));
-static int replace_loop_mem PROTO((rtx *, void *));
-static int replace_label PROTO((rtx *, void *));
+ int *);
+static void load_mems (rtx, rtx, rtx, rtx);
+static int insert_loop_mem (rtx *, void *);
+static int replace_loop_mem (rtx *, void *);
+static int replace_label (rtx *, void *);
typedef struct rtx_and_int {
rtx r;
@@ -361,22 +361,22 @@ typedef struct rtx_pair {
#ifdef HAVE_decrement_and_branch_on_count
/* Test whether BCT applicable and safe. */
-static void insert_bct PROTO((rtx, rtx, struct loop_info *));
+static void insert_bct (rtx, rtx, struct loop_info *);
/* Auxiliary function that inserts the BCT pattern into the loop. */
-static void instrument_loop_bct PROTO((rtx, rtx, rtx));
+static void instrument_loop_bct (rtx, rtx, rtx);
#endif /* HAVE_decrement_and_branch_on_count */
/* Indirect_jump_in_function is computed once per function. */
int indirect_jump_in_function = 0;
-static int indirect_jump_in_function_p PROTO((rtx));
+static int indirect_jump_in_function_p (rtx);
-static int compute_luids PROTO((rtx, rtx, int));
+static int compute_luids (rtx, rtx, int);
-static int loop_insn_first_p PROTO((rtx, rtx));
+static int loop_insn_first_p (rtx, rtx);
-static int biv_elimination_giv_has_0_offset PROTO((struct induction *,
- struct induction *, rtx));
+static int biv_elimination_giv_has_0_offset (struct induction *,
+ struct induction *, rtx);
/* Relative gain of eliminating various kinds of operations. */
static int add_cost;
@@ -6059,8 +6059,8 @@ general_induction_var (x, src_reg, add_val, mult_val, is_addr, pbenefit)
*BENEFIT will be incremented by the benefit of any sub-giv encountered. */
-static rtx sge_plus PROTO ((enum machine_mode, rtx, rtx));
-static rtx sge_plus_constant PROTO ((rtx, rtx));
+static rtx sge_plus (enum machine_mode, rtx, rtx);
+static rtx sge_plus_constant (rtx, rtx);
static rtx
simplify_giv_expr (x, benefit)
diff --git a/gcc/loop.h b/gcc/loop.h
index 6ea0d0e..548dc3e 100755
--- a/gcc/loop.h
+++ b/gcc/loop.h
@@ -223,27 +223,27 @@ extern int first_increment_giv, last_increment_giv;
/* Forward declarations for non-static functions declared in loop.c and
unroll.c. */
-int invariant_p PROTO((rtx));
-rtx get_condition_for_loop PROTO((rtx));
-void emit_iv_add_mult PROTO((rtx, rtx, rtx, rtx, rtx));
-rtx express_from PROTO((struct induction *, struct induction *));
+int invariant_p (rtx);
+rtx get_condition_for_loop (rtx);
+void emit_iv_add_mult (rtx, rtx, rtx, rtx, rtx);
+rtx express_from (struct induction *, struct induction *);
/* Forward declarations for non-static functions declared in stmt.c. */
-void find_loop_tree_blocks PROTO((void));
-void unroll_block_trees PROTO((void));
+void find_loop_tree_blocks (void);
+void unroll_block_trees (void);
-void unroll_loop PROTO((rtx, int, rtx, rtx, struct loop_info *, int));
-rtx biv_total_increment PROTO((struct iv_class *, rtx, rtx));
-unsigned HOST_WIDE_INT loop_iterations PROTO((rtx, rtx, struct loop_info *));
-int precondition_loop_p PROTO((rtx, struct loop_info *,
+void unroll_loop (rtx, int, rtx, rtx, struct loop_info *, int);
+rtx biv_total_increment (struct iv_class *, rtx, rtx);
+unsigned HOST_WIDE_INT loop_iterations (rtx, rtx, struct loop_info *);
+int precondition_loop_p (rtx, struct loop_info *,
rtx *, rtx *, rtx *,
- enum machine_mode *mode));
-rtx final_biv_value PROTO((struct iv_class *, rtx, rtx,
- unsigned HOST_WIDE_INT));
-rtx final_giv_value PROTO((struct induction *, rtx, rtx,
- unsigned HOST_WIDE_INT));
-void emit_unrolled_add PROTO((rtx, rtx, rtx));
-int back_branch_in_range_p PROTO((rtx, rtx, rtx));
+ enum machine_mode *mode);
+rtx final_biv_value (struct iv_class *, rtx, rtx,
+ unsigned HOST_WIDE_INT);
+rtx final_giv_value (struct induction *, rtx, rtx,
+ unsigned HOST_WIDE_INT);
+void emit_unrolled_add (rtx, rtx, rtx);
+int back_branch_in_range_p (rtx, rtx, rtx);
extern int *loop_unroll_number;
diff --git a/gcc/machmode.h b/gcc/machmode.h
index 8d42416..e9d1519 100755
--- a/gcc/machmode.h
+++ b/gcc/machmode.h
@@ -185,16 +185,16 @@ extern unsigned char mode_wider_mode[];
If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
The value is BLKmode if no other mode is found. */
-extern enum machine_mode mode_for_size PROTO((unsigned int, enum mode_class, int));
+extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int);
/* Return an integer mode of the exact same size as the input mode,
or BLKmode on failure. */
-extern enum machine_mode int_mode_for_mode PROTO((enum machine_mode));
+extern enum machine_mode int_mode_for_mode (enum machine_mode);
/* Find the best mode to use to access a bit field. */
-extern enum machine_mode get_best_mode PROTO((int, int, int, enum machine_mode, int));
+extern enum machine_mode get_best_mode (int, int, int, enum machine_mode, int);
/* Determine alignment, 1<=result<=BIGGEST_ALIGNMENT. */
diff --git a/gcc/mbchar.h b/gcc/mbchar.h
index 65f281a..d53ebeb 100755
--- a/gcc/mbchar.h
+++ b/gcc/mbchar.h
@@ -30,9 +30,9 @@ Boston, MA 02111-1307, USA. */
#define ISEUCJP(c) ((c) >= 0xa1 && (c) <= 0xfe)
#define ISJIS(c) ((c) >= 0x21 && (c) <= 0x7e)
-int local_mbtowc PROTO ((wchar_t *, const char *, size_t));
-int local_mblen PROTO ((const char *, size_t));
-int local_mb_cur_max PROTO ((void));
+int local_mbtowc (wchar_t *, const char *, size_t);
+int local_mblen (const char *, size_t);
+int local_mb_cur_max (void);
/* The locale being used for multibyte characters in string/char literals. */
extern char *literal_codeset;
diff --git a/gcc/optabs.c b/gcc/optabs.c
index ce96e91..848fe3b 100755
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -240,20 +240,20 @@ enum insn_code setcc_gen_code[NUM_RTX_CODE];
enum insn_code movcc_gen_code[NUM_MACHINE_MODES];
#endif
-static int add_equal_note PROTO((rtx, rtx, enum rtx_code, rtx, rtx));
-static rtx widen_operand PROTO((rtx, enum machine_mode,
- enum machine_mode, int, int));
-static enum insn_code can_fix_p PROTO((enum machine_mode, enum machine_mode,
- int, int *));
-static enum insn_code can_float_p PROTO((enum machine_mode, enum machine_mode,
- int));
-static rtx ftruncify PROTO((rtx));
-static optab init_optab PROTO((enum rtx_code));
-static void init_libfuncs PROTO((optab, int, int, char *, int));
-static void init_integral_libfuncs PROTO((optab, char *, int));
-static void init_floating_libfuncs PROTO((optab, char *, int));
+static int add_equal_note (rtx, rtx, enum rtx_code, rtx, rtx);
+static rtx widen_operand (rtx, enum machine_mode,
+ enum machine_mode, int, int);
+static enum insn_code can_fix_p (enum machine_mode, enum machine_mode,
+ int, int *);
+static enum insn_code can_float_p (enum machine_mode, enum machine_mode,
+ int);
+static rtx ftruncify (rtx);
+static optab init_optab (enum rtx_code);
+static void init_libfuncs (optab, int, int, char *, int);
+static void init_integral_libfuncs (optab, char *, int);
+static void init_floating_libfuncs (optab, char *, int);
#ifdef HAVE_conditional_trap
-static void init_traps PROTO((void));
+static void init_traps (void);
#endif
/* Add a REG_EQUAL note to the last insn in SEQ. TARGET is being set to
diff --git a/gcc/output.h b/gcc/output.h
index e5178db..d54ae62 100755
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -20,140 +20,140 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Initialize data in final at the beginning of a compilation. */
-extern void init_final PROTO((char *));
+extern void init_final (char *);
/* Called at end of source file,
to output the block-profiling table for this entire compilation. */
-extern void end_final PROTO((char *));
+extern void end_final (char *);
/* Enable APP processing of subsequent output.
Used before the output from an `asm' statement. */
-extern void app_enable PROTO((void));
+extern void app_enable (void);
/* Disable APP processing of subsequent output.
Called from varasm.c before most kinds of output. */
-extern void app_disable PROTO((void));
+extern void app_disable (void);
/* Return the number of slots filled in the current
delayed branch sequence (we don't count the insn needing the
delay slot). Zero if not in a delayed branch sequence. */
-extern int dbr_sequence_length PROTO((void));
+extern int dbr_sequence_length (void);
/* Indicate that branch shortening hasn't yet been done. */
-extern void init_insn_lengths PROTO((void));
+extern void init_insn_lengths (void);
#ifdef RTX_CODE
/* Obtain the current length of an insn. If branch shortening has been done,
get its actual length. Otherwise, get its maximum length. */
-extern int get_attr_length PROTO((rtx));
+extern int get_attr_length (rtx);
/* Make a pass over all insns and compute their actual lengths by shortening
any branches of variable length if possible. */
-extern void shorten_branches PROTO((rtx));
+extern void shorten_branches (rtx);
/* Output assembler code for the start of a function,
and initialize some of the variables in this file
for the new function. The label for the function and associated
assembler pseudo-ops have already been output in
`assemble_start_function'. */
-extern void final_start_function PROTO((rtx, FILE *, int));
+extern void final_start_function (rtx, FILE *, int);
/* Output assembler code for the end of a function.
For clarity, args are same as those of `final_start_function'
even though not all of them are needed. */
-extern void final_end_function PROTO((rtx, FILE *, int));
+extern void final_end_function (rtx, FILE *, int);
/* Output assembler code for some insns: all or part of a function. */
-extern void final PROTO((rtx, FILE *, int, int));
+extern void final (rtx, FILE *, int, int);
/* The final scan for one insn, INSN. Args are same as in `final', except
that INSN is the insn being scanned. Value returned is the next insn to
be scanned. */
-extern rtx final_scan_insn PROTO((rtx, FILE *, int, int, int));
+extern rtx final_scan_insn (rtx, FILE *, int, int, int);
/* Replace a SUBREG with a REG or a MEM, based on the thing it is a
subreg of. */
-extern rtx alter_subreg PROTO((rtx));
+extern rtx alter_subreg (rtx);
/* Report inconsistency between the assembler template and the operands.
In an `asm', it's the user's fault; otherwise, the compiler's fault. */
-extern void output_operand_lossage PROTO((char *));
+extern void output_operand_lossage (char *);
/* Output a string of assembler code, substituting insn operands.
Defined in final.c. */
-extern void output_asm_insn PROTO((char *, rtx *));
+extern void output_asm_insn (char *, rtx *);
/* Compute a worst-case reference address of a branch so that it
can be safely used in the presence of aligned labels.
Defined in final.c. */
-extern int insn_current_reference_address PROTO((rtx));
+extern int insn_current_reference_address (rtx);
/* Find the alignment associated with a CODE_LABEL.
Defined in final.c. */
-extern int label_to_alignment PROTO((rtx));
+extern int label_to_alignment (rtx);
/* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol. */
-extern void output_asm_label PROTO((rtx));
+extern void output_asm_label (rtx);
/* Print a memory reference operand for address X
using machine-dependent assembler syntax. */
-extern void output_address PROTO((rtx));
+extern void output_address (rtx);
/* Print an integer constant expression in assembler syntax.
Addition and subtraction are the only arithmetic
that may appear in these expressions. */
-extern void output_addr_const PROTO((FILE *, rtx));
+extern void output_addr_const (FILE *, rtx);
/* Output a string of assembler code, substituting numbers, strings
and fixed syntactic prefixes. */
-extern void asm_fprintf PROTO(PVPROTO((FILE *file, char *p, ...)));
+extern void asm_fprintf (FILE *file, char *p, ...);
/* Split up a CONST_DOUBLE or integer constant rtx into two rtx's for single
words. */
-extern void split_double PROTO((rtx, rtx *, rtx *));
+extern void split_double (rtx, rtx *, rtx *);
/* Return nonzero if this function has no function calls. */
-extern int leaf_function_p PROTO((void));
+extern int leaf_function_p (void);
/* Return 1 if this function uses only the registers that can be
safely renumbered. */
-extern int only_leaf_regs_used PROTO((void));
+extern int only_leaf_regs_used (void);
/* Scan IN_RTX and its subexpressions, and renumber all regs into those
available in leaf functions. */
-extern void leaf_renumber_regs_insn PROTO((rtx));
+extern void leaf_renumber_regs_insn (rtx);
/* Functions in flow.c */
-extern void allocate_for_life_analysis PROTO((void));
-extern int regno_uninitialized PROTO((int));
-extern int regno_clobbered_at_setjmp PROTO((int));
-extern void dump_flow_info PROTO((FILE *));
-extern void find_basic_blocks PROTO((rtx, int, FILE *));
-extern void free_basic_block_vars PROTO((int));
-extern void set_block_num PROTO((rtx, int));
-extern void life_analysis PROTO((rtx, int, FILE *));
+extern void allocate_for_life_analysis (void);
+extern int regno_uninitialized (int);
+extern int regno_clobbered_at_setjmp (int);
+extern void dump_flow_info (FILE *);
+extern void find_basic_blocks (rtx, int, FILE *);
+extern void free_basic_block_vars (int);
+extern void set_block_num (rtx, int);
+extern void life_analysis (rtx, int, FILE *);
#endif
/* Functions in varasm.c. */
/* Tell assembler to switch to text section. */
-extern void text_section PROTO((void));
+extern void text_section (void);
/* Tell assembler to switch to data section. */
-extern void data_section PROTO((void));
+extern void data_section (void);
/* Tell assembler to make sure its in the data section. */
-extern void force_data_section PROTO((void));
+extern void force_data_section (void);
/* Tell assembler to switch to read-only data section. This is normally
the text section. */
-extern void readonly_data_section PROTO((void));
+extern void readonly_data_section (void);
/* Determine if we're in the text section. */
-extern int in_text_section PROTO((void));
+extern int in_text_section (void);
#ifdef EH_FRAME_SECTION_ASM_OP
-extern void eh_frame_section PROTO ((void));
+extern void eh_frame_section (void);
#endif
#ifdef TREE_CODE
@@ -161,25 +161,25 @@ extern void eh_frame_section PROTO ((void));
If DECL is NULL, just switch to section NAME.
If NAME is NULL, get the name from DECL.
If RELOC is 1, the initializer for DECL contains relocs. */
-extern void named_section PROTO((tree, char *, int));
+extern void named_section (tree, char *, int);
/* Tell assembler to switch to the section for function DECL. */
-extern void function_section PROTO((tree));
+extern void function_section (tree);
/* Tell assembler to switch to the section for the exception table. */
-extern void exception_section PROTO((void));
+extern void exception_section (void);
/* Create the rtl to represent a function, for a function definition.
DECL is a FUNCTION_DECL node which describes which function.
The rtl is stored into DECL. */
-extern void make_function_rtl PROTO((tree));
+extern void make_function_rtl (tree);
/* Declare DECL to be a weak symbol. */
-extern void declare_weak PROTO ((tree));
+extern void declare_weak (tree);
#endif /* TREE_CODE */
/* Emit any pending weak declarations. */
-extern void weak_finish PROTO ((void));
+extern void weak_finish (void);
/* Decode an `asm' spec for a declaration as a register name.
Return the register number, or -1 if nothing specified,
@@ -188,7 +188,7 @@ extern void weak_finish PROTO ((void));
or -4 if ASMSPEC is `memory' and is not recognized.
Accept an exact spelling or a decimal number.
Prefixes such as % are optional. */
-extern int decode_reg_name PROTO((char *));
+extern int decode_reg_name (char *);
#ifdef TREE_CODE
/* Create the DECL_RTL for a declaration for a static or external variable
@@ -198,39 +198,39 @@ extern int decode_reg_name PROTO((char *));
TOP_LEVEL is nonzero if this is a file-scope variable.
This is never called for PARM_DECL nodes. */
-extern void make_decl_rtl PROTO((tree, char *, int));
+extern void make_decl_rtl (tree, char *, int);
/* Make the rtl for variable VAR be volatile.
Use this only for static variables. */
-extern void make_var_volatile PROTO((tree));
+extern void make_var_volatile (tree);
/* Output alignment directive to align for constant expression EXP. */
-extern void assemble_constant_align PROTO((tree));
+extern void assemble_constant_align (tree);
-extern void assemble_alias PROTO((tree, tree));
+extern void assemble_alias (tree, tree);
/* Output a string of literal assembler code
for an `asm' keyword used between functions. */
-extern void assemble_asm PROTO((tree));
+extern void assemble_asm (tree);
/* Output assembler code for the constant pool of a function and associated
with defining the name of the function. DECL describes the function.
NAME is the function's name. For the constant pool, we use the current
constant pool data. */
-extern void assemble_start_function PROTO((tree, char *));
+extern void assemble_start_function (tree, char *);
/* Output assembler code associated with defining the size of the
function. DECL describes the function. NAME is the function's name. */
-extern void assemble_end_function PROTO((tree, char *));
+extern void assemble_end_function (tree, char *);
/* Assemble code to leave SIZE bytes of zeros. */
-extern void assemble_zeros PROTO((int));
+extern void assemble_zeros (int);
/* Assemble an alignment pseudo op for an ALIGN-bit boundary. */
-extern void assemble_align PROTO((int));
+extern void assemble_align (int);
/* Assemble a string constant with the specified C string as contents. */
-extern void assemble_string PROTO((char *, int));
+extern void assemble_string (char *, int);
/* Assemble everything that is needed for a variable or function declaration.
Not used for automatic variables, and not used for function definitions.
Should not be called for variables of incomplete structure type.
@@ -240,31 +240,31 @@ extern void assemble_string PROTO((char *, int));
to define things that have had only tentative definitions.
DONT_OUTPUT_DATA if nonzero means don't actually output the
initial value (that will be done by the caller). */
-extern void assemble_variable PROTO((tree, int, int, int));
+extern void assemble_variable (tree, int, int, int);
/* Output something to declare an external symbol to the assembler.
(Most assemblers don't need this, so we normally output nothing.)
Do nothing if DECL is not external. */
-extern void assemble_external PROTO((tree));
+extern void assemble_external (tree);
#endif /* TREE_CODE */
#ifdef RTX_CODE
/* Similar, for calling a library function FUN. */
-extern void assemble_external_libcall PROTO((rtx));
+extern void assemble_external_libcall (rtx);
#endif
/* Declare the label NAME global. */
-extern void assemble_global PROTO((char *));
+extern void assemble_global (char *);
/* Assemble a label named NAME. */
-extern void assemble_label PROTO((char *));
+extern void assemble_label (char *);
/* Output to FILE a reference to the assembler name of a C-level name NAME.
If NAME starts with a *, the rest of NAME is output verbatim.
Otherwise NAME is transformed in an implementation-defined way
(usually by the addition of an underscore).
Many macros in the tm file are defined to call this function. */
-extern void assemble_name PROTO((FILE *, char *));
+extern void assemble_name (FILE *, char *);
#ifdef RTX_CODE
/* Assemble the integer constant X into an object of SIZE bytes.
@@ -272,36 +272,36 @@ extern void assemble_name PROTO((FILE *, char *));
Return 1 if we were able to output the constant, otherwise 0. If FORCE is
non-zero, abort if we can't output the constant. */
-extern int assemble_integer PROTO((rtx, int, int));
+extern int assemble_integer (rtx, int, int);
#ifdef EMUSHORT
/* Assemble the floating-point constant D into an object of size MODE. */
-extern void assemble_real PROTO((REAL_VALUE_TYPE,
- enum machine_mode));
+extern void assemble_real (REAL_VALUE_TYPE,
+ enum machine_mode);
#endif
#endif
/* At the end of a function, forget the memory-constants
previously made for CONST_DOUBLEs. Mark them as not on real_constant_chain.
Also clear out real_constant_chain and clear out all the chain-pointers. */
-extern void clear_const_double_mem PROTO((void));
+extern void clear_const_double_mem (void);
/* Start deferring output of subconstants. */
-extern void defer_addressed_constants PROTO((void));
+extern void defer_addressed_constants (void);
/* Stop deferring output of subconstants,
and output now all those that have been deferred. */
-extern void output_deferred_addressed_constants PROTO((void));
+extern void output_deferred_addressed_constants (void);
/* Initialize constant pool hashing for next function. */
-extern void init_const_rtx_hash_table PROTO((void));
+extern void init_const_rtx_hash_table (void);
/* Return the size of the constant pool. */
-extern int get_pool_size PROTO((void));
+extern int get_pool_size (void);
#ifdef TREE_CODE
/* Write all the constants in the constant pool. */
-extern void output_constant_pool PROTO((char *, tree));
+extern void output_constant_pool (char *, tree);
/* Output assembler code for constant EXP to FILE, with no label.
This includes the pseudo-op such as ".int" or ".byte", and a newline.
@@ -309,7 +309,7 @@ extern void output_constant_pool PROTO((char *, tree));
Generate exactly SIZE bytes of assembler data, padding at the end
with zeros if necessary. SIZE must always be specified. */
-extern void output_constant PROTO((tree, int));
+extern void output_constant (tree, int);
#endif
/* When outputting assembler code, indicates which alternative
diff --git a/gcc/prefix.c b/gcc/prefix.c
index 6a98437..68875da 100755
--- a/gcc/prefix.c
+++ b/gcc/prefix.c
@@ -72,12 +72,12 @@ Boston, MA 02111-1307, USA. */
static const char *std_prefix = PREFIX;
-static const char *get_key_value PROTO((char *));
-static const char *translate_name PROTO((const char *));
-static char *save_string PROTO((const char *, int));
+static const char *get_key_value (char *);
+static const char *translate_name (const char *);
+static char *save_string (const char *, int);
#ifdef _WIN32
-static char *lookup_key PROTO((char *));
+static char *lookup_key (char *);
static HKEY reg_key = (HKEY) INVALID_HANDLE_VALUE;
#endif
@@ -111,7 +111,7 @@ get_key_value (key)
This function is based on the one in libiberty. */
char *
-concat VPROTO((const char *first, ...))
+concat (const char *first, ...)
{
register int length;
register char *newstr;
diff --git a/gcc/prefix.h b/gcc/prefix.h
index b7c3648..5ea515f 100755
--- a/gcc/prefix.h
+++ b/gcc/prefix.h
@@ -22,7 +22,7 @@ Boston, MA 02111-1307, USA. */
#ifndef __GCC_PREFIX_H__
#define __GCC_PREFIX_H__
-extern const char *update_path PARAMS ((const char *, const char *));
-extern void set_std_prefix PARAMS ((const char *, int));
+extern const char *update_path (const char *, const char *);
+extern void set_std_prefix (const char *, int);
#endif /* ! __GCC_PREFIX_H__ */
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 48dc7db..fbc5302 100755
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -55,7 +55,7 @@ static int indent;
extern char **insn_name_ptr;
-static void print_rtx PROTO ((rtx));
+static void print_rtx (rtx);
/* Nonzero means suppress output of instruction numbers and line number
notes in debugging dumps.
diff --git a/gcc/real.c b/gcc/real.c
index 4ad5cda..c86cbaf 100755
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -256,103 +256,103 @@ extern int extra_warnings;
extern unsigned EMUSHORT ezero[], ehalf[], eone[], etwo[];
extern unsigned EMUSHORT elog2[], esqrt2[];
-static void endian PROTO((unsigned EMUSHORT *, long *,
- enum machine_mode));
-static void eclear PROTO((unsigned EMUSHORT *));
-static void emov PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void eneg PROTO((unsigned EMUSHORT *));
-static int eisneg PROTO((unsigned EMUSHORT *));
-static int eisinf PROTO((unsigned EMUSHORT *));
-static int eisnan PROTO((unsigned EMUSHORT *));
-static void einfin PROTO((unsigned EMUSHORT *));
-static void enan PROTO((unsigned EMUSHORT *, int));
-static void emovi PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void emovo PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void ecleaz PROTO((unsigned EMUSHORT *));
-static void ecleazs PROTO((unsigned EMUSHORT *));
-static void emovz PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void einan PROTO((unsigned EMUSHORT *));
-static int eiisnan PROTO((unsigned EMUSHORT *));
-static int eiisneg PROTO((unsigned EMUSHORT *));
-static int eiisinf PROTO((unsigned EMUSHORT *));
-static int ecmpm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void eshdn1 PROTO((unsigned EMUSHORT *));
-static void eshup1 PROTO((unsigned EMUSHORT *));
-static void eshdn8 PROTO((unsigned EMUSHORT *));
-static void eshup8 PROTO((unsigned EMUSHORT *));
-static void eshup6 PROTO((unsigned EMUSHORT *));
-static void eshdn6 PROTO((unsigned EMUSHORT *));
-static void eaddm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void esubm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void m16m PROTO((unsigned int, unsigned short *,
- unsigned short *));
-static int edivm PROTO((unsigned short *, unsigned short *));
-static int emulm PROTO((unsigned short *, unsigned short *));
-static void emdnorm PROTO((unsigned EMUSHORT *, int, int, EMULONG, int));
-static void esub PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- unsigned EMUSHORT *));
-static void eadd PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- unsigned EMUSHORT *));
-static void eadd1 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- unsigned EMUSHORT *));
-static void ediv PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- unsigned EMUSHORT *));
-static void emul PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- unsigned EMUSHORT *));
-static void e53toe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void e64toe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void e113toe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void e24toe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void etoe113 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void toe113 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void etoe64 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void toe64 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void etoe53 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void toe53 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void etoe24 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void toe24 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static int ecmp PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void ltoe PROTO((HOST_WIDE_INT *, unsigned EMUSHORT *));
-static void ultoe PROTO((unsigned HOST_WIDE_INT *, unsigned EMUSHORT *));
-static void eifrac PROTO((unsigned EMUSHORT *, HOST_WIDE_INT *,
- unsigned EMUSHORT *));
-static void euifrac PROTO((unsigned EMUSHORT *, unsigned HOST_WIDE_INT *,
- unsigned EMUSHORT *));
-static int eshift PROTO((unsigned EMUSHORT *, int));
-static int enormlz PROTO((unsigned EMUSHORT *));
-static void etoasc PROTO((unsigned EMUSHORT *, char *, int));
-static void asctoe24 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe53 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe64 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe113 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe PROTO((char *, unsigned EMUSHORT *));
-static void asctoeg PROTO((char *, unsigned EMUSHORT *, int));
-static void efloor PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void eldexp PROTO((unsigned EMUSHORT *, int, unsigned EMUSHORT *));
-static void eiremain PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void mtherr PROTO((char *, int));
+static void endian (unsigned EMUSHORT *, long *,
+ enum machine_mode);
+static void eclear (unsigned EMUSHORT *);
+static void emov (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void eneg (unsigned EMUSHORT *);
+static int eisneg (unsigned EMUSHORT *);
+static int eisinf (unsigned EMUSHORT *);
+static int eisnan (unsigned EMUSHORT *);
+static void einfin (unsigned EMUSHORT *);
+static void enan (unsigned EMUSHORT *, int);
+static void emovi (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void emovo (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void ecleaz (unsigned EMUSHORT *);
+static void ecleazs (unsigned EMUSHORT *);
+static void emovz (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void einan (unsigned EMUSHORT *);
+static int eiisnan (unsigned EMUSHORT *);
+static int eiisneg (unsigned EMUSHORT *);
+static int eiisinf (unsigned EMUSHORT *);
+static int ecmpm (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void eshdn1 (unsigned EMUSHORT *);
+static void eshup1 (unsigned EMUSHORT *);
+static void eshdn8 (unsigned EMUSHORT *);
+static void eshup8 (unsigned EMUSHORT *);
+static void eshup6 (unsigned EMUSHORT *);
+static void eshdn6 (unsigned EMUSHORT *);
+static void eaddm (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void esubm (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void m16m (unsigned int, unsigned short *,
+ unsigned short *);
+static int edivm (unsigned short *, unsigned short *);
+static int emulm (unsigned short *, unsigned short *);
+static void emdnorm (unsigned EMUSHORT *, int, int, EMULONG, int);
+static void esub (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ unsigned EMUSHORT *);
+static void eadd (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ unsigned EMUSHORT *);
+static void eadd1 (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ unsigned EMUSHORT *);
+static void ediv (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ unsigned EMUSHORT *);
+static void emul (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ unsigned EMUSHORT *);
+static void e53toe (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void e64toe (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void e113toe (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void e24toe (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void etoe113 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void toe113 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void etoe64 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void toe64 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void etoe53 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void toe53 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void etoe24 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void toe24 (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static int ecmp (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void ltoe (HOST_WIDE_INT *, unsigned EMUSHORT *);
+static void ultoe (unsigned HOST_WIDE_INT *, unsigned EMUSHORT *);
+static void eifrac (unsigned EMUSHORT *, HOST_WIDE_INT *,
+ unsigned EMUSHORT *);
+static void euifrac (unsigned EMUSHORT *, unsigned HOST_WIDE_INT *,
+ unsigned EMUSHORT *);
+static int eshift (unsigned EMUSHORT *, int);
+static int enormlz (unsigned EMUSHORT *);
+static void etoasc (unsigned EMUSHORT *, char *, int);
+static void asctoe24 (char *, unsigned EMUSHORT *);
+static void asctoe53 (char *, unsigned EMUSHORT *);
+static void asctoe64 (char *, unsigned EMUSHORT *);
+static void asctoe113 (char *, unsigned EMUSHORT *);
+static void asctoe (char *, unsigned EMUSHORT *);
+static void asctoeg (char *, unsigned EMUSHORT *, int);
+static void efloor (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void eldexp (unsigned EMUSHORT *, int, unsigned EMUSHORT *);
+static void eiremain (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void mtherr (char *, int);
#ifdef DEC
-static void dectoe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void etodec PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void todec PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
+static void dectoe (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void etodec (unsigned EMUSHORT *, unsigned EMUSHORT *);
+static void todec (unsigned EMUSHORT *, unsigned EMUSHORT *);
#endif
#ifdef IBM
-static void ibmtoe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
-static void etoibm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
-static void toibm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
+static void ibmtoe (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
+static void etoibm (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
+static void toibm (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
#endif
#ifdef C4X
-static void c4xtoe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
-static void etoc4x PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
-static void toc4x PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *,
- enum machine_mode));
+static void c4xtoe (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
+static void etoc4x (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
+static void toc4x (unsigned EMUSHORT *, unsigned EMUSHORT *,
+ enum machine_mode);
#endif
-static void make_nan PROTO((unsigned EMUSHORT *, int, enum machine_mode));
+static void make_nan (unsigned EMUSHORT *, int, enum machine_mode);
/* Copy 32-bit numbers obtained from array containing 16-bit numbers,
swapping ends if required, into output array of longs. The
diff --git a/gcc/real.h b/gcc/real.h
index 14946b2..3bbcc26 100755
--- a/gcc/real.h
+++ b/gcc/real.h
@@ -66,7 +66,7 @@ Boston, MA 02111-1307, USA. */
#define REAL_VALUE_TYPE double
-extern int significand_size PROTO((enum machine_mode));
+extern int significand_size (enum machine_mode);
/* If emulation has been enabled by defining REAL_ARITHMETIC or by
setting LONG_DOUBLE_TYPE_SIZE to 96 or 128, then define macros so that
@@ -78,36 +78,36 @@ extern int significand_size PROTO((enum machine_mode));
earith (&(value), (code), &(d1), &(d2))
/* Declare functions in real.c. */
-extern void earith PROTO((REAL_VALUE_TYPE *, int,
- REAL_VALUE_TYPE *, REAL_VALUE_TYPE *));
-extern REAL_VALUE_TYPE etrunci PROTO((REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE etruncui PROTO((REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE ereal_atof PROTO((char *, enum machine_mode));
-extern REAL_VALUE_TYPE ereal_negate PROTO((REAL_VALUE_TYPE));
-extern HOST_WIDE_INT efixi PROTO((REAL_VALUE_TYPE));
-extern unsigned HOST_WIDE_INT efixui PROTO((REAL_VALUE_TYPE));
-extern void ereal_from_int PROTO((REAL_VALUE_TYPE *,
+extern void earith (REAL_VALUE_TYPE *, int,
+ REAL_VALUE_TYPE *, REAL_VALUE_TYPE *);
+extern REAL_VALUE_TYPE etrunci (REAL_VALUE_TYPE);
+extern REAL_VALUE_TYPE etruncui (REAL_VALUE_TYPE);
+extern REAL_VALUE_TYPE ereal_atof (char *, enum machine_mode);
+extern REAL_VALUE_TYPE ereal_negate (REAL_VALUE_TYPE);
+extern HOST_WIDE_INT efixi (REAL_VALUE_TYPE);
+extern unsigned HOST_WIDE_INT efixui (REAL_VALUE_TYPE);
+extern void ereal_from_int (REAL_VALUE_TYPE *,
HOST_WIDE_INT, HOST_WIDE_INT,
- enum machine_mode));
-extern void ereal_from_uint PROTO((REAL_VALUE_TYPE *,
+ enum machine_mode);
+extern void ereal_from_uint (REAL_VALUE_TYPE *,
unsigned HOST_WIDE_INT,
unsigned HOST_WIDE_INT,
- enum machine_mode));
-extern void ereal_to_int PROTO((HOST_WIDE_INT *, HOST_WIDE_INT *,
- REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE ereal_ldexp PROTO((REAL_VALUE_TYPE, int));
-
-extern void etartdouble PROTO((REAL_VALUE_TYPE, long *));
-extern void etarldouble PROTO((REAL_VALUE_TYPE, long *));
-extern void etardouble PROTO((REAL_VALUE_TYPE, long *));
-extern long etarsingle PROTO((REAL_VALUE_TYPE));
-extern void ereal_to_decimal PROTO((REAL_VALUE_TYPE, char *));
-extern int ereal_cmp PROTO((REAL_VALUE_TYPE, REAL_VALUE_TYPE));
-extern int ereal_isneg PROTO((REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE ereal_unto_float PROTO((long));
-extern REAL_VALUE_TYPE ereal_unto_double PROTO((long *));
-extern REAL_VALUE_TYPE ereal_from_float PROTO((HOST_WIDE_INT));
-extern REAL_VALUE_TYPE ereal_from_double PROTO((HOST_WIDE_INT *));
+ enum machine_mode);
+extern void ereal_to_int (HOST_WIDE_INT *, HOST_WIDE_INT *,
+ REAL_VALUE_TYPE);
+extern REAL_VALUE_TYPE ereal_ldexp (REAL_VALUE_TYPE, int);
+
+extern void etartdouble (REAL_VALUE_TYPE, long *);
+extern void etarldouble (REAL_VALUE_TYPE, long *);
+extern void etardouble (REAL_VALUE_TYPE, long *);
+extern long etarsingle (REAL_VALUE_TYPE);
+extern void ereal_to_decimal (REAL_VALUE_TYPE, char *);
+extern int ereal_cmp (REAL_VALUE_TYPE, REAL_VALUE_TYPE);
+extern int ereal_isneg (REAL_VALUE_TYPE);
+extern REAL_VALUE_TYPE ereal_unto_float (long);
+extern REAL_VALUE_TYPE ereal_unto_double (long *);
+extern REAL_VALUE_TYPE ereal_from_float (HOST_WIDE_INT);
+extern REAL_VALUE_TYPE ereal_from_double (HOST_WIDE_INT *);
#define REAL_VALUES_EQUAL(x, y) (ereal_cmp ((x), (y)) == 0)
/* true if x < y : */
@@ -117,8 +117,8 @@ extern REAL_VALUE_TYPE ereal_from_double PROTO((HOST_WIDE_INT *));
/* These return REAL_VALUE_TYPE: */
#define REAL_VALUE_RNDZINT(x) (etrunci (x))
#define REAL_VALUE_UNSIGNED_RNDZINT(x) (etruncui (x))
-extern REAL_VALUE_TYPE real_value_truncate PROTO ((enum machine_mode,
- REAL_VALUE_TYPE));
+extern REAL_VALUE_TYPE real_value_truncate (enum machine_mode,
+ REAL_VALUE_TYPE);
#define REAL_VALUE_TRUNCATE(mode, x) real_value_truncate (mode, x)
/* These return HOST_WIDE_INT: */
@@ -268,7 +268,7 @@ REAL_VALUE_TYPE ereal_atof ();
/* Hexadecimal floating constant input for use with host computer's
fp arithmetic. */
#ifndef REAL_VALUE_HTOF
-extern REAL_VALUE_TYPE real_hex_to_f PROTO((char *, enum machine_mode));
+extern REAL_VALUE_TYPE real_hex_to_f (char *, enum machine_mode);
#define REAL_VALUE_HTOF(s,m) real_hex_to_f(s,m)
#endif
@@ -282,7 +282,7 @@ extern REAL_VALUE_TYPE real_hex_to_f PROTO((char *, enum machine_mode));
size and where `float' is SFmode. */
/* Don't use REAL_VALUE_TRUNCATE directly--always call real_value_truncate. */
-extern REAL_VALUE_TYPE real_value_truncate PROTO((enum machine_mode, REAL_VALUE_TYPE));
+extern REAL_VALUE_TYPE real_value_truncate (enum machine_mode, REAL_VALUE_TYPE);
#ifndef REAL_VALUE_TRUNCATE
#define REAL_VALUE_TRUNCATE(mode, x) \
@@ -305,9 +305,9 @@ extern REAL_VALUE_TYPE real_value_truncate PROTO((enum machine_mode, REAL_VALUE_
#define REAL_VALUE_NEGATIVE(x) (target_negative (x))
#endif
-extern int target_isnan PROTO ((REAL_VALUE_TYPE));
-extern int target_isinf PROTO ((REAL_VALUE_TYPE));
-extern int target_negative PROTO ((REAL_VALUE_TYPE));
+extern int target_isnan (REAL_VALUE_TYPE);
+extern int target_isinf (REAL_VALUE_TYPE);
+extern int target_negative (REAL_VALUE_TYPE);
/* Determine whether a floating-point value X is minus 0. */
#ifndef REAL_VALUE_MINUS_ZERO
@@ -351,8 +351,8 @@ union real_extract
/* Function to return a real value (not a tree node)
from a given integer constant. */
union tree_node;
-REAL_VALUE_TYPE real_value_from_int_cst PROTO ((union tree_node *,
- union tree_node *));
+REAL_VALUE_TYPE real_value_from_int_cst (union tree_node *,
+ union tree_node *);
#define REAL_VALUE_FROM_CONST_DOUBLE(to, from) \
do { union real_extract u; \
@@ -362,8 +362,8 @@ do { union real_extract u; \
/* Return a CONST_DOUBLE with value R and mode M. */
#define CONST_DOUBLE_FROM_REAL_VALUE(r, m) immed_real_const_1 (r, m)
-extern struct rtx_def *immed_real_const_1 PROTO((REAL_VALUE_TYPE,
- enum machine_mode));
+extern struct rtx_def *immed_real_const_1 (REAL_VALUE_TYPE,
+ enum machine_mode);
/* Convert a floating point value `r', that can be interpreted
@@ -374,11 +374,11 @@ extern struct rtx_def *immed_real_const_1 PROTO((REAL_VALUE_TYPE,
#endif
/* Replace R by 1/R in the given machine mode, if the result is exact. */
-extern int exact_real_inverse PROTO((enum machine_mode, REAL_VALUE_TYPE *));
+extern int exact_real_inverse (enum machine_mode, REAL_VALUE_TYPE *);
-extern void debug_real PROTO ((REAL_VALUE_TYPE));
+extern void debug_real (REAL_VALUE_TYPE);
/* In varasm.c */
-extern void assemble_real PROTO ((REAL_VALUE_TYPE,
- enum machine_mode));
+extern void assemble_real (REAL_VALUE_TYPE,
+ enum machine_mode);
#endif /* Not REAL_H_INCLUDED */
diff --git a/gcc/recog.c b/gcc/recog.c
index 32d31d5..f22ef3d 100755
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -50,10 +50,10 @@ Boston, MA 02111-1307, USA. */
#endif
#endif
-static void validate_replace_rtx_1 PROTO((rtx *, rtx, rtx, rtx));
-static rtx *find_single_use_1 PROTO((rtx, rtx *));
-static rtx *find_constant_term_loc PROTO((rtx *));
-static int insn_invalid_p PROTO((rtx));
+static void validate_replace_rtx_1 (rtx *, rtx, rtx, rtx);
+static rtx *find_single_use_1 (rtx, rtx *);
+static rtx *find_constant_term_loc (rtx *);
+static int insn_invalid_p (rtx);
/* Nonzero means allow operands to be volatile.
This should be 0 if you are generating rtl, such as if you are calling
diff --git a/gcc/recog.h b/gcc/recog.h
index d8442eb..a809310 100755
--- a/gcc/recog.h
+++ b/gcc/recog.h
@@ -66,53 +66,53 @@ struct operand_alternative
};
-extern void init_recog PROTO((void));
-extern void init_recog_no_volatile PROTO((void));
-extern int recog_memoized PROTO((rtx));
-extern int check_asm_operands PROTO((rtx));
-extern int validate_change PROTO((rtx, rtx *, rtx, int));
-extern int apply_change_group PROTO((void));
-extern int num_validated_changes PROTO((void));
-extern void cancel_changes PROTO((int));
-extern int constrain_operands PROTO((int));
-extern int memory_address_p PROTO((enum machine_mode, rtx));
-extern int strict_memory_address_p PROTO((enum machine_mode, rtx));
-extern int validate_replace_rtx PROTO((rtx, rtx, rtx));
-extern void validate_replace_rtx_group PROTO((rtx, rtx, rtx));
-extern int validate_replace_src PROTO((rtx, rtx, rtx));
+extern void init_recog (void);
+extern void init_recog_no_volatile (void);
+extern int recog_memoized (rtx);
+extern int check_asm_operands (rtx);
+extern int validate_change (rtx, rtx *, rtx, int);
+extern int apply_change_group (void);
+extern int num_validated_changes (void);
+extern void cancel_changes (int);
+extern int constrain_operands (int);
+extern int memory_address_p (enum machine_mode, rtx);
+extern int strict_memory_address_p (enum machine_mode, rtx);
+extern int validate_replace_rtx (rtx, rtx, rtx);
+extern void validate_replace_rtx_group (rtx, rtx, rtx);
+extern int validate_replace_src (rtx, rtx, rtx);
#ifdef HAVE_cc0
-extern int next_insn_tests_no_inequality PROTO ((rtx));
+extern int next_insn_tests_no_inequality (rtx);
#endif
-extern int reg_fits_class_p PROTO((rtx, enum reg_class, int,
- enum machine_mode));
-extern rtx *find_single_use PROTO((rtx, rtx, rtx *));
-
-extern int general_operand PROTO((rtx, enum machine_mode));
-extern int address_operand PROTO((rtx, enum machine_mode));
-extern int register_operand PROTO((rtx, enum machine_mode));
-extern int scratch_operand PROTO((rtx, enum machine_mode));
-extern int immediate_operand PROTO((rtx, enum machine_mode));
-extern int const_int_operand PROTO((rtx, enum machine_mode));
-extern int const_double_operand PROTO((rtx, enum machine_mode));
-extern int nonimmediate_operand PROTO((rtx, enum machine_mode));
-extern int nonmemory_operand PROTO((rtx, enum machine_mode));
-extern int push_operand PROTO((rtx, enum machine_mode));
-extern int pop_operand PROTO((rtx, enum machine_mode));
-extern int memory_operand PROTO((rtx, enum machine_mode));
-extern int indirect_operand PROTO((rtx, enum machine_mode));
-extern int mode_independent_operand PROTO((rtx, enum machine_mode));
-extern int comparison_operator PROTO((rtx, enum machine_mode));
-
-extern int offsettable_memref_p PROTO((rtx));
-extern int offsettable_nonstrict_memref_p PROTO((rtx));
-extern int offsettable_address_p PROTO((int, enum machine_mode, rtx));
-extern int mode_dependent_address_p PROTO((rtx));
-
-extern int recog PROTO((rtx, rtx, int *));
-extern void add_clobbers PROTO((rtx, int));
-extern void insn_extract PROTO((rtx));
-extern void extract_insn PROTO((rtx));
-extern void preprocess_constraints PROTO((void));
+extern int reg_fits_class_p (rtx, enum reg_class, int,
+ enum machine_mode);
+extern rtx *find_single_use (rtx, rtx, rtx *);
+
+extern int general_operand (rtx, enum machine_mode);
+extern int address_operand (rtx, enum machine_mode);
+extern int register_operand (rtx, enum machine_mode);
+extern int scratch_operand (rtx, enum machine_mode);
+extern int immediate_operand (rtx, enum machine_mode);
+extern int const_int_operand (rtx, enum machine_mode);
+extern int const_double_operand (rtx, enum machine_mode);
+extern int nonimmediate_operand (rtx, enum machine_mode);
+extern int nonmemory_operand (rtx, enum machine_mode);
+extern int push_operand (rtx, enum machine_mode);
+extern int pop_operand (rtx, enum machine_mode);
+extern int memory_operand (rtx, enum machine_mode);
+extern int indirect_operand (rtx, enum machine_mode);
+extern int mode_independent_operand (rtx, enum machine_mode);
+extern int comparison_operator (rtx, enum machine_mode);
+
+extern int offsettable_memref_p (rtx);
+extern int offsettable_nonstrict_memref_p (rtx);
+extern int offsettable_address_p (int, enum machine_mode, rtx);
+extern int mode_dependent_address_p (rtx);
+
+extern int recog (rtx, rtx, int *);
+extern void add_clobbers (rtx, int);
+extern void insn_extract (rtx);
+extern void extract_insn (rtx);
+extern void preprocess_constraints (void);
/* Nonzero means volatile operands are recognized. */
extern int volatile_ok;
diff --git a/gcc/regclass.c b/gcc/regclass.c
index eab1a98..aed05c2 100755
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -41,8 +41,8 @@ Boston, MA 02111-1307, USA. */
#define REGISTER_MOVE_COST(x, y) 2
#endif
-static void init_reg_sets_1 PROTO((void));
-static void init_reg_modes PROTO((void));
+static void init_reg_sets_1 (void);
+static void init_reg_modes (void);
/* If we have auto-increment or auto-decrement and we can have secondary
reloads, we are not allowed to use classes requiring secondary
@@ -667,17 +667,17 @@ static int loop_depth;
static int loop_cost;
-static int n_occurrences PROTO((int, char *));
-static rtx scan_one_insn PROTO((rtx, int));
-static void record_reg_classes PROTO((int, int, rtx *, enum machine_mode *,
- char **, rtx));
-static int copy_cost PROTO((rtx, enum machine_mode,
- enum reg_class, int));
-static void record_address_regs PROTO((rtx, enum reg_class, int));
+static int n_occurrences (int, char *);
+static rtx scan_one_insn (rtx, int);
+static void record_reg_classes (int, int, rtx *, enum machine_mode *,
+ char **, rtx);
+static int copy_cost (rtx, enum machine_mode,
+ enum reg_class, int);
+static void record_address_regs (rtx, enum reg_class, int);
#ifdef FORBIDDEN_INC_DEC_CLASSES
-static int auto_inc_dec_reg_p PROTO((rtx, enum machine_mode));
+static int auto_inc_dec_reg_p (rtx, enum machine_mode);
#endif
-static void reg_scan_mark_refs PROTO((rtx, rtx, int, int));
+static void reg_scan_mark_refs (rtx, rtx, int, int);
/* Return the reg_class in which pseudo reg number REGNO is best allocated.
This function is sometimes called before the info has been computed.
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 32d9305..244ba06 100755
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -42,11 +42,11 @@ Boston, MA 02111-1307, USA. */
#include "obstack.h"
/* END CYGNUS LOCAL */
-static int optimize_reg_copy_1 PROTO((rtx, rtx, rtx));
-static void optimize_reg_copy_2 PROTO((rtx, rtx, rtx));
-static void optimize_reg_copy_3 PROTO((rtx, rtx, rtx));
-static rtx gen_add3_insn PROTO((rtx, rtx, rtx));
-static void copy_src_to_dest PROTO((rtx, rtx, rtx, int, int));
+static int optimize_reg_copy_1 (rtx, rtx, rtx);
+static void optimize_reg_copy_2 (rtx, rtx, rtx);
+static void optimize_reg_copy_3 (rtx, rtx, rtx);
+static rtx gen_add3_insn (rtx, rtx, rtx);
+static void copy_src_to_dest (rtx, rtx, rtx, int, int);
static int *regmove_bb_head;
struct match {
@@ -56,27 +56,27 @@ struct match {
int early_clobber[MAX_RECOG_OPERANDS];
};
-static int try_auto_increment PROTO((rtx, rtx, rtx, rtx, HOST_WIDE_INT, int));
-static int find_matches PROTO((rtx, struct match *));
-static int fixup_match_1 PROTO((rtx, rtx, rtx, rtx, rtx, int, int, int, FILE *))
+static int try_auto_increment (rtx, rtx, rtx, rtx, HOST_WIDE_INT, int);
+static int find_matches (rtx, struct match *);
+static int fixup_match_1 (rtx, rtx, rtx, rtx, rtx, int, int, int, FILE *)
;
-static int reg_is_remote_constant_p PROTO((rtx, rtx, rtx));
-static int stable_but_for_p PROTO((rtx, rtx, rtx));
-static int regclass_compatible_p PROTO((int, int));
+static int reg_is_remote_constant_p (rtx, rtx, rtx);
+static int stable_but_for_p (rtx, rtx, rtx);
+static int regclass_compatible_p (int, int);
/* CYGNUS LOCAL SH4-OPT */
-static struct rel_use *lookup_related PROTO((int, enum reg_class, HOST_WIDE_INT));
-static void rel_build_chain PROTO((struct rel_use *, struct rel_use *, int));
-static void rel_record_mem PROTO((rtx *, rtx, int, int, int, rtx, int, int));
-static void invalidate_related PROTO((rtx, int));
-static void find_related PROTO((rtx *, rtx, int, int));
-static int chain_starts_earlier PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static int chain_ends_later PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static struct related *optimize_related_values_1 PROTO((struct related *, int,
- int, rtx, FILE *));
-static void optimize_related_values_0 PROTO((struct related *, int, int,
- rtx, FILE *));
-static void optimize_related_values PROTO((int, FILE *));
-static void count_sets PROTO((rtx, rtx));
+static struct rel_use *lookup_related (int, enum reg_class, HOST_WIDE_INT);
+static void rel_build_chain (struct rel_use *, struct rel_use *, int);
+static void rel_record_mem (rtx *, rtx, int, int, int, rtx, int, int);
+static void invalidate_related (rtx, int);
+static void find_related (rtx *, rtx, int, int);
+static int chain_starts_earlier (const GENERIC_PTR, const GENERIC_PTR);
+static int chain_ends_later (const GENERIC_PTR, const GENERIC_PTR);
+static struct related *optimize_related_values_1 (struct related *, int,
+ int, rtx, FILE *);
+static void optimize_related_values_0 (struct related *, int, int,
+ rtx, FILE *);
+static void optimize_related_values (int, FILE *);
+static void count_sets (rtx, rtx);
/* END CYGNUS LOCAL */
static int loop_depth;
diff --git a/gcc/regs.h b/gcc/regs.h
index 2b72a44..94f61b2 100755
--- a/gcc/regs.h
+++ b/gcc/regs.h
@@ -220,4 +220,4 @@ extern int caller_save_needed;
#endif
/* Allocate reg_n_info tables */
-extern void allocate_reg_info PROTO((size_t, int, int));
+extern void allocate_reg_info (size_t, int, int);
diff --git a/gcc/reload.c b/gcc/reload.c
index 639b03f..7c0122e 100755
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -298,39 +298,39 @@ static int output_reloadnum;
: (type)))
#ifdef HAVE_SECONDARY_RELOADS
-static int push_secondary_reload PROTO((int, rtx, int, int, enum reg_class,
+static int push_secondary_reload (int, rtx, int, int, enum reg_class,
enum machine_mode, enum reload_type,
- enum insn_code *));
+ enum insn_code *);
#endif
-static enum reg_class find_valid_class PROTO((enum machine_mode, int));
-static int push_reload PROTO((rtx, rtx, rtx *, rtx *, enum reg_class,
+static enum reg_class find_valid_class (enum machine_mode, int);
+static int push_reload (rtx, rtx, rtx *, rtx *, enum reg_class,
enum machine_mode, enum machine_mode,
- int, int, int, enum reload_type));
-static void push_replacement PROTO((rtx *, int, enum machine_mode));
-static void combine_reloads PROTO((void));
-static rtx find_dummy_reload PROTO((rtx, rtx, rtx *, rtx *,
+ int, int, int, enum reload_type);
+static void push_replacement (rtx *, int, enum machine_mode);
+static void combine_reloads (void);
+static rtx find_dummy_reload (rtx, rtx, rtx *, rtx *,
enum machine_mode, enum machine_mode,
- enum reg_class, int, int));
-static int earlyclobber_operand_p PROTO((rtx));
-static int hard_reg_set_here_p PROTO((int, int, rtx));
-static struct decomposition decompose PROTO((rtx));
-static int immune_p PROTO((rtx, rtx, struct decomposition));
-static int alternative_allows_memconst PROTO((char *, int));
-static rtx find_reloads_toplev PROTO((rtx, int, enum reload_type, int, int, rtx));
-static rtx make_memloc PROTO((rtx, int));
-static int find_reloads_address PROTO((enum machine_mode, rtx *, rtx, rtx *,
- int, enum reload_type, int, rtx));
-static rtx subst_reg_equivs PROTO((rtx, rtx));
-static rtx subst_indexed_address PROTO((rtx));
-static int find_reloads_address_1 PROTO((enum machine_mode, rtx, int, rtx *,
- int, enum reload_type,int, rtx));
-static void find_reloads_address_part PROTO((rtx, rtx *, enum reg_class,
+ enum reg_class, int, int);
+static int earlyclobber_operand_p (rtx);
+static int hard_reg_set_here_p (int, int, rtx);
+static struct decomposition decompose (rtx);
+static int immune_p (rtx, rtx, struct decomposition);
+static int alternative_allows_memconst (char *, int);
+static rtx find_reloads_toplev (rtx, int, enum reload_type, int, int, rtx);
+static rtx make_memloc (rtx, int);
+static int find_reloads_address (enum machine_mode, rtx *, rtx, rtx *,
+ int, enum reload_type, int, rtx);
+static rtx subst_reg_equivs (rtx, rtx);
+static rtx subst_indexed_address (rtx);
+static int find_reloads_address_1 (enum machine_mode, rtx, int, rtx *,
+ int, enum reload_type,int, rtx);
+static void find_reloads_address_part (rtx, rtx *, enum reg_class,
enum machine_mode, int,
- enum reload_type, int));
-static rtx find_reloads_subreg_address PROTO((rtx, int, int, enum reload_type,
- int, rtx));
-static int find_inc_amount PROTO((rtx, rtx));
-static int loc_mentioned_in_p PROTO((rtx *, rtx));
+ enum reload_type, int);
+static rtx find_reloads_subreg_address (rtx, int, int, enum reload_type,
+ int, rtx);
+static int find_inc_amount (rtx, rtx);
+static int loc_mentioned_in_p (rtx *, rtx);
#ifdef HAVE_SECONDARY_RELOADS
diff --git a/gcc/reload.h b/gcc/reload.h
index 968d312..b0ba10c 100755
--- a/gcc/reload.h
+++ b/gcc/reload.h
@@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */
#define MEMORY_MOVE_COST(MODE,CLASS,IN) 4
#endif
#endif
-extern int memory_move_secondary_cost PROTO ((enum machine_mode, enum reg_class, int));
+extern int memory_move_secondary_cost (enum machine_mode, enum reg_class, int);
/* See reload.c and reload1.c for comments on these variables. */
@@ -217,9 +217,9 @@ struct insn_chain
extern struct insn_chain *reload_insn_chain;
/* Allocate a new insn_chain structure. */
-extern struct insn_chain *new_insn_chain PROTO((void));
+extern struct insn_chain *new_insn_chain (void);
-extern void compute_use_by_pseudos PROTO((HARD_REG_SET *, regset));
+extern void compute_use_by_pseudos (HARD_REG_SET *, regset);
#endif
/* Functions from reload.c: */
@@ -227,118 +227,118 @@ extern void compute_use_by_pseudos PROTO((HARD_REG_SET *, regset));
/* Return a memory location that will be used to copy X in mode MODE.
If we haven't already made a location for this mode in this insn,
call find_reloads_address on the location being returned. */
-extern rtx get_secondary_mem PROTO((rtx, enum machine_mode,
- int, enum reload_type));
+extern rtx get_secondary_mem (rtx, enum machine_mode,
+ int, enum reload_type);
/* Clear any secondary memory locations we've made. */
-extern void clear_secondary_mem PROTO((void));
+extern void clear_secondary_mem (void);
/* Transfer all replacements that used to be in reload FROM to be in
reload TO. */
-extern void transfer_replacements PROTO((int, int));
+extern void transfer_replacements (int, int);
/* IN_RTX is the value loaded by a reload that we now decided to inherit,
or a subpart of it. If we have any replacements registered for IN_RTX,
chancel the reloads that were supposed to load them.
Return non-zero if we chanceled any reloads. */
-extern int remove_address_replacements PROTO((rtx in_rtx));
+extern int remove_address_replacements (rtx in_rtx);
/* Like rtx_equal_p except that it allows a REG and a SUBREG to match
if they are the same hard reg, and has special hacks for
autoincrement and autodecrement. */
-extern int operands_match_p PROTO((rtx, rtx));
+extern int operands_match_p (rtx, rtx);
/* Return 1 if altering OP will not modify the value of CLOBBER. */
-extern int safe_from_earlyclobber PROTO((rtx, rtx));
+extern int safe_from_earlyclobber (rtx, rtx);
/* Search the body of INSN for values that need reloading and record them
with push_reload. REPLACE nonzero means record also where the values occur
so that subst_reloads can be used. */
-extern int find_reloads PROTO((rtx, int, int, int, short *));
+extern int find_reloads (rtx, int, int, int, short *);
/* Compute the sum of X and Y, making canonicalizations assumed in an
address, namely: sum constant integers, surround the sum of two
constants with a CONST, put the constant as the second operand, and
group the constant on the outermost sum. */
-extern rtx form_sum PROTO((rtx, rtx));
+extern rtx form_sum (rtx, rtx);
/* Substitute into the current INSN the registers into which we have reloaded
the things that need reloading. */
-extern void subst_reloads PROTO((void));
+extern void subst_reloads (void);
/* Make a copy of any replacements being done into X and move those copies
to locations in Y, a copy of X. We only look at the highest level of
the RTL. */
-extern void copy_replacements PROTO((rtx, rtx));
+extern void copy_replacements (rtx, rtx);
/* Change any replacements being done to *X to be done to *Y */
-extern void move_replacements PROTO((rtx *x, rtx *y));
+extern void move_replacements (rtx *x, rtx *y);
/* If LOC was scheduled to be replaced by something, return the replacement.
Otherwise, return *LOC. */
-extern rtx find_replacement PROTO((rtx *));
+extern rtx find_replacement (rtx *);
/* Return nonzero if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X
other than being stored into. */
-extern int refers_to_regno_for_reload_p PROTO((int, int, rtx, rtx *));
+extern int refers_to_regno_for_reload_p (int, int, rtx, rtx *);
/* Nonzero if modifying X will affect IN. */
-extern int reg_overlap_mentioned_for_reload_p PROTO((rtx, rtx));
+extern int reg_overlap_mentioned_for_reload_p (rtx, rtx);
/* Return nonzero if anything in X contains a MEM. Look also for pseudo
registers. */
-extern int refers_to_mem_for_reload_p PROTO((rtx));
+extern int refers_to_mem_for_reload_p (rtx);
/* Check the insns before INSN to see if there is a suitable register
containing the same value as GOAL. */
-extern rtx find_equiv_reg PROTO((rtx, rtx, enum reg_class, int, short *,
- int, enum machine_mode));
+extern rtx find_equiv_reg (rtx, rtx, enum reg_class, int, short *,
+ int, enum machine_mode);
/* Return 1 if register REGNO is the subject of a clobber in insn INSN. */
-extern int regno_clobbered_p PROTO((int, rtx));
+extern int regno_clobbered_p (int, rtx);
/* Functions in reload1.c: */
-extern int reloads_conflict PROTO ((int, int));
+extern int reloads_conflict (int, int);
-int count_occurrences PROTO((rtx, rtx));
+int count_occurrences (rtx, rtx);
/* Initialize the reload pass once per compilation. */
-extern void init_reload PROTO((void));
+extern void init_reload (void);
/* The reload pass itself. */
-extern int reload PROTO((rtx, int, FILE *));
+extern int reload (rtx, int, FILE *);
/* Mark the slots in regs_ever_live for the hard regs
used by pseudo-reg number REGNO. */
-extern void mark_home_live PROTO((int));
+extern void mark_home_live (int);
/* Scan X and replace any eliminable registers (such as fp) with a
replacement (such as sp), plus an offset. */
-extern rtx eliminate_regs PROTO((rtx, enum machine_mode, rtx));
+extern rtx eliminate_regs (rtx, enum machine_mode, rtx);
/* Emit code to perform a reload from IN (which may be a reload register) to
OUT (which may also be a reload register). IN or OUT is from operand
OPNUM with reload type TYPE. */
-extern rtx gen_reload PROTO((rtx, rtx, int, enum reload_type));
+extern rtx gen_reload (rtx, rtx, int, enum reload_type);
/* Deallocate the reload register used by reload number R. */
-extern void deallocate_reload_reg PROTO((int r));
+extern void deallocate_reload_reg (int r);
/* Functions in caller-save.c: */
/* Initialize for caller-save. */
-extern void init_caller_save PROTO((void));
+extern void init_caller_save (void);
/* Initialize save areas by showing that we haven't allocated any yet. */
-extern void init_save_areas PROTO((void));
+extern void init_save_areas (void);
/* Allocate save areas for any hard registers that might need saving. */
-extern void setup_save_areas PROTO((void));
+extern void setup_save_areas (void);
/* Find the places where hard regs are live across calls and save them. */
-extern void save_call_clobbered_regs PROTO((void));
+extern void save_call_clobbered_regs (void);
/* Replace (subreg (reg)) with the appropriate (reg) for any operands. */
-extern void cleanup_subreg_operands PROTO ((rtx));
+extern void cleanup_subreg_operands (rtx);
diff --git a/gcc/reload1.c b/gcc/reload1.c
index dc075a5..b32c3f4 100755
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -358,81 +358,81 @@ struct hard_reg_n_uses
unsigned int uses;
};
-static void maybe_fix_stack_asms PROTO((void));
-static void calculate_needs_all_insns PROTO((int));
-static void calculate_needs PROTO((struct insn_chain *));
-static void find_reload_regs PROTO((struct insn_chain *chain,
- FILE *));
-static void find_tworeg_group PROTO((struct insn_chain *, int,
- FILE *));
-static void find_group PROTO((struct insn_chain *, int,
- FILE *));
-static int possible_group_p PROTO((struct insn_chain *, int));
-static void count_possible_groups PROTO((struct insn_chain *, int));
-static int modes_equiv_for_class_p PROTO((enum machine_mode,
+static void maybe_fix_stack_asms (void);
+static void calculate_needs_all_insns (int);
+static void calculate_needs (struct insn_chain *);
+static void find_reload_regs (struct insn_chain *chain,
+ FILE *);
+static void find_tworeg_group (struct insn_chain *, int,
+ FILE *);
+static void find_group (struct insn_chain *, int,
+ FILE *);
+static int possible_group_p (struct insn_chain *, int);
+static void count_possible_groups (struct insn_chain *, int);
+static int modes_equiv_for_class_p (enum machine_mode,
enum machine_mode,
- enum reg_class));
-static void delete_caller_save_insns PROTO((void));
-
-static void spill_failure PROTO((rtx));
-static void new_spill_reg PROTO((struct insn_chain *, int, int,
- int, FILE *));
-static void maybe_mark_pseudo_spilled PROTO((int));
-static void delete_dead_insn PROTO((rtx));
-static void alter_reg PROTO((int, int));
-static void set_label_offsets PROTO((rtx, rtx, int));
-static int eliminate_regs_in_insn PROTO((rtx, int));
-static void update_eliminable_offsets PROTO((void));
-static void mark_not_eliminable PROTO((rtx, rtx));
-static void set_initial_elim_offsets PROTO((void));
-static void verify_initial_elim_offsets PROTO((void));
-static void set_initial_label_offsets PROTO((void));
-static void set_offsets_for_label PROTO((rtx));
-static void init_elim_table PROTO((void));
-static void update_eliminables PROTO((HARD_REG_SET *));
-static void spill_hard_reg PROTO((int, FILE *, int));
-static int finish_spills PROTO((int, FILE *));
-static void ior_hard_reg_set PROTO((HARD_REG_SET *, HARD_REG_SET *));
-static void scan_paradoxical_subregs PROTO((rtx));
-static int hard_reg_use_compare PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static void count_pseudo PROTO((struct hard_reg_n_uses *, int));
-static void order_regs_for_reload PROTO((struct insn_chain *));
-static void reload_as_needed PROTO((int));
-static void forget_old_reloads_1 PROTO((rtx, rtx));
-static int reload_reg_class_lower PROTO((const GENERIC_PTR, const GENERIC_PTR));
-static void mark_reload_reg_in_use PROTO((int, int, enum reload_type,
- enum machine_mode));
-static void clear_reload_reg_in_use PROTO((int, int, enum reload_type,
- enum machine_mode));
-static int reload_reg_free_p PROTO((int, int, enum reload_type));
-static int reload_reg_free_for_value_p PROTO((int, int, enum reload_type, rtx, rtx, int, int));
-static int reload_reg_reaches_end_p PROTO((int, int, enum reload_type));
-static int allocate_reload_reg PROTO((struct insn_chain *, int, int,
- int));
-static void choose_reload_regs PROTO((struct insn_chain *));
-static void merge_assigned_reloads PROTO((rtx));
-static void emit_reload_insns PROTO((struct insn_chain *));
-static void delete_output_reload PROTO((rtx, int, int));
-static void delete_address_reloads PROTO((rtx, rtx));
-static void delete_address_reloads_1 PROTO((rtx, rtx, rtx));
-static rtx inc_for_reload PROTO((rtx, rtx, rtx, int));
-static int constraint_accepts_reg_p PROTO((char *, rtx));
-static void reload_cse_regs_1 PROTO((rtx));
-static void reload_cse_invalidate_regno PROTO((int, enum machine_mode, int));
-static int reload_cse_mem_conflict_p PROTO((rtx, rtx));
-static void reload_cse_invalidate_mem PROTO((rtx));
-static void reload_cse_invalidate_rtx PROTO((rtx, rtx));
-static int reload_cse_regno_equal_p PROTO((int, rtx, enum machine_mode));
-static int reload_cse_noop_set_p PROTO((rtx, rtx));
-static int reload_cse_simplify_set PROTO((rtx, rtx));
-static int reload_cse_simplify_operands PROTO((rtx));
-static void reload_cse_check_clobber PROTO((rtx, rtx));
-static void reload_cse_record_set PROTO((rtx, rtx));
-static void reload_combine PROTO((void));
-static void reload_combine_note_use PROTO((rtx *, rtx));
-static void reload_combine_note_store PROTO((rtx, rtx));
-static void reload_cse_move2add PROTO((rtx));
-static void move2add_note_store PROTO((rtx, rtx));
+ enum reg_class);
+static void delete_caller_save_insns (void);
+
+static void spill_failure (rtx);
+static void new_spill_reg (struct insn_chain *, int, int,
+ int, FILE *);
+static void maybe_mark_pseudo_spilled (int);
+static void delete_dead_insn (rtx);
+static void alter_reg (int, int);
+static void set_label_offsets (rtx, rtx, int);
+static int eliminate_regs_in_insn (rtx, int);
+static void update_eliminable_offsets (void);
+static void mark_not_eliminable (rtx, rtx);
+static void set_initial_elim_offsets (void);
+static void verify_initial_elim_offsets (void);
+static void set_initial_label_offsets (void);
+static void set_offsets_for_label (rtx);
+static void init_elim_table (void);
+static void update_eliminables (HARD_REG_SET *);
+static void spill_hard_reg (int, FILE *, int);
+static int finish_spills (int, FILE *);
+static void ior_hard_reg_set (HARD_REG_SET *, HARD_REG_SET *);
+static void scan_paradoxical_subregs (rtx);
+static int hard_reg_use_compare (const GENERIC_PTR, const GENERIC_PTR);
+static void count_pseudo (struct hard_reg_n_uses *, int);
+static void order_regs_for_reload (struct insn_chain *);
+static void reload_as_needed (int);
+static void forget_old_reloads_1 (rtx, rtx);
+static int reload_reg_class_lower (const GENERIC_PTR, const GENERIC_PTR);
+static void mark_reload_reg_in_use (int, int, enum reload_type,
+ enum machine_mode);
+static void clear_reload_reg_in_use (int, int, enum reload_type,
+ enum machine_mode);
+static int reload_reg_free_p (int, int, enum reload_type);
+static int reload_reg_free_for_value_p (int, int, enum reload_type, rtx, rtx, int, int);
+static int reload_reg_reaches_end_p (int, int, enum reload_type);
+static int allocate_reload_reg (struct insn_chain *, int, int,
+ int);
+static void choose_reload_regs (struct insn_chain *);
+static void merge_assigned_reloads (rtx);
+static void emit_reload_insns (struct insn_chain *);
+static void delete_output_reload (rtx, int, int);
+static void delete_address_reloads (rtx, rtx);
+static void delete_address_reloads_1 (rtx, rtx, rtx);
+static rtx inc_for_reload (rtx, rtx, rtx, int);
+static int constraint_accepts_reg_p (char *, rtx);
+static void reload_cse_regs_1 (rtx);
+static void reload_cse_invalidate_regno (int, enum machine_mode, int);
+static int reload_cse_mem_conflict_p (rtx, rtx);
+static void reload_cse_invalidate_mem (rtx);
+static void reload_cse_invalidate_rtx (rtx, rtx);
+static int reload_cse_regno_equal_p (int, rtx, enum machine_mode);
+static int reload_cse_noop_set_p (rtx, rtx);
+static int reload_cse_simplify_set (rtx, rtx);
+static int reload_cse_simplify_operands (rtx);
+static void reload_cse_check_clobber (rtx, rtx);
+static void reload_cse_record_set (rtx, rtx);
+static void reload_combine (void);
+static void reload_combine_note_use (rtx *, rtx);
+static void reload_combine_note_store (rtx, rtx);
+static void reload_cse_move2add (rtx);
+static void move2add_note_store (rtx, rtx);
/* Initialize the reload pass once per compilation. */
diff --git a/gcc/resource.c b/gcc/resource.c
index cd34e86..4c46e9e 100755
--- a/gcc/resource.c
+++ b/gcc/resource.c
@@ -70,12 +70,12 @@ static HARD_REG_SET current_live_regs;
static HARD_REG_SET pending_dead_regs;
-static void update_live_status PROTO ((rtx, rtx));
-static int find_basic_block PROTO ((rtx));
-static rtx next_insn_no_annul PROTO ((rtx));
-static rtx find_dead_or_set_registers PROTO ((rtx, struct resources*,
+static void update_live_status (rtx, rtx);
+static int find_basic_block (rtx);
+static rtx next_insn_no_annul (rtx);
+static rtx find_dead_or_set_registers (rtx, struct resources*,
rtx*, int, struct resources,
- struct resources));
+ struct resources);
/* Utility function called from mark_target_live_regs via note_stores.
It deadens any CLOBBERed registers and livens any SET registers. */
diff --git a/gcc/resource.h b/gcc/resource.h
index d3a8e2c..0a05b62 100755
--- a/gcc/resource.h
+++ b/gcc/resource.h
@@ -33,14 +33,14 @@ struct resources
HARD_REG_SET regs; /* Which registers are set or needed. */
};
-extern void mark_target_live_regs PROTO((rtx, rtx, struct resources *));
-extern void mark_set_resources PROTO((rtx, struct resources *, int,
- int));
-extern void mark_referenced_resources PROTO((rtx, struct resources *, int));
-extern void clear_hashed_info_for_insn PROTO((rtx));
-extern void incr_ticks_for_insn PROTO((rtx));
-extern void mark_end_of_function_resources PROTO ((rtx, int));
-extern void init_resource_info PROTO((rtx));
-extern void free_resource_info PROTO((void));
-extern rtx find_free_register PROTO((rtx, char *, int,
- HARD_REG_SET *));
+extern void mark_target_live_regs (rtx, rtx, struct resources *);
+extern void mark_set_resources (rtx, struct resources *, int,
+ int);
+extern void mark_referenced_resources (rtx, struct resources *, int);
+extern void clear_hashed_info_for_insn (rtx);
+extern void incr_ticks_for_insn (rtx);
+extern void mark_end_of_function_resources (rtx, int);
+extern void init_resource_info (rtx);
+extern void free_resource_info (void);
+extern rtx find_free_register (rtx, char *, int,
+ HARD_REG_SET *);
diff --git a/gcc/rtl.c b/gcc/rtl.c
index 6ff5002..7097239 100755
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -196,8 +196,8 @@ char *reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
"REG_FRAME_RELATED_EXPR", "REG_EH_REGION",
"REG_EH_RETHROW" };
-static void dump_and_abort PROTO((int, int, FILE *)) ATTRIBUTE_NORETURN;
-static void read_name PROTO((char *, FILE *));
+static void dump_and_abort (int, int, FILE *) ATTRIBUTE_NORETURN;
+static void read_name (char *, FILE *);
/* Allocate an rtx vector of N elements.
Store the length, and initialize all elements to zero. */
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 72220ca..40f047f 100755
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -839,11 +839,11 @@ extern char *note_insn_name[];
#define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N))
#define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N))
#endif
-extern int exact_log2_wide PROTO((unsigned HOST_WIDE_INT));
-extern int floor_log2_wide PROTO((unsigned HOST_WIDE_INT));
+extern int exact_log2_wide (unsigned HOST_WIDE_INT);
+extern int floor_log2_wide (unsigned HOST_WIDE_INT);
/* In expmed.c */
-extern int ceil_log2 PROTO((unsigned HOST_WIDE_INT));
+extern int ceil_log2 (unsigned HOST_WIDE_INT);
#define plus_constant(X,C) plus_constant_wide (X, (HOST_WIDE_INT) (C))
@@ -851,182 +851,182 @@ extern int ceil_log2 PROTO((unsigned HOST_WIDE_INT));
plus_constant_for_output_wide (X, (HOST_WIDE_INT) (C))
/* In explow.c */
-extern rtx plus_constant_wide PROTO((rtx, HOST_WIDE_INT));
-extern rtx plus_constant_for_output_wide PROTO((rtx, HOST_WIDE_INT));
-extern void optimize_save_area_alloca PROTO((rtx));
+extern rtx plus_constant_wide (rtx, HOST_WIDE_INT);
+extern rtx plus_constant_for_output_wide (rtx, HOST_WIDE_INT);
+extern void optimize_save_area_alloca (rtx);
-extern rtx gen_rtx PVPROTO((enum rtx_code,
- enum machine_mode, ...));
-extern rtvec gen_rtvec PVPROTO((int, ...));
+extern rtx gen_rtx (enum rtx_code,
+ enum machine_mode, ...);
+extern rtvec gen_rtvec (int, ...);
#ifdef BUFSIZ
-extern rtx read_rtx PROTO((FILE *));
+extern rtx read_rtx (FILE *);
#endif
-extern char *oballoc PROTO((int));
-extern char *permalloc PROTO((int));
-extern rtx rtx_alloc PROTO((RTX_CODE));
-extern rtvec rtvec_alloc PROTO((int));
-extern rtx copy_rtx PROTO((rtx));
-extern rtx copy_rtx_if_shared PROTO((rtx));
-extern rtx copy_most_rtx PROTO((rtx, rtx));
-extern rtvec gen_rtvec_v PROTO((int, rtx *));
-extern rtvec gen_rtvec_vv PROTO((int, rtunion *));
-extern rtx gen_reg_rtx PROTO((enum machine_mode));
-extern rtx gen_label_rtx PROTO((void));
-extern rtx gen_inline_header_rtx PROTO((rtx, rtx, int, int, int, int,
+extern char *oballoc (int);
+extern char *permalloc (int);
+extern rtx rtx_alloc (RTX_CODE);
+extern rtvec rtvec_alloc (int);
+extern rtx copy_rtx (rtx);
+extern rtx copy_rtx_if_shared (rtx);
+extern rtx copy_most_rtx (rtx, rtx);
+extern rtvec gen_rtvec_v (int, rtx *);
+extern rtvec gen_rtvec_vv (int, rtunion *);
+extern rtx gen_reg_rtx (enum machine_mode);
+extern rtx gen_label_rtx (void);
+extern rtx gen_inline_header_rtx (rtx, rtx, int, int, int, int,
int, int, rtx, rtx, int, int,
rtvec, rtx,
- rtvec, char *, char *, rtvec));
-extern rtx gen_lowpart_common PROTO((enum machine_mode, rtx));
-extern rtx gen_lowpart PROTO((enum machine_mode, rtx));
-extern rtx gen_lowpart_if_possible PROTO((enum machine_mode, rtx));
-extern rtx gen_highpart PROTO((enum machine_mode, rtx));
-extern rtx gen_realpart PROTO((enum machine_mode, rtx));
-extern rtx gen_imagpart PROTO((enum machine_mode, rtx));
-extern rtx operand_subword PROTO((rtx, int, int, enum machine_mode));
-extern rtx operand_subword_force PROTO((rtx, int, enum machine_mode));
-extern int subreg_lowpart_p PROTO((rtx));
-extern rtx make_safe_from PROTO((rtx, rtx));
-extern rtx convert_memory_address PROTO((enum machine_mode, rtx));
-extern rtx memory_address PROTO((enum machine_mode, rtx));
-extern rtx get_insns PROTO((void));
-extern rtx get_last_insn PROTO((void));
-extern rtx get_last_insn_anywhere PROTO((void));
-extern void start_sequence PROTO((void));
-extern void push_to_sequence PROTO((rtx));
-extern void end_sequence PROTO((void));
-extern rtx gen_sequence PROTO((void));
-extern rtx immed_double_const PROTO((HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode));
-extern rtx force_const_mem PROTO((enum machine_mode, rtx));
-extern rtx force_reg PROTO((enum machine_mode, rtx));
-extern rtx get_pool_constant PROTO((rtx));
-extern enum machine_mode get_pool_mode PROTO((rtx));
-extern int get_pool_offset PROTO((rtx));
-extern rtx simplify_subtraction PROTO((rtx));
-extern rtx assign_stack_local PROTO((enum machine_mode,
- HOST_WIDE_INT, int));
-extern rtx assign_stack_temp PROTO((enum machine_mode,
- HOST_WIDE_INT, int));
-extern rtx assign_temp PROTO((union tree_node *,
- int, int, int));
-extern rtx protect_from_queue PROTO((rtx, int));
-extern void emit_queue PROTO((void));
-extern rtx emit_move_insn PROTO((rtx, rtx));
-extern rtx emit_insn_before PROTO((rtx, rtx));
-extern rtx emit_jump_insn_before PROTO((rtx, rtx));
-extern rtx emit_call_insn_before PROTO((rtx, rtx));
-extern rtx emit_barrier_before PROTO((rtx));
-extern rtx emit_note_before PROTO((int, rtx));
-extern rtx emit_insn_after PROTO((rtx, rtx));
-extern rtx emit_jump_insn_after PROTO((rtx, rtx));
-extern rtx emit_barrier_after PROTO((rtx));
-extern rtx emit_label_after PROTO((rtx, rtx));
-extern rtx emit_note_after PROTO((int, rtx));
-extern rtx emit_line_note_after PROTO((char *, int, rtx));
-extern rtx emit_insn PROTO((rtx));
-extern rtx emit_insns PROTO((rtx));
-extern rtx emit_insns_before PROTO((rtx, rtx));
-extern rtx emit_insns_after PROTO((rtx, rtx));
-extern rtx emit_jump_insn PROTO((rtx));
-extern rtx emit_call_insn PROTO((rtx));
-extern rtx emit_label PROTO((rtx));
-extern rtx emit_barrier PROTO((void));
-extern rtx emit_line_note PROTO((char *, int));
-extern rtx emit_note PROTO((char *, int));
-extern rtx emit_line_note_force PROTO((char *, int));
-extern rtx make_insn_raw PROTO((rtx));
-extern rtx previous_insn PROTO((rtx));
-extern rtx next_insn PROTO((rtx));
-extern rtx prev_nonnote_insn PROTO((rtx));
-extern rtx next_nonnote_insn PROTO((rtx));
-extern rtx prev_real_insn PROTO((rtx));
-extern rtx next_real_insn PROTO((rtx));
-extern rtx prev_active_insn PROTO((rtx));
-extern rtx next_active_insn PROTO((rtx));
-extern rtx prev_label PROTO((rtx));
-extern rtx next_label PROTO((rtx));
-extern rtx next_cc0_user PROTO((rtx));
-extern rtx prev_cc0_setter PROTO((rtx));
-extern rtx next_nondeleted_insn PROTO((rtx));
-extern enum rtx_code reverse_condition PROTO((enum rtx_code));
-extern enum rtx_code swap_condition PROTO((enum rtx_code));
-extern enum rtx_code unsigned_condition PROTO((enum rtx_code));
-extern enum rtx_code signed_condition PROTO((enum rtx_code));
-extern rtx find_equiv_reg PROTO((rtx, rtx, enum reg_class, int, short *, int, enum machine_mode));
-extern rtx squeeze_notes PROTO((rtx, rtx));
-extern rtx delete_insn PROTO((rtx));
-extern void delete_jump PROTO((rtx));
-extern rtx get_label_before PROTO((rtx));
-extern rtx get_label_after PROTO((rtx));
-extern rtx follow_jumps PROTO((rtx));
-extern rtx adj_offsettable_operand PROTO((rtx, int));
-extern rtx try_split PROTO((rtx, rtx, int));
-extern rtx split_insns PROTO((rtx, rtx));
-extern rtx simplify_unary_operation PROTO((enum rtx_code, enum machine_mode, rtx, enum machine_mode));
-extern rtx simplify_binary_operation PROTO((enum rtx_code, enum machine_mode, rtx, rtx));
-extern rtx simplify_ternary_operation PROTO((enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx));
-extern rtx simplify_relational_operation PROTO((enum rtx_code, enum machine_mode, rtx, rtx));
-extern rtx nonlocal_label_rtx_list PROTO((void));
-extern rtx gen_move_insn PROTO((rtx, rtx));
-extern rtx gen_jump PROTO((rtx));
-extern rtx gen_beq PROTO((rtx));
-extern rtx gen_bge PROTO((rtx));
-extern rtx gen_ble PROTO((rtx));
-extern rtx gen_mem_addressof PROTO((rtx, union tree_node *));
-extern rtx eliminate_constant_term PROTO((rtx, rtx *));
-extern rtx expand_complex_abs PROTO((enum machine_mode, rtx, rtx, int));
-extern enum machine_mode choose_hard_reg_mode PROTO((int, int));
+ rtvec, char *, char *, rtvec);
+extern rtx gen_lowpart_common (enum machine_mode, rtx);
+extern rtx gen_lowpart (enum machine_mode, rtx);
+extern rtx gen_lowpart_if_possible (enum machine_mode, rtx);
+extern rtx gen_highpart (enum machine_mode, rtx);
+extern rtx gen_realpart (enum machine_mode, rtx);
+extern rtx gen_imagpart (enum machine_mode, rtx);
+extern rtx operand_subword (rtx, int, int, enum machine_mode);
+extern rtx operand_subword_force (rtx, int, enum machine_mode);
+extern int subreg_lowpart_p (rtx);
+extern rtx make_safe_from (rtx, rtx);
+extern rtx convert_memory_address (enum machine_mode, rtx);
+extern rtx memory_address (enum machine_mode, rtx);
+extern rtx get_insns (void);
+extern rtx get_last_insn (void);
+extern rtx get_last_insn_anywhere (void);
+extern void start_sequence (void);
+extern void push_to_sequence (rtx);
+extern void end_sequence (void);
+extern rtx gen_sequence (void);
+extern rtx immed_double_const (HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode);
+extern rtx force_const_mem (enum machine_mode, rtx);
+extern rtx force_reg (enum machine_mode, rtx);
+extern rtx get_pool_constant (rtx);
+extern enum machine_mode get_pool_mode (rtx);
+extern int get_pool_offset (rtx);
+extern rtx simplify_subtraction (rtx);
+extern rtx assign_stack_local (enum machine_mode,
+ HOST_WIDE_INT, int);
+extern rtx assign_stack_temp (enum machine_mode,
+ HOST_WIDE_INT, int);
+extern rtx assign_temp (union tree_node *,
+ int, int, int);
+extern rtx protect_from_queue (rtx, int);
+extern void emit_queue (void);
+extern rtx emit_move_insn (rtx, rtx);
+extern rtx emit_insn_before (rtx, rtx);
+extern rtx emit_jump_insn_before (rtx, rtx);
+extern rtx emit_call_insn_before (rtx, rtx);
+extern rtx emit_barrier_before (rtx);
+extern rtx emit_note_before (int, rtx);
+extern rtx emit_insn_after (rtx, rtx);
+extern rtx emit_jump_insn_after (rtx, rtx);
+extern rtx emit_barrier_after (rtx);
+extern rtx emit_label_after (rtx, rtx);
+extern rtx emit_note_after (int, rtx);
+extern rtx emit_line_note_after (char *, int, rtx);
+extern rtx emit_insn (rtx);
+extern rtx emit_insns (rtx);
+extern rtx emit_insns_before (rtx, rtx);
+extern rtx emit_insns_after (rtx, rtx);
+extern rtx emit_jump_insn (rtx);
+extern rtx emit_call_insn (rtx);
+extern rtx emit_label (rtx);
+extern rtx emit_barrier (void);
+extern rtx emit_line_note (char *, int);
+extern rtx emit_note (char *, int);
+extern rtx emit_line_note_force (char *, int);
+extern rtx make_insn_raw (rtx);
+extern rtx previous_insn (rtx);
+extern rtx next_insn (rtx);
+extern rtx prev_nonnote_insn (rtx);
+extern rtx next_nonnote_insn (rtx);
+extern rtx prev_real_insn (rtx);
+extern rtx next_real_insn (rtx);
+extern rtx prev_active_insn (rtx);
+extern rtx next_active_insn (rtx);
+extern rtx prev_label (rtx);
+extern rtx next_label (rtx);
+extern rtx next_cc0_user (rtx);
+extern rtx prev_cc0_setter (rtx);
+extern rtx next_nondeleted_insn (rtx);
+extern enum rtx_code reverse_condition (enum rtx_code);
+extern enum rtx_code swap_condition (enum rtx_code);
+extern enum rtx_code unsigned_condition (enum rtx_code);
+extern enum rtx_code signed_condition (enum rtx_code);
+extern rtx find_equiv_reg (rtx, rtx, enum reg_class, int, short *, int, enum machine_mode);
+extern rtx squeeze_notes (rtx, rtx);
+extern rtx delete_insn (rtx);
+extern void delete_jump (rtx);
+extern rtx get_label_before (rtx);
+extern rtx get_label_after (rtx);
+extern rtx follow_jumps (rtx);
+extern rtx adj_offsettable_operand (rtx, int);
+extern rtx try_split (rtx, rtx, int);
+extern rtx split_insns (rtx, rtx);
+extern rtx simplify_unary_operation (enum rtx_code, enum machine_mode, rtx, enum machine_mode);
+extern rtx simplify_binary_operation (enum rtx_code, enum machine_mode, rtx, rtx);
+extern rtx simplify_ternary_operation (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx);
+extern rtx simplify_relational_operation (enum rtx_code, enum machine_mode, rtx, rtx);
+extern rtx nonlocal_label_rtx_list (void);
+extern rtx gen_move_insn (rtx, rtx);
+extern rtx gen_jump (rtx);
+extern rtx gen_beq (rtx);
+extern rtx gen_bge (rtx);
+extern rtx gen_ble (rtx);
+extern rtx gen_mem_addressof (rtx, union tree_node *);
+extern rtx eliminate_constant_term (rtx, rtx *);
+extern rtx expand_complex_abs (enum machine_mode, rtx, rtx, int);
+extern enum machine_mode choose_hard_reg_mode (int, int);
/* Functions in rtlanal.c */
-extern int rtx_unstable_p PROTO((rtx));
-extern int rtx_varies_p PROTO((rtx));
-extern int rtx_addr_varies_p PROTO((rtx));
-extern HOST_WIDE_INT get_integer_term PROTO((rtx));
-extern rtx get_related_value PROTO((rtx));
-extern int reg_mentioned_p PROTO((rtx, rtx));
-extern int reg_referenced_p PROTO((rtx, rtx));
-extern int reg_used_between_p PROTO((rtx, rtx, rtx));
-extern int reg_referenced_between_p PROTO((rtx, rtx, rtx));
-extern int reg_set_between_p PROTO((rtx, rtx, rtx));
-extern int regs_set_between_p PROTO((rtx, rtx, rtx));
-extern int modified_between_p PROTO((rtx, rtx, rtx));
-extern int no_labels_between_p PROTO((rtx, rtx));
-extern int no_jumps_between_p PROTO((rtx, rtx));
-extern int modified_in_p PROTO((rtx, rtx));
-extern int reg_set_p PROTO((rtx, rtx));
-extern rtx single_set PROTO((rtx));
-extern int multiple_sets PROTO((rtx));
-extern rtx find_last_value PROTO((rtx, rtx *, rtx));
-extern int refers_to_regno_p PROTO((int, int, rtx, rtx *));
-extern int reg_overlap_mentioned_p PROTO((rtx, rtx));
-extern void note_stores PROTO((rtx, void (*)()));
-extern rtx reg_set_last PROTO((rtx, rtx));
-extern int rtx_equal_p PROTO((rtx, rtx));
-extern int dead_or_set_p PROTO((rtx, rtx));
-extern int dead_or_set_regno_p PROTO((rtx, int));
-extern rtx find_reg_note PROTO((rtx, enum reg_note, rtx));
-extern rtx find_regno_note PROTO((rtx, enum reg_note, int));
-extern int find_reg_fusage PROTO((rtx, enum rtx_code, rtx));
-extern int find_regno_fusage PROTO((rtx, enum rtx_code, int));
-extern void remove_note PROTO((rtx, rtx));
-extern int side_effects_p PROTO((rtx));
-extern int volatile_refs_p PROTO((rtx));
-extern int volatile_insn_p PROTO((rtx));
-extern int may_trap_p PROTO((rtx));
-extern int inequality_comparisons_p PROTO ((rtx));
-extern rtx replace_rtx PROTO((rtx, rtx, rtx));
-extern rtx replace_regs PROTO((rtx, rtx *, int, int));
-extern int computed_jump_p PROTO((rtx));
-typedef int (*rtx_function) PROTO((rtx *, void *));
-extern int for_each_rtx PROTO((rtx *, rtx_function, void *));
-extern int insn_first_p PROTO((rtx, rtx));
-extern rtx regno_use_in PROTO((int, rtx));
+extern int rtx_unstable_p (rtx);
+extern int rtx_varies_p (rtx);
+extern int rtx_addr_varies_p (rtx);
+extern HOST_WIDE_INT get_integer_term (rtx);
+extern rtx get_related_value (rtx);
+extern int reg_mentioned_p (rtx, rtx);
+extern int reg_referenced_p (rtx, rtx);
+extern int reg_used_between_p (rtx, rtx, rtx);
+extern int reg_referenced_between_p (rtx, rtx, rtx);
+extern int reg_set_between_p (rtx, rtx, rtx);
+extern int regs_set_between_p (rtx, rtx, rtx);
+extern int modified_between_p (rtx, rtx, rtx);
+extern int no_labels_between_p (rtx, rtx);
+extern int no_jumps_between_p (rtx, rtx);
+extern int modified_in_p (rtx, rtx);
+extern int reg_set_p (rtx, rtx);
+extern rtx single_set (rtx);
+extern int multiple_sets (rtx);
+extern rtx find_last_value (rtx, rtx *, rtx);
+extern int refers_to_regno_p (int, int, rtx, rtx *);
+extern int reg_overlap_mentioned_p (rtx, rtx);
+extern void note_stores (rtx, void (*)());
+extern rtx reg_set_last (rtx, rtx);
+extern int rtx_equal_p (rtx, rtx);
+extern int dead_or_set_p (rtx, rtx);
+extern int dead_or_set_regno_p (rtx, int);
+extern rtx find_reg_note (rtx, enum reg_note, rtx);
+extern rtx find_regno_note (rtx, enum reg_note, int);
+extern int find_reg_fusage (rtx, enum rtx_code, rtx);
+extern int find_regno_fusage (rtx, enum rtx_code, int);
+extern void remove_note (rtx, rtx);
+extern int side_effects_p (rtx);
+extern int volatile_refs_p (rtx);
+extern int volatile_insn_p (rtx);
+extern int may_trap_p (rtx);
+extern int inequality_comparisons_p (rtx);
+extern rtx replace_rtx (rtx, rtx, rtx);
+extern rtx replace_regs (rtx, rtx *, int, int);
+extern int computed_jump_p (rtx);
+typedef int (*rtx_function) (rtx *, void *);
+extern int for_each_rtx (rtx *, rtx_function, void *);
+extern int insn_first_p (rtx, rtx);
+extern rtx regno_use_in (int, rtx);
/* flow.c */
-extern rtx find_use_as_address PROTO((rtx, rtx, HOST_WIDE_INT));
+extern rtx find_use_as_address (rtx, rtx, HOST_WIDE_INT);
/* regclass.c */
@@ -1037,19 +1037,19 @@ extern rtx find_use_as_address PROTO((rtx, rtx, HOST_WIDE_INT));
extern int max_parallel;
/* Free up register info memory. */
-extern void free_reg_info PROTO((void));
+extern void free_reg_info (void);
/* recog.c */
-extern int asm_noperands PROTO((rtx));
-extern char *decode_asm_operands PROTO((rtx, rtx *, rtx **, char **, enum machine_mode *));
+extern int asm_noperands (rtx);
+extern char *decode_asm_operands (rtx, rtx *, rtx **, char **, enum machine_mode *);
-extern enum reg_class reg_preferred_class PROTO((int));
-extern enum reg_class reg_alternate_class PROTO((int));
+extern enum reg_class reg_preferred_class (int);
+extern enum reg_class reg_alternate_class (int);
-extern rtx get_first_nonparm_insn PROTO((void));
+extern rtx get_first_nonparm_insn (void);
-extern void split_block_insns PROTO((int, int));
-extern void update_flow_info PROTO((rtx, rtx, rtx, rtx));
+extern void split_block_insns (int, int);
+extern void update_flow_info (rtx, rtx, rtx, rtx);
/* Standard pieces of rtx, to be substituted directly into things. */
#define pc_rtx (&global_rtl.pc_val)
@@ -1112,9 +1112,9 @@ extern rtx return_address_pointer_rtx;
add to this list, modify special_rtx in gengenrtl.c as well. You
should also modify gen_rtx to use the special function. */
-extern rtx gen_rtx_CONST_INT PROTO((enum machine_mode, HOST_WIDE_INT));
-extern rtx gen_rtx_REG PROTO((enum machine_mode, int));
-extern rtx gen_rtx_MEM PROTO((enum machine_mode, rtx));
+extern rtx gen_rtx_CONST_INT (enum machine_mode, HOST_WIDE_INT);
+extern rtx gen_rtx_REG (enum machine_mode, int);
+extern rtx gen_rtx_MEM (enum machine_mode, rtx);
/* We need the cast here to ensure that we get the same result both with
and without prototypes. */
@@ -1174,12 +1174,12 @@ extern rtx gen_rtx_MEM PROTO((enum machine_mode, rtx));
#define LAST_VIRTUAL_REGISTER ((FIRST_VIRTUAL_REGISTER) + 4)
-extern rtx find_next_ref PROTO((rtx, rtx));
-extern rtx *find_single_use PROTO((rtx, rtx, rtx *));
+extern rtx find_next_ref (rtx, rtx);
+extern rtx *find_single_use (rtx, rtx, rtx *);
-extern rtx output_constant_def PROTO((union tree_node *));
-extern rtx immed_real_const PROTO((union tree_node *));
-extern union tree_node *make_tree PROTO((union tree_node *, rtx));
+extern rtx output_constant_def (union tree_node *);
+extern rtx immed_real_const (union tree_node *);
+extern union tree_node *make_tree (union tree_node *, rtx);
/* Define a default value for STORE_FLAG_VALUE. */
@@ -1226,53 +1226,53 @@ extern char *regno_pointer_align;
REAL_ARITHMETIC. The function returns an int because the caller may not
know what `enum tree_code' means. */
-extern int rtx_to_tree_code PROTO((enum rtx_code));
+extern int rtx_to_tree_code (enum rtx_code);
/* In tree.c */
-extern void obfree PROTO ((char *));
+extern void obfree (char *);
struct obstack;
-extern void gcc_obstack_init PROTO ((struct obstack *));
-extern void pop_obstacks PROTO ((void));
-extern void push_obstacks PROTO ((struct obstack *,
- struct obstack *));
+extern void gcc_obstack_init (struct obstack *);
+extern void pop_obstacks (void);
+extern void push_obstacks (struct obstack *,
+ struct obstack *);
/* CYGNUS LOCAL SH4-OPT */
/* Save the current set of obstacks, but don't change them. */
-extern void push_obstacks_nochange PROTO((void));
-extern void end_temporary_allocation PROTO((void));
+extern void push_obstacks_nochange (void);
+extern void end_temporary_allocation (void);
/* END CYGNUS LOCAL */
#ifdef BUFSIZ
-extern int read_skip_spaces PROTO ((FILE *));
+extern int read_skip_spaces (FILE *);
#endif
/* In cse.c */
struct cse_basic_block_data;
-extern int rtx_cost PROTO ((rtx, enum rtx_code));
-extern void delete_trivially_dead_insns PROTO ((rtx, int));
+extern int rtx_cost (rtx, enum rtx_code);
+extern void delete_trivially_dead_insns (rtx, int);
#ifdef BUFSIZ
-extern int cse_main PROTO ((rtx, int, int, FILE *));
+extern int cse_main (rtx, int, int, FILE *);
#endif
-extern void cse_end_of_basic_block PROTO ((rtx,
+extern void cse_end_of_basic_block (rtx,
struct cse_basic_block_data *,
- int, int, int));
+ int, int, int);
/* In jump.c */
-extern int comparison_dominates_p PROTO ((enum rtx_code, enum rtx_code));
-extern int condjump_p PROTO ((rtx));
-extern rtx condjump_label PROTO ((rtx));
-extern int simplejump_p PROTO ((rtx));
-extern int sets_cc0_p PROTO ((rtx));
-extern int invert_jump PROTO ((rtx, rtx));
-extern int rtx_renumbered_equal_p PROTO ((rtx, rtx));
-extern int true_regnum PROTO ((rtx));
-extern int redirect_jump PROTO ((rtx, rtx));
-extern void jump_optimize PROTO ((rtx, int, int, int));
-extern void thread_jumps PROTO ((rtx, int, int));
-extern int redirect_exp PROTO ((rtx *, rtx, rtx, rtx));
-extern int rtx_equal_for_thread_p PROTO ((rtx, rtx, rtx));
-extern int invert_exp PROTO ((rtx, rtx));
-extern int can_reverse_comparison_p PROTO ((rtx, rtx));
-extern void delete_for_peephole PROTO ((rtx, rtx));
-extern int condjump_in_parallel_p PROTO ((rtx));
+extern int comparison_dominates_p (enum rtx_code, enum rtx_code);
+extern int condjump_p (rtx);
+extern rtx condjump_label (rtx);
+extern int simplejump_p (rtx);
+extern int sets_cc0_p (rtx);
+extern int invert_jump (rtx, rtx);
+extern int rtx_renumbered_equal_p (rtx, rtx);
+extern int true_regnum (rtx);
+extern int redirect_jump (rtx, rtx);
+extern void jump_optimize (rtx, int, int, int);
+extern void thread_jumps (rtx, int, int);
+extern int redirect_exp (rtx *, rtx, rtx, rtx);
+extern int rtx_equal_for_thread_p (rtx, rtx, rtx);
+extern int invert_exp (rtx, rtx);
+extern int can_reverse_comparison_p (rtx, rtx);
+extern void delete_for_peephole (rtx, rtx);
+extern int condjump_in_parallel_p (rtx);
/* Flags for jump_optimize() */
#define JUMP_CROSS_JUMP 1
@@ -1280,228 +1280,227 @@ extern int condjump_in_parallel_p PROTO ((rtx));
#define JUMP_AFTER_REGSCAN 1
/* In emit-rtl.c. */
-extern int max_reg_num PROTO ((void));
-extern int max_label_num PROTO ((void));
-extern int get_first_label_num PROTO ((void));
-extern void delete_insns_since PROTO ((rtx));
-extern void mark_reg_pointer PROTO ((rtx, int));
-extern void mark_user_reg PROTO ((rtx));
-extern void reset_used_flags PROTO ((rtx));
-extern void reorder_insns PROTO ((rtx, rtx, rtx));
-extern int get_max_uid PROTO ((void));
-extern int in_sequence_p PROTO ((void));
-extern void force_next_line_note PROTO ((void));
-extern void init_emit PROTO ((void));
-extern void init_emit_once PROTO ((int));
-extern void push_topmost_sequence PROTO ((void));
-extern void pop_topmost_sequence PROTO ((void));
-extern int subreg_realpart_p PROTO ((rtx));
-extern void reverse_comparison PROTO ((rtx));
-extern void set_new_first_and_last_insn PROTO ((rtx, rtx));
-extern void set_new_first_and_last_label_num PROTO ((int, int));
-extern void unshare_all_rtl PROTO ((rtx));
-extern void set_last_insn PROTO ((rtx));
-extern void link_cc0_insns PROTO ((rtx));
-extern void add_insn PROTO ((rtx));
-extern void add_insn_before PROTO ((rtx, rtx));
-extern void add_insn_after PROTO ((rtx, rtx));
-extern void remove_insn PROTO ((rtx));
-extern void reorder_insns_with_line_notes PROTO ((rtx, rtx, rtx));
-extern void emit_insn_after_with_line_notes PROTO ((rtx, rtx, rtx));
-extern enum rtx_code classify_insn PROTO ((rtx));
-extern void init_virtual_regs PROTO ((void));
-extern rtx emit PROTO ((rtx));
+extern int max_reg_num (void);
+extern int max_label_num (void);
+extern int get_first_label_num (void);
+extern void delete_insns_since (rtx);
+extern void mark_reg_pointer (rtx, int);
+extern void mark_user_reg (rtx);
+extern void reset_used_flags (rtx);
+extern void reorder_insns (rtx, rtx, rtx);
+extern int get_max_uid (void);
+extern int in_sequence_p (void);
+extern void force_next_line_note (void);
+extern void init_emit (void);
+extern void init_emit_once (int);
+extern void push_topmost_sequence (void);
+extern void pop_topmost_sequence (void);
+extern int subreg_realpart_p (rtx);
+extern void reverse_comparison (rtx);
+extern void set_new_first_and_last_insn (rtx, rtx);
+extern void set_new_first_and_last_label_num (int, int);
+extern void unshare_all_rtl (rtx);
+extern void set_last_insn (rtx);
+extern void link_cc0_insns (rtx);
+extern void add_insn (rtx);
+extern void add_insn_before (rtx, rtx);
+extern void add_insn_after (rtx, rtx);
+extern void remove_insn (rtx);
+extern void reorder_insns_with_line_notes (rtx, rtx, rtx);
+extern void emit_insn_after_with_line_notes (rtx, rtx, rtx);
+extern enum rtx_code classify_insn (rtx);
+extern void init_virtual_regs (void);
+extern rtx emit (rtx);
/* Query and clear/ restore no_line_numbers. This is used by the
switch / case handling in stmt.c to give proper line numbers in
warnings about unreachable code. */
-int force_line_numbers PROTO((void));
-void restore_line_number_status PROTO((int old_value));
+int force_line_numbers (void);
+void restore_line_number_status (int old_value);
/* In insn-emit.c */
-extern void add_clobbers PROTO ((rtx, int));
+extern void add_clobbers (rtx, int);
/* In combine.c */
-extern void combine_instructions PROTO ((rtx, int));
-extern int extended_count PROTO ((rtx, enum machine_mode, int));
-extern rtx remove_death PROTO ((int, rtx));
+extern void combine_instructions (rtx, int);
+extern int extended_count (rtx, enum machine_mode, int);
+extern rtx remove_death (int, rtx);
#ifdef BUFSIZ
-extern void dump_combine_stats PROTO ((FILE *));
-extern void dump_combine_total_stats PROTO ((FILE *));
+extern void dump_combine_stats (FILE *);
+extern void dump_combine_total_stats (FILE *);
#endif
/* In print-rtl.c */
-extern void debug_rtx PROTO ((rtx));
-extern void debug_rtx_list PROTO ((rtx, int));
-extern rtx debug_rtx_find PROTO ((rtx, int));
+extern void debug_rtx (rtx);
+extern void debug_rtx_list (rtx, int);
+extern rtx debug_rtx_find (rtx, int);
#ifdef BUFSIZ
-extern void print_rtl PROTO ((FILE *, rtx));
-extern int print_rtl_single PROTO ((FILE *, rtx));
-extern void print_inline_rtx PROTO ((FILE *, rtx, int));
+extern void print_rtl (FILE *, rtx);
+extern int print_rtl_single (FILE *, rtx);
+extern void print_inline_rtx (FILE *, rtx, int);
#endif
/* In loop.c */
-extern void init_loop PROTO ((void));
+extern void init_loop (void);
#ifdef BUFSIZ
-extern void loop_optimize PROTO ((rtx, FILE *, int, int));
+extern void loop_optimize (rtx, FILE *, int, int);
#endif
-extern void record_excess_regs PROTO ((rtx, rtx, rtx *));
+extern void record_excess_regs (rtx, rtx, rtx *);
/* In function.c */
-extern void reposition_prologue_and_epilogue_notes PROTO ((rtx));
-extern void thread_prologue_and_epilogue_insns PROTO ((rtx));
-extern void use_variable PROTO ((rtx));
-extern HOST_WIDE_INT get_frame_size PROTO ((void));
-extern void preserve_rtl_expr_result PROTO ((rtx));
-extern void mark_temp_addr_taken PROTO ((rtx));
-extern void update_temp_slot_address PROTO ((rtx, rtx));
-extern void use_variable_after PROTO ((rtx, rtx));
-extern void purge_addressof PROTO ((rtx));
+extern void reposition_prologue_and_epilogue_notes (rtx);
+extern void thread_prologue_and_epilogue_insns (rtx);
+extern void use_variable (rtx);
+extern HOST_WIDE_INT get_frame_size (void);
+extern void preserve_rtl_expr_result (rtx);
+extern void mark_temp_addr_taken (rtx);
+extern void update_temp_slot_address (rtx, rtx);
+extern void use_variable_after (rtx, rtx);
+extern void purge_addressof (rtx);
/* In reload.c */
-extern int operands_match_p PROTO ((rtx, rtx));
-extern int safe_from_earlyclobber PROTO ((rtx, rtx));
+extern int operands_match_p (rtx, rtx);
+extern int safe_from_earlyclobber (rtx, rtx);
/* In stmt.c */
-extern void expand_null_return PROTO((void));
-extern void emit_jump PROTO ((rtx));
-extern int preserve_subexpressions_p PROTO ((void));
+extern void expand_null_return (void);
+extern void emit_jump (rtx);
+extern int preserve_subexpressions_p (void);
/* In expr.c */
-extern void init_expr_once PROTO ((void));
-extern void move_by_pieces PROTO ((rtx, rtx, int, int));
+extern void init_expr_once (void);
+extern void move_by_pieces (rtx, rtx, int, int);
/* In stupid.c */
#ifdef BUFSIZ
-extern void stupid_life_analysis PROTO ((rtx, int, FILE *));
+extern void stupid_life_analysis (rtx, int, FILE *);
#endif
/* In flow.c */
-extern void allocate_for_life_analysis PROTO ((void));
-extern void recompute_reg_usage PROTO ((rtx, int));
+extern void allocate_for_life_analysis (void);
+extern void recompute_reg_usage (rtx, int);
#ifdef BUFSIZ
-extern void dump_flow_info PROTO ((FILE *));
+extern void dump_flow_info (FILE *);
#endif
-extern void free_bb_memory PROTO ((void));
+extern void free_bb_memory (void);
/* In expmed.c */
-extern void init_expmed PROTO ((void));
-extern void expand_inc PROTO ((rtx, rtx));
-extern void expand_dec PROTO ((rtx, rtx));
-extern rtx expand_mult_highpart PROTO ((enum machine_mode, rtx,
+extern void init_expmed (void);
+extern void expand_inc (rtx, rtx);
+extern void expand_dec (rtx, rtx);
+extern rtx expand_mult_highpart (enum machine_mode, rtx,
unsigned HOST_WIDE_INT, rtx,
- int, int));
+ int, int);
/* In gcse.c */
#ifdef BUFSIZ
/* CYGNUS LOCAL gcse/law */
-extern int gcse_main PROTO ((rtx, FILE *));
+extern int gcse_main (rtx, FILE *);
/* END CYGNUS LOCAL */
#endif
/* In global.c */
-extern void mark_elimination PROTO ((int, int));
+extern void mark_elimination (int, int);
#ifdef BUFSIZ
-extern int global_alloc PROTO ((FILE *));
-extern void dump_global_regs PROTO ((FILE *));
+extern int global_alloc (FILE *);
+extern void dump_global_regs (FILE *);
#endif
#ifdef HARD_CONST
-extern void retry_global_alloc PROTO ((int, HARD_REG_SET));
+extern void retry_global_alloc (int, HARD_REG_SET);
#endif
/* In regclass.c */
-extern int reg_classes_intersect_p PROTO ((enum reg_class, enum reg_class));
-extern int reg_class_subset_p PROTO ((enum reg_class, enum reg_class));
-extern void globalize_reg PROTO ((int));
-extern void init_regs PROTO ((void));
-extern void init_reg_sets PROTO ((void));
-extern void regset_release_memory PROTO ((void));
-extern void regclass_init PROTO ((void));
-extern void regclass PROTO ((rtx, int));
-extern void reg_scan PROTO ((rtx, int, int));
-extern void reg_scan_update PROTO ((rtx, rtx, int));
-extern void fix_register PROTO ((char *, int, int));
+extern int reg_classes_intersect_p (enum reg_class, enum reg_class);
+extern int reg_class_subset_p (enum reg_class, enum reg_class);
+extern void globalize_reg (int);
+extern void init_regs (void);
+extern void init_reg_sets (void);
+extern void regset_release_memory (void);
+extern void regclass_init (void);
+extern void regclass (rtx, int);
+extern void reg_scan (rtx, int, int);
+extern void reg_scan_update (rtx, rtx, int);
+extern void fix_register (char *, int, int);
/* In regmove.c */
#ifdef BUFSIZ
-extern void regmove_optimize PROTO ((rtx, int, FILE *));
+extern void regmove_optimize (rtx, int, FILE *);
#endif
/* In optabs.c */
-extern void init_optabs PROTO ((void));
+extern void init_optabs (void);
/* In local-alloc.c */
#ifdef BUFSIZ
-extern void dump_local_alloc PROTO ((FILE *));
+extern void dump_local_alloc (FILE *);
#endif
-extern void local_alloc PROTO ((void));
-extern int function_invariant_p PROTO ((rtx));
+extern void local_alloc (void);
+extern int function_invariant_p (rtx);
/* In reload1.c */
-extern void reload_cse_regs PROTO ((rtx));
-extern void init_reload PROTO ((void));
-extern void mark_home_live PROTO ((int));
+extern void reload_cse_regs (rtx);
+extern void init_reload (void);
+extern void mark_home_live (int);
#ifdef BUFSIZ
-extern int reload PROTO ((rtx, int, FILE *));
+extern int reload (rtx, int, FILE *);
#endif
/* In caller-save.c */
-extern void init_caller_save PROTO ((void));
+extern void init_caller_save (void);
/* In fold-const.c */
-extern int add_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+extern int add_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern int neg_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern int mul_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern int neg_double (HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern int mul_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern void lshift_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern void lshift_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *, int));
-extern void rshift_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, int);
+extern void rshift_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int,
- HOST_WIDE_INT *, HOST_WIDE_INT *, int));
-extern void lrotate_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *, int);
+extern void lrotate_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *));
-extern void rrotate_double PROTO ((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *);
+extern void rrotate_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *));
+ HOST_WIDE_INT *);
/* In calls.c */
/* Emit library call. */
-extern void emit_library_call PVPROTO ((rtx, int, enum machine_mode,
- int, ...));
-extern rtx emit_library_call_value PVPROTO((rtx, rtx, int,
+extern void emit_library_call (rtx, int, enum machine_mode,
+ int, ...);
+extern rtx emit_library_call_value (rtx, rtx, int,
enum machine_mode,
- int, ...));
+ int, ...);
/* In unroll.c */
-extern int set_dominates_use PROTO ((int, int, int, rtx, rtx));
+extern int set_dominates_use (int, int, int, rtx, rtx);
/* In varasm.c */
-extern void bss_section PROTO ((void));
-extern int in_data_section PROTO ((void));
-extern int supports_one_only PROTO ((void));
+extern void bss_section (void);
+extern int in_data_section (void);
+extern int supports_one_only (void);
/* In rtl.c */
-extern void init_rtl PROTO ((void));
-extern void rtx_free PROTO ((rtx));
+extern void init_rtl (void);
+extern void rtx_free (rtx);
/* In alias.c */
-extern int true_dependence PROTO ((rtx, enum machine_mode, rtx,
- int (*)(rtx)));
-extern int read_dependence PROTO ((rtx, rtx));
-extern int anti_dependence PROTO ((rtx, rtx));
-extern int output_dependence PROTO ((rtx, rtx));
-extern void init_alias_once PROTO ((void));
-extern void init_alias_analysis PROTO ((void));
-extern void end_alias_analysis PROTO ((void));
-
-extern void record_base_value PROTO ((int, rtx, int));
-extern void record_alias_subset PROTO ((int, int));
-extern rtx addr_side_effect_eval PROTO ((rtx, int, int));
+extern int true_dependence (rtx, enum machine_mode, rtx, int (*)(rtx));
+extern int read_dependence (rtx, rtx);
+extern int anti_dependence (rtx, rtx);
+extern int output_dependence (rtx, rtx);
+extern void init_alias_once (void);
+extern void init_alias_analysis (void);
+extern void end_alias_analysis (void);
+
+extern void record_base_value (int, rtx, int);
+extern void record_alias_subset (int, int);
+extern rtx addr_side_effect_eval (rtx, int, int);
#endif /* _RTL_H */
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 0207dd1..bb1d648 100755
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -23,13 +23,13 @@ Boston, MA 02111-1307, USA. */
#include "system.h"
#include "rtl.h"
-static int rtx_addr_can_trap_p PROTO((rtx));
-static void reg_set_p_1 PROTO((rtx, rtx));
-static void reg_set_last_1 PROTO((rtx, rtx));
+static int rtx_addr_can_trap_p (rtx);
+static void reg_set_p_1 (rtx, rtx);
+static void reg_set_last_1 (rtx, rtx);
/* Forward declarations */
-static int jmp_uses_reg_or_mem PROTO((rtx));
+static int jmp_uses_reg_or_mem (rtx);
/* Bit flags that specify the machine subtype we are compiling for.
Bits are tested using macros TARGET_... defined in the tm.h file
diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h
index 350142d..73fffbc 100755
--- a/gcc/sbitmap.h
+++ b/gcc/sbitmap.h
@@ -89,34 +89,34 @@ do { \
#define sbitmap_free(map) free(map)
#define sbitmap_vector_free(vec) free(vec)
-extern void dump_sbitmap PROTO ((FILE *, sbitmap));
-extern void dump_sbitmap_vector PROTO ((FILE *, char *, char *,
- sbitmap *, int));
-
-extern sbitmap sbitmap_alloc PROTO ((int));
-extern sbitmap *sbitmap_vector_alloc PROTO ((int, int));
-
-extern void sbitmap_copy PROTO ((sbitmap, sbitmap));
-extern void sbitmap_zero PROTO ((sbitmap));
-extern void sbitmap_ones PROTO ((sbitmap));
-extern void sbitmap_vector_zero PROTO ((sbitmap *, int));
-extern void sbitmap_vector_ones PROTO ((sbitmap *, int));
-
-extern int sbitmap_union_of_diff PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern void sbitmap_difference PROTO ((sbitmap, sbitmap, sbitmap));
-extern void sbitmap_not PROTO ((sbitmap, sbitmap));
-extern int sbitmap_a_or_b_and_c PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_and_b_or_c PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_and_b PROTO ((sbitmap, sbitmap, sbitmap));
-extern int sbitmap_a_or_b PROTO ((sbitmap, sbitmap, sbitmap));
+extern void dump_sbitmap (FILE *, sbitmap);
+extern void dump_sbitmap_vector (FILE *, char *, char *,
+ sbitmap *, int);
+
+extern sbitmap sbitmap_alloc (int);
+extern sbitmap *sbitmap_vector_alloc (int, int);
+
+extern void sbitmap_copy (sbitmap, sbitmap);
+extern void sbitmap_zero (sbitmap);
+extern void sbitmap_ones (sbitmap);
+extern void sbitmap_vector_zero (sbitmap *, int);
+extern void sbitmap_vector_ones (sbitmap *, int);
+
+extern int sbitmap_union_of_diff (sbitmap, sbitmap, sbitmap, sbitmap);
+extern void sbitmap_difference (sbitmap, sbitmap, sbitmap);
+extern void sbitmap_not (sbitmap, sbitmap);
+extern int sbitmap_a_or_b_and_c (sbitmap, sbitmap, sbitmap, sbitmap);
+extern int sbitmap_a_and_b_or_c (sbitmap, sbitmap, sbitmap, sbitmap);
+extern int sbitmap_a_and_b (sbitmap, sbitmap, sbitmap);
+extern int sbitmap_a_or_b (sbitmap, sbitmap, sbitmap);
struct int_list;
-extern void sbitmap_intersect_of_predsucc PROTO ((sbitmap, sbitmap *,
- int, struct int_list **));
+extern void sbitmap_intersect_of_predsucc (sbitmap, sbitmap *,
+ int, struct int_list **);
#define sbitmap_intersect_of_predecessors sbitmap_intersect_of_predsucc
#define sbitmap_intersect_of_successors sbitmap_intersect_of_predsucc
-extern void sbitmap_union_of_predsucc PROTO ((sbitmap, sbitmap *, int,
- struct int_list **));
+extern void sbitmap_union_of_predsucc (sbitmap, sbitmap *, int,
+ struct int_list **);
#define sbitmap_union_of_predecessors sbitmap_union_of_predsucc
#define sbitmap_union_of_successors sbitmap_union_of_predsucc
diff --git a/gcc/stack.h b/gcc/stack.h
index 198b41e..e0035f5 100755
--- a/gcc/stack.h
+++ b/gcc/stack.h
@@ -38,5 +38,5 @@ struct stack_level
int limit;
};
-struct stack_level *push_stack_level PROTO((struct obstack *, char *, int));
-struct stack_level *pop_stack_level PROTO((struct stack_level *));
+struct stack_level *push_stack_level (struct obstack *, char *, int);
+struct stack_level *pop_stack_level (struct stack_level *);
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 22f9a5e..fb671b5 100755
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -425,31 +425,31 @@ struct label_chain
static int using_eh_for_cleanups_p = 0;
-static int n_occurrences PROTO((int, char *));
-static void expand_goto_internal PROTO((tree, rtx, rtx));
-static int expand_fixup PROTO((tree, rtx, rtx));
-static void expand_nl_handler_label PROTO((rtx, rtx));
-static void expand_nl_goto_receiver PROTO((void));
-static void expand_nl_goto_receivers PROTO((struct nesting *));
-static void fixup_gotos PROTO((struct nesting *, rtx, tree,
- rtx, int));
-static void expand_null_return_1 PROTO((rtx, int));
-static void expand_value_return PROTO((rtx));
-static int tail_recursion_args PROTO((tree, tree));
-static void expand_cleanups PROTO((tree, tree, int, int));
-static void check_seenlabel PROTO((void));
-static void do_jump_if_equal PROTO((rtx, rtx, rtx, int));
-static int estimate_case_costs PROTO((case_node_ptr));
-static void group_case_nodes PROTO((case_node_ptr));
-static void balance_case_nodes PROTO((case_node_ptr *,
- case_node_ptr));
-static int node_has_low_bound PROTO((case_node_ptr, tree));
-static int node_has_high_bound PROTO((case_node_ptr, tree));
-static int node_is_bounded PROTO((case_node_ptr, tree));
-static void emit_jump_if_reachable PROTO((rtx));
-static void emit_case_nodes PROTO((rtx, case_node_ptr, rtx, tree));
-static int add_case_node PROTO((tree, tree, tree, tree *));
-static struct case_node *case_tree2list PROTO((case_node *, case_node *));
+static int n_occurrences (int, char *);
+static void expand_goto_internal (tree, rtx, rtx);
+static int expand_fixup (tree, rtx, rtx);
+static void expand_nl_handler_label (rtx, rtx);
+static void expand_nl_goto_receiver (void);
+static void expand_nl_goto_receivers (struct nesting *);
+static void fixup_gotos (struct nesting *, rtx, tree,
+ rtx, int);
+static void expand_null_return_1 (rtx, int);
+static void expand_value_return (rtx);
+static int tail_recursion_args (tree, tree);
+static void expand_cleanups (tree, tree, int, int);
+static void check_seenlabel (void);
+static void do_jump_if_equal (rtx, rtx, rtx, int);
+static int estimate_case_costs (case_node_ptr);
+static void group_case_nodes (case_node_ptr);
+static void balance_case_nodes (case_node_ptr *,
+ case_node_ptr);
+static int node_has_low_bound (case_node_ptr, tree);
+static int node_has_high_bound (case_node_ptr, tree);
+static int node_is_bounded (case_node_ptr, tree);
+static void emit_jump_if_reachable (rtx);
+static void emit_case_nodes (rtx, case_node_ptr, rtx, tree);
+static int add_case_node (tree, tree, tree, tree *);
+static struct case_node *case_tree2list (case_node *, case_node *);
void
using_eh_for_cleanups ()
@@ -4093,7 +4093,7 @@ check_seenlabel ()
int
pushcase (value, converter, label, duplicate)
register tree value;
- tree (*converter) PROTO((tree, tree));
+ tree (*converter) (tree, tree);
register tree label;
tree *duplicate;
{
@@ -4155,7 +4155,7 @@ pushcase (value, converter, label, duplicate)
int
pushcase_range (value1, value2, converter, label, duplicate)
register tree value1, value2;
- tree (*converter) PROTO((tree, tree));
+ tree (*converter) (tree, tree);
register tree label;
tree *duplicate;
{
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index a9ce073..2f8fec8 100755
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -53,10 +53,10 @@ int maximum_field_alignment;
May be overridden by front-ends. */
int set_alignment = 0;
-static enum machine_mode smallest_mode_for_size PROTO((unsigned int,
- enum mode_class));
-static tree layout_record PROTO((tree));
-static void layout_union PROTO((tree));
+static enum machine_mode smallest_mode_for_size (unsigned int,
+ enum mode_class);
+static tree layout_record (tree);
+static void layout_union (tree);
/* SAVE_EXPRs for sizes of types and decls, waiting to be expanded. */
diff --git a/gcc/stupid.c b/gcc/stupid.c
index 385831d..c81894d 100755
--- a/gcc/stupid.c
+++ b/gcc/stupid.c
@@ -123,11 +123,11 @@ static HARD_REG_SET *after_insn_hard_regs;
#define MARK_LIVE_AFTER(INSN,REGNO) \
SET_HARD_REG_BIT (after_insn_hard_regs[INSN_SUID (INSN)], (REGNO))
-static int stupid_reg_compare PROTO((const GENERIC_PTR,const GENERIC_PTR));
-static int stupid_find_reg PROTO((int, enum reg_class, enum machine_mode,
- int, int, int));
-static void stupid_mark_refs PROTO((rtx, struct insn_chain *));
-static void find_clobbered_regs PROTO((rtx, rtx));
+static int stupid_reg_compare (const GENERIC_PTR,const GENERIC_PTR);
+static int stupid_find_reg (int, enum reg_class, enum machine_mode,
+ int, int, int);
+static void stupid_mark_refs (rtx, struct insn_chain *);
+static void find_clobbered_regs (rtx, rtx);
/* For communication between stupid_life_analysis and find_clobbered_regs. */
static struct insn_chain *current_chain;
diff --git a/gcc/toplev.c b/gcc/toplev.c
index dcbb38d..cfc8077 100755
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -82,7 +82,7 @@ extern tree last_assemble_variable_decl;
extern void check_line_directive();
extern void cpplib_init();
-extern char *init_parse PVPROTO((char *));
+extern char *init_parse (char *);
extern void finish_parse ();
extern void init_decl_processing ();
extern void init_obstacks ();
@@ -101,56 +101,56 @@ extern void print_rtl ();
extern void print_rtl_with_bb ();
void rest_of_decl_compilation ();
-void error_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void error_with_decl PVPROTO((tree decl, char *s, ...));
-void error PVPROTO((char *s, ...));
-void fatal PVPROTO((char *s, ...));
-void warning_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void warning_with_decl PVPROTO((tree decl, char *s, ...));
-void warning PVPROTO((char *s, ...));
-void pedwarn PVPROTO((char *s, ...));
-void pedwarn_with_decl PVPROTO((tree decl, char *s, ...));
-void pedwarn_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void sorry PVPROTO((char *s, ...));
-static void set_target_switch PROTO((char *));
-static char *decl_name PROTO((tree, int));
-static void vmessage PROTO((char *, char *, va_list));
-static void v_message_with_file_and_line PROTO((char *, int, char *,
- char *, va_list));
-static void v_message_with_decl PROTO((tree, char *, char *, va_list));
-static void file_and_line_for_asm PROTO((rtx, char **, int *));
-static void v_error_with_file_and_line PROTO((char *, int, char *, va_list));
-static void v_error_with_decl PROTO((tree, char *, va_list));
-static void v_error_for_asm PROTO((rtx, char *, va_list));
-static void verror PROTO((char *, va_list));
-static void vfatal PROTO((char *, va_list)) ATTRIBUTE_NORETURN;
-static void v_warning_with_file_and_line PROTO ((char *, int, char *, va_list));
-static void v_warning_with_decl PROTO((tree, char *, va_list));
-static void v_warning_for_asm PROTO((rtx, char *, va_list));
-static void vwarning PROTO((char *, va_list));
-static void vpedwarn PROTO((char *, va_list));
-static void v_pedwarn_with_decl PROTO((tree, char *, va_list));
-static void v_pedwarn_with_file_and_line PROTO((char *, int, char *, va_list));
-static void vsorry PROTO((char *, va_list));
-static void v_really_sorry PROTO((char *, va_list)) ATTRIBUTE_NORETURN;
-static void float_signal PROTO((int)) ATTRIBUTE_NORETURN;
-static void pipe_closed PROTO((int)) ATTRIBUTE_NORETURN;
-static void open_dump_file PROTO((char *, char *));
-static void close_dump_file PROTO((void (*) (FILE *, rtx), rtx));
-static void dump_rtl PROTO((char *, tree, void (*) (FILE *, rtx), rtx));
-static void clean_dump_file PROTO((char *));
-static void compile_file PROTO((char *));
-static void display_help PROTO ((void));
-
-static void print_version PROTO((FILE *, char *));
-static int print_single_switch PROTO((FILE *, int, int, char *, char *, char *,
- char *, char *));
-static void print_switch_values PROTO((FILE *, int, int, char *, char *,
- char *));
-
-void print_rtl_graph_with_bb PROTO ((const char *, const char *, rtx));
-void clean_graph_dump_file PROTO ((const char *, const char *));
-void finish_graph_dump_file PROTO ((const char *, const char *));
+void error_with_file_and_line (char *file, int line, char *s, ...);
+void error_with_decl (tree decl, char *s, ...);
+void error (char *s, ...);
+void fatal (char *s, ...);
+void warning_with_file_and_line (char *file, int line, char *s, ...);
+void warning_with_decl (tree decl, char *s, ...);
+void warning (char *s, ...);
+void pedwarn (char *s, ...);
+void pedwarn_with_decl (tree decl, char *s, ...);
+void pedwarn_with_file_and_line (char *file, int line, char *s, ...);
+void sorry (char *s, ...);
+static void set_target_switch (char *);
+static char *decl_name (tree, int);
+static void vmessage (char *, char *, va_list);
+static void v_message_with_file_and_line (char *, int, char *,
+ char *, va_list);
+static void v_message_with_decl (tree, char *, char *, va_list);
+static void file_and_line_for_asm (rtx, char **, int *);
+static void v_error_with_file_and_line (char *, int, char *, va_list);
+static void v_error_with_decl (tree, char *, va_list);
+static void v_error_for_asm (rtx, char *, va_list);
+static void verror (char *, va_list);
+static void vfatal (char *, va_list) ATTRIBUTE_NORETURN;
+static void v_warning_with_file_and_line (char *, int, char *, va_list);
+static void v_warning_with_decl (tree, char *, va_list);
+static void v_warning_for_asm (rtx, char *, va_list);
+static void vwarning (char *, va_list);
+static void vpedwarn (char *, va_list);
+static void v_pedwarn_with_decl (tree, char *, va_list);
+static void v_pedwarn_with_file_and_line (char *, int, char *, va_list);
+static void vsorry (char *, va_list);
+static void v_really_sorry (char *, va_list) ATTRIBUTE_NORETURN;
+static void float_signal (int) ATTRIBUTE_NORETURN;
+static void pipe_closed (int) ATTRIBUTE_NORETURN;
+static void open_dump_file (char *, char *);
+static void close_dump_file (void (*) (FILE *, rtx), rtx);
+static void dump_rtl (char *, tree, void (*) (FILE *, rtx), rtx);
+static void clean_dump_file (char *);
+static void compile_file (char *);
+static void display_help (void);
+
+static void print_version (FILE *, char *);
+static int print_single_switch (FILE *, int, int, char *, char *, char *,
+ char *, char *);
+static void print_switch_values (FILE *, int, int, char *, char *,
+ char *);
+
+void print_rtl_graph_with_bb (const char *, const char *, rtx);
+void clean_graph_dump_file (const char *, const char *);
+void finish_graph_dump_file (const char *, const char *);
/* Length of line when printing switch values. */
#define MAX_LINE 75
@@ -272,20 +272,20 @@ int sorrycount = 0;
2: and any other information that might be interesting, such as function
parameter types in C++. */
-char *(*decl_printable_name) PROTO ((tree, int));
+char *(*decl_printable_name) (tree, int);
/* Pointer to function to compute rtl for a language-specific tree code. */
typedef rtx (*lang_expand_expr_t)
- PROTO ((union tree_node *, rtx, enum machine_mode,
- enum expand_modifier modifier));
+ (union tree_node *, rtx, enum machine_mode,
+ enum expand_modifier modifier);
lang_expand_expr_t lang_expand_expr = 0;
/* Pointer to function to finish handling an incomplete decl at the
end of compilation. */
-void (*incomplete_decl_finalize_hook) PROTO((tree)) = 0;
+void (*incomplete_decl_finalize_hook) (tree) = 0;
/* Nonzero for -pedantic switch: warn about anything
that standard spec forbids. */
@@ -1314,7 +1314,7 @@ default_print_error_function (file)
/* Called by report_error_function to print out function name.
* Default may be overridden by language front-ends. */
-void (*print_error_function) PROTO((char *)) = default_print_error_function;
+void (*print_error_function) (char *) = default_print_error_function;
/* Prints out, if necessary, the name of the current function
that caused an error. Called from all error and warning functions. */
@@ -1496,7 +1496,7 @@ v_error_with_file_and_line (file, line, s, ap)
}
void
-error_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+error_with_file_and_line (char *file, int line, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *file;
@@ -1533,7 +1533,7 @@ v_error_with_decl (decl, s, ap)
}
void
-error_with_decl VPROTO((tree decl, char *s, ...))
+error_with_decl (tree decl, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
tree decl;
@@ -1572,7 +1572,7 @@ v_error_for_asm (insn, s, ap)
}
void
-error_for_asm VPROTO((rtx insn, char *s, ...))
+error_for_asm (rtx insn, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
rtx insn;
@@ -1602,7 +1602,7 @@ verror (s, ap)
}
void
-error VPROTO((char *s, ...))
+error (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -1631,7 +1631,7 @@ vfatal (s, ap)
}
void
-fatal VPROTO((char *s, ...))
+fatal (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -1665,7 +1665,7 @@ v_warning_with_file_and_line (file, line, s, ap)
}
void
-warning_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+warning_with_file_and_line (char *file, int line, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *file;
@@ -1704,7 +1704,7 @@ v_warning_with_decl (decl, s, ap)
}
void
-warning_with_decl VPROTO((tree decl, char *s, ...))
+warning_with_decl (tree decl, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
tree decl;
@@ -1745,7 +1745,7 @@ v_warning_for_asm (insn, s, ap)
}
void
-warning_for_asm VPROTO((rtx insn, char *s, ...))
+warning_for_asm (rtx insn, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
rtx insn;
@@ -1775,7 +1775,7 @@ vwarning (s, ap)
}
void
-warning VPROTO((char *s, ...))
+warning (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -1807,7 +1807,7 @@ vpedwarn (s, ap)
}
void
-pedwarn VPROTO((char *s, ...))
+pedwarn (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -1847,7 +1847,7 @@ v_pedwarn_with_decl (decl, s, ap)
}
void
-pedwarn_with_decl VPROTO((tree decl, char *s, ...))
+pedwarn_with_decl (tree decl, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
tree decl;
@@ -1880,7 +1880,7 @@ v_pedwarn_with_file_and_line (file, line, s, ap)
}
void
-pedwarn_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+pedwarn_with_file_and_line (char *file, int line, char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *file;
@@ -1918,7 +1918,7 @@ vsorry (s, ap)
}
void
-sorry VPROTO((char *s, ...))
+sorry (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -1952,7 +1952,7 @@ v_really_sorry (s, ap)
}
void
-really_sorry VPROTO((char *s, ...))
+really_sorry (char *s, ...)
{
#ifndef ANSI_PROTOTYPES
char *s;
@@ -2302,7 +2302,7 @@ open_dump_file (suffix, function_name)
/* Routine to close a dump file. */
static void
close_dump_file (func, insns)
- void (*func) PROTO ((FILE *, rtx));
+ void (*func) (FILE *, rtx);
rtx insns;
{
TIMEVAR
@@ -2325,7 +2325,7 @@ static void
dump_rtl (suffix, decl, func, insns)
char *suffix;
tree decl;
- void (*func) PROTO ((FILE *, rtx));
+ void (*func) (FILE *, rtx);
rtx insns;
{
open_dump_file (suffix, decl_printable_name (decl, 2));
diff --git a/gcc/toplev.h b/gcc/toplev.h
index 2f8698e..f380573 100755
--- a/gcc/toplev.h
+++ b/gcc/toplev.h
@@ -26,65 +26,65 @@ union tree_node;
struct rtx_def;
#endif
-extern int count_error PROTO ((int));
-extern void strip_off_ending PROTO ((char *, int));
-extern void print_time PROTO ((char *, int));
-extern void debug_start_source_file PROTO ((char *));
-extern void debug_end_source_file PROTO ((unsigned));
-extern void debug_define PROTO ((unsigned, char *));
-extern void debug_undef PROTO ((unsigned, char *));
-extern void fatal PVPROTO ((char *, ...))
+extern int count_error (int);
+extern void strip_off_ending (char *, int);
+extern void print_time (char *, int);
+extern void debug_start_source_file (char *);
+extern void debug_end_source_file (unsigned);
+extern void debug_define (unsigned, char *);
+extern void debug_undef (unsigned, char *);
+extern void fatal (char *, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-extern void fatal_io_error PROTO ((char *)) ATTRIBUTE_NORETURN;
-extern void pfatal_with_name PROTO ((char *)) ATTRIBUTE_NORETURN;
-extern void fatal_insn_not_found PROTO ((struct rtx_def *))
+extern void fatal_io_error (char *) ATTRIBUTE_NORETURN;
+extern void pfatal_with_name (char *) ATTRIBUTE_NORETURN;
+extern void fatal_insn_not_found (struct rtx_def *)
ATTRIBUTE_NORETURN;
-extern void fatal_insn PROTO ((char *, struct rtx_def *))
+extern void fatal_insn (char *, struct rtx_def *)
ATTRIBUTE_NORETURN;
-extern void warning PVPROTO ((char *, ...))
+extern void warning (char *, ...)
ATTRIBUTE_PRINTF_1;
-extern void error PVPROTO ((char *, ...))
+extern void error (char *, ...)
ATTRIBUTE_PRINTF_1;
-extern void pedwarn PVPROTO ((char *, ...))
+extern void pedwarn (char *, ...)
ATTRIBUTE_PRINTF_1;
-extern void pedwarn_with_file_and_line PVPROTO ((char *, int, char *, ...))
+extern void pedwarn_with_file_and_line (char *, int, char *, ...)
ATTRIBUTE_PRINTF_3;
-extern void warning_with_file_and_line PVPROTO ((char *, int, char *, ...))
+extern void warning_with_file_and_line (char *, int, char *, ...)
ATTRIBUTE_PRINTF_3;
-extern void error_with_file_and_line PVPROTO ((char *, int, char *, ...))
+extern void error_with_file_and_line (char *, int, char *, ...)
ATTRIBUTE_PRINTF_3;
-extern void sorry PVPROTO ((char *s, ...))
+extern void sorry (char *s, ...)
ATTRIBUTE_PRINTF_1;
-extern void really_sorry PVPROTO((char *s, ...))
+extern void really_sorry (char *s, ...)
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-extern void default_print_error_function PROTO ((char *));
-extern void report_error_function PROTO ((char *));
+extern void default_print_error_function (char *);
+extern void report_error_function (char *);
-extern void rest_of_decl_compilation PROTO ((union tree_node *, char *, int, int));
-extern void rest_of_type_compilation PROTO ((union tree_node *, int));
-extern void rest_of_compilation PROTO ((union tree_node *));
-extern void pedwarn_with_decl PVPROTO ((union tree_node *, char *, ...));
-extern void warning_with_decl PVPROTO ((union tree_node *, char *, ...));
-extern void error_with_decl PVPROTO ((union tree_node *, char *, ...));
-extern void announce_function PROTO ((union tree_node *));
+extern void rest_of_decl_compilation (union tree_node *, char *, int, int);
+extern void rest_of_type_compilation (union tree_node *, int);
+extern void rest_of_compilation (union tree_node *);
+extern void pedwarn_with_decl (union tree_node *, char *, ...);
+extern void warning_with_decl (union tree_node *, char *, ...);
+extern void error_with_decl (union tree_node *, char *, ...);
+extern void announce_function (union tree_node *);
-extern void error_for_asm PVPROTO((struct rtx_def *, char *, ...))
+extern void error_for_asm (struct rtx_def *, char *, ...)
ATTRIBUTE_PRINTF_2;
-extern void warning_for_asm PVPROTO((struct rtx_def *, char *, ...))
+extern void warning_for_asm (struct rtx_def *, char *, ...)
ATTRIBUTE_PRINTF_2;
#if defined (_JBLEN) || defined (setjmp)
-extern void set_float_handler PROTO((jmp_buf));
-extern int push_float_handler PROTO((jmp_buf, jmp_buf));
-extern void pop_float_handler PROTO((int, jmp_buf));
+extern void set_float_handler (jmp_buf);
+extern int push_float_handler (jmp_buf, jmp_buf);
+extern void pop_float_handler (int, jmp_buf);
#endif
#ifdef BUFSIZ
-extern void output_quoted_string PROTO ((FILE *, char *));
-extern void output_file_directive PROTO ((FILE *, char *));
+extern void output_quoted_string (FILE *, char *);
+extern void output_file_directive (FILE *, char *);
#endif
-extern void fancy_abort PROTO ((void)) ATTRIBUTE_NORETURN;
-extern void do_abort PROTO ((void)) ATTRIBUTE_NORETURN;
-extern void botch PROTO ((char *)) ATTRIBUTE_NORETURN;
+extern void fancy_abort (void) ATTRIBUTE_NORETURN;
+extern void do_abort (void) ATTRIBUTE_NORETURN;
+extern void botch (char *) ATTRIBUTE_NORETURN;
#endif /* __GCC_TOPLEV_H */
diff --git a/gcc/tree.c b/gcc/tree.c
index ca7b3db..f1209c8 100755
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -46,7 +46,7 @@ Boston, MA 02111-1307, USA. */
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
/* obstack.[ch] explicitly declined to prototype this. */
-extern int _obstack_allocated_p PROTO ((struct obstack *h, GENERIC_PTR obj));
+extern int _obstack_allocated_p (struct obstack *h, GENERIC_PTR obj);
/* Tree nodes of permanent duration are allocated in this obstack.
They are the identifier nodes, and everything outside of
@@ -258,14 +258,14 @@ static int next_type_uid = 1;
/* The language-specific function for alias analysis. If NULL, the
language does not do any special alias analysis. */
-int (*lang_get_alias_set) PROTO((tree));
+int (*lang_get_alias_set) (tree);
/* Here is how primitive or already-canonicalized types' hash
codes are made. */
#define TYPE_HASH(TYPE) ((unsigned long) (TYPE) & 0777777)
-static void set_type_quals PROTO((tree, int));
-static void append_random_chars PROTO((char *));
+static void set_type_quals (tree, int);
+static void append_random_chars (char *);
extern char *mode_name[];
@@ -2965,7 +2965,7 @@ stabilize_reference_1 (e)
Constants, decls, types and misc nodes cannot be. */
tree
-build VPROTO((enum tree_code code, tree tt, ...))
+build (enum tree_code code, tree tt, ...)
{
#ifndef ANSI_PROTOTYPES
enum tree_code code;
@@ -3089,7 +3089,7 @@ build1 (code, type, node)
or even garbage if their values do not matter. */
tree
-build_nt VPROTO((enum tree_code code, ...))
+build_nt (enum tree_code code, ...)
{
#ifndef ANSI_PROTOTYPES
enum tree_code code;
@@ -3119,7 +3119,7 @@ build_nt VPROTO((enum tree_code code, ...))
on the temp_decl_obstack, regardless. */
tree
-build_parse_node VPROTO((enum tree_code code, ...))
+build_parse_node (enum tree_code code, ...)
{
#ifndef ANSI_PROTOTYPES
enum tree_code code;
diff --git a/gcc/tree.h b/gcc/tree.h
index e5d03d1..aa6a008 100755
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1373,102 +1373,102 @@ union tree_node
#define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N))
#define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N))
#endif
-extern int exact_log2_wide PROTO((unsigned HOST_WIDE_INT));
-extern int floor_log2_wide PROTO((unsigned HOST_WIDE_INT));
+extern int exact_log2_wide (unsigned HOST_WIDE_INT);
+extern int floor_log2_wide (unsigned HOST_WIDE_INT);
-extern char *oballoc PROTO((int));
-extern char *permalloc PROTO((int));
-extern char *savealloc PROTO((int));
-extern char *expralloc PROTO((int));
+extern char *oballoc (int);
+extern char *permalloc (int);
+extern char *savealloc (int);
+extern char *expralloc (int);
/* Lowest level primitive for allocating a node.
The TREE_CODE is the only argument. Contents are initialized
to zero except for a few of the common fields. */
-extern tree make_node PROTO((enum tree_code));
+extern tree make_node (enum tree_code);
/* Make a copy of a node, with all the same contents except
for TREE_PERMANENT. (The copy is permanent
iff nodes being made now are permanent.) */
-extern tree copy_node PROTO((tree));
+extern tree copy_node (tree);
/* Make a copy of a chain of TREE_LIST nodes. */
-extern tree copy_list PROTO((tree));
+extern tree copy_list (tree);
/* Make a TREE_VEC. */
-extern tree make_tree_vec PROTO((int));
+extern tree make_tree_vec (int);
/* Return the (unique) IDENTIFIER_NODE node for a given name.
The name is supplied as a char *. */
-extern tree get_identifier PROTO((char *));
+extern tree get_identifier (char *);
/* If an identifier with the name TEXT (a null-terminated string) has
previously been referred to, return that node; otherwise return
NULL_TREE. */
-extern tree maybe_get_identifier PROTO((char *));
+extern tree maybe_get_identifier (char *);
/* Construct various types of nodes. */
#define build_int_2(LO,HI) \
build_int_2_wide ((HOST_WIDE_INT) (LO), (HOST_WIDE_INT) (HI))
-extern tree build PVPROTO((enum tree_code, tree, ...));
-extern tree build_nt PVPROTO((enum tree_code, ...));
-extern tree build_parse_node PVPROTO((enum tree_code, ...));
-
-extern tree build_int_2_wide PROTO((HOST_WIDE_INT, HOST_WIDE_INT));
-extern tree build_real PROTO((tree, REAL_VALUE_TYPE));
-extern tree build_real_from_int_cst PROTO((tree, tree));
-extern tree build_complex PROTO((tree, tree, tree));
-extern tree build_string PROTO((int, char *));
-extern tree build1 PROTO((enum tree_code, tree, tree));
-extern tree build_tree_list PROTO((tree, tree));
-extern tree build_decl_list PROTO((tree, tree));
-extern tree build_expr_list PROTO((tree, tree));
-extern tree build_decl PROTO((enum tree_code, tree, tree));
-extern tree build_block PROTO((tree, tree, tree, tree, tree));
-extern tree build_expr_wfl PROTO((tree, char *, int, int));
+extern tree build (enum tree_code, tree, ...);
+extern tree build_nt (enum tree_code, ...);
+extern tree build_parse_node (enum tree_code, ...);
+
+extern tree build_int_2_wide (HOST_WIDE_INT, HOST_WIDE_INT);
+extern tree build_real (tree, REAL_VALUE_TYPE);
+extern tree build_real_from_int_cst (tree, tree);
+extern tree build_complex (tree, tree, tree);
+extern tree build_string (int, char *);
+extern tree build1 (enum tree_code, tree, tree);
+extern tree build_tree_list (tree, tree);
+extern tree build_decl_list (tree, tree);
+extern tree build_expr_list (tree, tree);
+extern tree build_decl (enum tree_code, tree, tree);
+extern tree build_block (tree, tree, tree, tree, tree);
+extern tree build_expr_wfl (tree, char *, int, int);
/* Construct various nodes representing data types. */
-extern tree make_signed_type PROTO((int));
-extern tree make_unsigned_type PROTO((int));
-extern void set_sizetype PROTO((tree));
-extern tree signed_or_unsigned_type PROTO((int, tree));
-extern void fixup_unsigned_type PROTO((tree));
-extern tree build_pointer_type PROTO((tree));
-extern tree build_reference_type PROTO((tree));
-extern tree build_index_type PROTO((tree));
-extern tree build_index_2_type PROTO((tree, tree));
-extern tree build_array_type PROTO((tree, tree));
-extern tree build_function_type PROTO((tree, tree));
-extern tree build_method_type PROTO((tree, tree));
-extern tree build_offset_type PROTO((tree, tree));
-extern tree build_complex_type PROTO((tree));
-extern tree array_type_nelts PROTO((tree));
-
-extern tree value_member PROTO((tree, tree));
-extern tree purpose_member PROTO((tree, tree));
-extern tree binfo_member PROTO((tree, tree));
-extern int attribute_hash_list PROTO((tree));
-extern int attribute_list_equal PROTO((tree, tree));
-extern int attribute_list_contained PROTO((tree, tree));
-extern int tree_int_cst_equal PROTO((tree, tree));
-extern int tree_int_cst_lt PROTO((tree, tree));
-extern int tree_int_cst_sgn PROTO((tree));
-extern int index_type_equal PROTO((tree, tree));
-extern tree get_inner_array_type PROTO((tree));
+extern tree make_signed_type (int);
+extern tree make_unsigned_type (int);
+extern void set_sizetype (tree);
+extern tree signed_or_unsigned_type (int, tree);
+extern void fixup_unsigned_type (tree);
+extern tree build_pointer_type (tree);
+extern tree build_reference_type (tree);
+extern tree build_index_type (tree);
+extern tree build_index_2_type (tree, tree);
+extern tree build_array_type (tree, tree);
+extern tree build_function_type (tree, tree);
+extern tree build_method_type (tree, tree);
+extern tree build_offset_type (tree, tree);
+extern tree build_complex_type (tree);
+extern tree array_type_nelts (tree);
+
+extern tree value_member (tree, tree);
+extern tree purpose_member (tree, tree);
+extern tree binfo_member (tree, tree);
+extern int attribute_hash_list (tree);
+extern int attribute_list_equal (tree, tree);
+extern int attribute_list_contained (tree, tree);
+extern int tree_int_cst_equal (tree, tree);
+extern int tree_int_cst_lt (tree, tree);
+extern int tree_int_cst_sgn (tree);
+extern int index_type_equal (tree, tree);
+extern tree get_inner_array_type (tree);
/* From expmed.c. Since rtl.h is included after tree.h, we can't
put the prototype here. Rtl.h does declare the prototype if
tree.h had been included. */
-extern tree make_tree PROTO((tree, struct rtx_def *));
+extern tree make_tree (tree, struct rtx_def *);
/* Return a type like TTYPE except that its TYPE_ATTRIBUTES
is ATTRIBUTE.
@@ -1476,37 +1476,37 @@ extern tree make_tree PROTO((tree, struct rtx_def *));
Such modified types already made are recorded so that duplicates
are not made. */
-extern tree build_type_attribute_variant PROTO((tree, tree));
-extern tree build_decl_attribute_variant PROTO((tree, tree));
+extern tree build_type_attribute_variant (tree, tree);
+extern tree build_decl_attribute_variant (tree, tree);
-extern tree merge_machine_decl_attributes PROTO((tree, tree));
-extern tree merge_machine_type_attributes PROTO((tree, tree));
+extern tree merge_machine_decl_attributes (tree, tree);
+extern tree merge_machine_type_attributes (tree, tree);
/* Split a list of declspecs and attributes into two. */
-extern void split_specs_attrs PROTO((tree, tree *, tree *));
+extern void split_specs_attrs (tree, tree *, tree *);
/* Strip attributes from a list of combined specs and attrs. */
-extern tree strip_attrs PROTO((tree));
+extern tree strip_attrs (tree);
/* Return 1 if an attribute and its arguments are valid for a decl or type. */
-extern int valid_machine_attribute PROTO((tree, tree, tree, tree));
+extern int valid_machine_attribute (tree, tree, tree, tree);
/* Given a tree node and a string, return non-zero if the tree node is
a valid attribute name for the string. */
-extern int is_attribute_p PROTO((char *, tree));
+extern int is_attribute_p (char *, tree);
/* Given an attribute name and a list of attributes, return the list element
of the attribute or NULL_TREE if not found. */
-extern tree lookup_attribute PROTO((char *, tree));
+extern tree lookup_attribute (char *, tree);
/* Given two attributes lists, return a list of their union. */
-extern tree merge_attributes PROTO((tree, tree));
+extern tree merge_attributes (tree, tree);
/* Given a type node TYPE and a TYPE_QUALIFIER_SET, return a type for
the same kind of data as TYPE describes. Variants point to the
@@ -1515,7 +1515,7 @@ extern tree merge_attributes PROTO((tree, tree));
variants are never made. Only main variants should ever appear as
types of expressions. */
-extern tree build_qualified_type PROTO((tree, int));
+extern tree build_qualified_type (tree, int);
/* Like build_qualified_type, but only deals with the `const' and
`volatile' qualifiers. This interface is retained for backwards
@@ -1529,21 +1529,21 @@ extern tree build_qualified_type PROTO((tree, int));
/* Make a copy of a type node. */
-extern tree build_type_copy PROTO((tree));
+extern tree build_type_copy (tree);
/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
TYPE_ALIGN and TYPE_MODE fields.
If called more than once on one node, does nothing except
for the first time. */
-extern void layout_type PROTO((tree));
+extern void layout_type (tree);
/* Given a hashcode and a ..._TYPE node (for which the hashcode was made),
return a canonicalized ..._TYPE node, so that duplicates are not made.
How the hash code is computed is up to the caller, as long as any two
callers that could hash identical-looking type nodes agree. */
-extern tree type_hash_canon PROTO((int, tree));
+extern tree type_hash_canon (int, tree);
/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,
calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE
@@ -1553,29 +1553,29 @@ extern tree type_hash_canon PROTO((int, tree));
be starting at (in bits). Zero means it can be assumed aligned
on any boundary that may be needed. */
-extern void layout_decl PROTO((tree, unsigned));
+extern void layout_decl (tree, unsigned);
/* Return an expr equal to X but certainly not valid as an lvalue. */
-extern tree non_lvalue PROTO((tree));
-extern tree pedantic_non_lvalue PROTO((tree));
+extern tree non_lvalue (tree);
+extern tree pedantic_non_lvalue (tree);
-extern tree convert PROTO((tree, tree));
-extern tree size_in_bytes PROTO((tree));
-extern HOST_WIDE_INT int_size_in_bytes PROTO((tree));
-extern tree size_binop PROTO((enum tree_code, tree, tree));
-extern tree ssize_binop PROTO((enum tree_code, tree, tree));
-extern tree size_int_wide PROTO((unsigned HOST_WIDE_INT,
- unsigned HOST_WIDE_INT, int));
+extern tree convert (tree, tree);
+extern tree size_in_bytes (tree);
+extern HOST_WIDE_INT int_size_in_bytes (tree);
+extern tree size_binop (enum tree_code, tree, tree);
+extern tree ssize_binop (enum tree_code, tree, tree);
+extern tree size_int_wide (unsigned HOST_WIDE_INT,
+ unsigned HOST_WIDE_INT, int);
#define size_int(L) size_int_2 ((L), 0, 0)
#define bitsize_int(L, H) size_int_2 ((L), (H), 1)
#define size_int_2(L, H, T) \
size_int_wide ((unsigned HOST_WIDE_INT) (L), \
(unsigned HOST_WIDE_INT) (H), (T))
-extern tree round_up PROTO((tree, int));
-extern tree get_pending_sizes PROTO((void));
-extern void put_pending_sizes PROTO((tree));
+extern tree round_up (tree, int);
+extern tree get_pending_sizes (void);
+extern void put_pending_sizes (tree);
/* Type for sizes of data-type. */
@@ -1610,79 +1610,79 @@ extern int set_alignment;
by making the last node in X point to Y.
Returns X, except if X is 0 returns Y. */
-extern tree chainon PROTO((tree, tree));
+extern tree chainon (tree, tree);
/* Make a new TREE_LIST node from specified PURPOSE, VALUE and CHAIN. */
-extern tree tree_cons PROTO((tree, tree, tree));
-extern tree perm_tree_cons PROTO((tree, tree, tree));
-extern tree temp_tree_cons PROTO((tree, tree, tree));
-extern tree saveable_tree_cons PROTO((tree, tree, tree));
-extern tree decl_tree_cons PROTO((tree, tree, tree));
-extern tree expr_tree_cons PROTO((tree, tree, tree));
+extern tree tree_cons (tree, tree, tree);
+extern tree perm_tree_cons (tree, tree, tree);
+extern tree temp_tree_cons (tree, tree, tree);
+extern tree saveable_tree_cons (tree, tree, tree);
+extern tree decl_tree_cons (tree, tree, tree);
+extern tree expr_tree_cons (tree, tree, tree);
/* Return the last tree node in a chain. */
-extern tree tree_last PROTO((tree));
+extern tree tree_last (tree);
/* Reverse the order of elements in a chain, and return the new head. */
-extern tree nreverse PROTO((tree));
+extern tree nreverse (tree);
/* Returns the length of a chain of nodes
(number of chain pointers to follow before reaching a null pointer). */
-extern int list_length PROTO((tree));
+extern int list_length (tree);
/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0 */
-extern int integer_zerop PROTO((tree));
+extern int integer_zerop (tree);
/* integer_onep (tree x) is nonzero if X is an integer constant of value 1 */
-extern int integer_onep PROTO((tree));
+extern int integer_onep (tree);
/* integer_all_onesp (tree x) is nonzero if X is an integer constant
all of whose significant bits are 1. */
-extern int integer_all_onesp PROTO((tree));
+extern int integer_all_onesp (tree);
/* integer_pow2p (tree x) is nonzero is X is an integer constant with
exactly one bit 1. */
-extern int integer_pow2p PROTO((tree));
+extern int integer_pow2p (tree);
/* staticp (tree x) is nonzero if X is a reference to data allocated
at a fixed address in memory. */
-extern int staticp PROTO((tree));
+extern int staticp (tree);
/* Gets an error if argument X is not an lvalue.
Also returns 1 if X is an lvalue, 0 if not. */
-extern int lvalue_or_else PROTO((tree, char *));
+extern int lvalue_or_else (tree, char *);
/* save_expr (EXP) returns an expression equivalent to EXP
but it can be used multiple times within context CTX
and only evaluate EXP once. */
-extern tree save_expr PROTO((tree));
+extern tree save_expr (tree);
/* Returns the index of the first non-tree operand for CODE, or the number
of operands if all are trees. */
-extern int first_rtl_op PROTO((enum tree_code));
+extern int first_rtl_op (enum tree_code);
/* unsave_expr (EXP) returns an expression equivalent to EXP but it
can be used multiple times and will evaluate EXP, in its entirety
each time. */
-extern tree unsave_expr PROTO((tree));
+extern tree unsave_expr (tree);
/* unsave_expr_now (EXP) resets EXP in place, so that it can be
expanded again. */
-extern tree unsave_expr_now PROTO((tree));
+extern tree unsave_expr_now (tree);
/* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size
or offset that depends on a field within a record.
@@ -1690,19 +1690,19 @@ extern tree unsave_expr_now PROTO((tree));
Note that we only allow such expressions within simple arithmetic
or a COND_EXPR. */
-extern int contains_placeholder_p PROTO((tree));
+extern int contains_placeholder_p (tree);
/* Return 1 if EXP contains any expressions that produce cleanups for an
outer scope to deal with. Used by fold. */
-extern int has_cleanups PROTO((tree));
+extern int has_cleanups (tree);
/* Given a tree EXP, a FIELD_DECL F, and a replacement value R,
return a tree with all occurrences of references to F in a
PLACEHOLDER_EXPR replaced by R. Note that we assume here that EXP
contains only arithmetic expressions. */
-extern tree substitute_in_expr PROTO((tree, tree, tree));
+extern tree substitute_in_expr (tree, tree, tree);
/* variable_size (EXP) is like save_expr (EXP) except that it
is for the special case of something that is part of a
@@ -1710,93 +1710,93 @@ extern tree substitute_in_expr PROTO((tree, tree, tree));
to compute the value at the right time when the data type
belongs to a function parameter. */
-extern tree variable_size PROTO((tree));
+extern tree variable_size (tree);
/* stabilize_reference (EXP) returns an reference equivalent to EXP
but it can be used multiple times
and only evaluate the subexpressions once. */
-extern tree stabilize_reference PROTO((tree));
+extern tree stabilize_reference (tree);
/* Subroutine of stabilize_reference; this is called for subtrees of
references. Any expression with side-effects must be put in a SAVE_EXPR
to ensure that it is only evaluated once. */
-extern tree stabilize_reference_1 PROTO((tree));
+extern tree stabilize_reference_1 (tree);
/* Return EXP, stripped of any conversions to wider types
in such a way that the result of converting to type FOR_TYPE
is the same as if EXP were converted to FOR_TYPE.
If FOR_TYPE is 0, it signifies EXP's type. */
-extern tree get_unwidened PROTO((tree, tree));
+extern tree get_unwidened (tree, tree);
/* Return OP or a simpler expression for a narrower value
which can be sign-extended or zero-extended to give back OP.
Store in *UNSIGNEDP_PTR either 1 if the value should be zero-extended
or 0 if the value should be sign-extended. */
-extern tree get_narrower PROTO((tree, int *));
+extern tree get_narrower (tree, int *);
/* Given MODE and UNSIGNEDP, return a suitable type-tree
with that mode.
The definition of this resides in language-specific code
as the repertoire of available types may vary. */
-extern tree type_for_mode PROTO((enum machine_mode, int));
+extern tree type_for_mode (enum machine_mode, int);
/* Given PRECISION and UNSIGNEDP, return a suitable type-tree
for an integer type with at least that precision.
The definition of this resides in language-specific code
as the repertoire of available types may vary. */
-extern tree type_for_size PROTO((unsigned, int));
+extern tree type_for_size (unsigned, int);
/* Given an integer type T, return a type like T but unsigned.
If T is unsigned, the value is T.
The definition of this resides in language-specific code
as the repertoire of available types may vary. */
-extern tree unsigned_type PROTO((tree));
+extern tree unsigned_type (tree);
/* Given an integer type T, return a type like T but signed.
If T is signed, the value is T.
The definition of this resides in language-specific code
as the repertoire of available types may vary. */
-extern tree signed_type PROTO((tree));
+extern tree signed_type (tree);
/* This function must be defined in the language-specific files.
expand_expr calls it to build the cleanup-expression for a TARGET_EXPR.
This is defined in a language-specific file. */
-extern tree maybe_build_cleanup PROTO((tree));
+extern tree maybe_build_cleanup (tree);
/* Given an expression EXP that may be a COMPONENT_REF or an ARRAY_REF,
look for nested component-refs or array-refs at constant positions
and find the ultimate containing object, which is returned. */
-extern tree get_inner_reference PROTO((tree, int *, int *, tree *,
+extern tree get_inner_reference (tree, int *, int *, tree *,
enum machine_mode *, int *,
- int *, int *));
+ int *, int *);
/* Return the FUNCTION_DECL which provides this _DECL with its context,
or zero if none. */
-extern tree decl_function_context PROTO((tree));
+extern tree decl_function_context (tree);
/* Return the RECORD_TYPE, UNION_TYPE, or QUAL_UNION_TYPE which provides
this _DECL with its context, or zero if none. */
-extern tree decl_type_context PROTO((tree));
+extern tree decl_type_context (tree);
/* Given the FUNCTION_DECL for the current function,
return zero if it is ok for this function to be inline.
Otherwise return a warning message with a single %s
for the function's name. */
-extern char *function_cannot_inline_p PROTO((tree));
+extern char *function_cannot_inline_p (tree);
/* Return 1 if EXPR is the real constant zero. */
-extern int real_zerop PROTO((tree));
+extern int real_zerop (tree);
/* Declare commonly used variables for tree structure. */
@@ -1875,75 +1875,75 @@ extern int all_types_permanent;
2: and any other information that might be interesting, such as function
parameter types in C++. */
-extern char *(*decl_printable_name) PROTO((tree, int));
+extern char *(*decl_printable_name) (tree, int);
/* Pointer to function to finish handling an incomplete decl at the
end of compilation. */
-extern void (*incomplete_decl_finalize_hook) PROTO((tree));
+extern void (*incomplete_decl_finalize_hook) (tree);
/* In tree.c */
-extern char *perm_calloc PROTO((int, long));
-extern tree get_file_function_name PROTO((int));
-extern tree get_file_function_name_long PROTO((char *));
-extern tree get_set_constructor_bits PROTO((tree, char *, int));
-extern tree get_set_constructor_bytes PROTO((tree,
- unsigned char *, int));
-extern int get_alias_set PROTO((tree));
-extern int new_alias_set PROTO((void));
-extern int (*lang_get_alias_set) PROTO((tree));
+extern char *perm_calloc (int, long);
+extern tree get_file_function_name (int);
+extern tree get_file_function_name_long (char *);
+extern tree get_set_constructor_bits (tree, char *, int);
+extern tree get_set_constructor_bytes (tree,
+ unsigned char *, int);
+extern int get_alias_set (tree);
+extern int new_alias_set (void);
+extern int (*lang_get_alias_set) (tree);
/* In stmt.c */
-extern void expand_fixups PROTO((struct rtx_def *));
-extern tree expand_start_stmt_expr PROTO((void));
-extern tree expand_end_stmt_expr PROTO((tree));
-extern void expand_expr_stmt PROTO((tree));
-extern int warn_if_unused_value PROTO((tree));
-extern void expand_decl_init PROTO((tree));
-extern void clear_last_expr PROTO((void));
-extern void expand_label PROTO((tree));
-extern void expand_goto PROTO((tree));
-extern void expand_asm PROTO((tree));
-extern void expand_start_cond PROTO((tree, int));
-extern void expand_end_cond PROTO((void));
-extern void expand_start_else PROTO((void));
-extern void expand_start_elseif PROTO((tree));
-extern struct nesting *expand_start_loop PROTO((int));
-extern struct nesting *expand_start_loop_continue_elsewhere PROTO((int));
-extern void expand_loop_continue_here PROTO((void));
-extern void expand_end_loop PROTO((void));
-extern int expand_continue_loop PROTO((struct nesting *));
-extern int expand_exit_loop PROTO((struct nesting *));
-extern int expand_exit_loop_if_false PROTO((struct nesting *,
- tree));
-extern int expand_exit_something PROTO((void));
-
-extern void expand_null_return PROTO((void));
-extern void expand_return PROTO((tree));
-extern int optimize_tail_recursion PROTO((tree, struct rtx_def *));
-extern void expand_start_bindings PROTO((int));
-extern void expand_end_bindings PROTO((tree, int, int));
-extern void start_cleanup_deferral PROTO((void));
-extern void end_cleanup_deferral PROTO((void));
-extern void mark_block_as_eh_region PROTO((void));
-extern void mark_block_as_not_eh_region PROTO((void));
-extern int is_eh_region PROTO((void));
-extern int conditional_context PROTO((void));
-extern tree last_cleanup_this_contour PROTO((void));
-extern int expand_dhc_cleanup PROTO((tree));
-extern int expand_dcc_cleanup PROTO((tree));
-extern void expand_start_case PROTO((int, tree, tree,
- char *));
-extern void expand_end_case PROTO((tree));
-extern int pushcase PROTO((tree,
+extern void expand_fixups (struct rtx_def *);
+extern tree expand_start_stmt_expr (void);
+extern tree expand_end_stmt_expr (tree);
+extern void expand_expr_stmt (tree);
+extern int warn_if_unused_value (tree);
+extern void expand_decl_init (tree);
+extern void clear_last_expr (void);
+extern void expand_label (tree);
+extern void expand_goto (tree);
+extern void expand_asm (tree);
+extern void expand_start_cond (tree, int);
+extern void expand_end_cond (void);
+extern void expand_start_else (void);
+extern void expand_start_elseif (tree);
+extern struct nesting *expand_start_loop (int);
+extern struct nesting *expand_start_loop_continue_elsewhere (int);
+extern void expand_loop_continue_here (void);
+extern void expand_end_loop (void);
+extern int expand_continue_loop (struct nesting *);
+extern int expand_exit_loop (struct nesting *);
+extern int expand_exit_loop_if_false (struct nesting *,
+ tree);
+extern int expand_exit_something (void);
+
+extern void expand_null_return (void);
+extern void expand_return (tree);
+extern int optimize_tail_recursion (tree, struct rtx_def *);
+extern void expand_start_bindings (int);
+extern void expand_end_bindings (tree, int, int);
+extern void start_cleanup_deferral (void);
+extern void end_cleanup_deferral (void);
+extern void mark_block_as_eh_region (void);
+extern void mark_block_as_not_eh_region (void);
+extern int is_eh_region (void);
+extern int conditional_context (void);
+extern tree last_cleanup_this_contour (void);
+extern int expand_dhc_cleanup (tree);
+extern int expand_dcc_cleanup (tree);
+extern void expand_start_case (int, tree, tree,
+ char *);
+extern void expand_end_case (tree);
+extern int pushcase (tree,
tree (*) (tree, tree),
- tree, tree *));
-extern int pushcase_range PROTO((tree, tree,
+ tree, tree *);
+extern int pushcase_range (tree, tree,
tree (*) (tree, tree),
- tree, tree *));
-extern void using_eh_for_cleanups PROTO((void));
-extern int stmt_loop_nest_empty PROTO((void));
+ tree, tree *);
+extern void using_eh_for_cleanups (void);
+extern int stmt_loop_nest_empty (void);
/* In fold-const.c */
@@ -1953,373 +1953,373 @@ extern int stmt_loop_nest_empty PROTO((void));
if the argument itself cannot be simplified, its
subexpressions are not changed. */
-extern tree fold PROTO((tree));
+extern tree fold (tree);
-extern int force_fit_type PROTO((tree, int));
-extern int add_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+extern int force_fit_type (tree, int);
+extern int add_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern int neg_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern int mul_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern int neg_double (HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern int mul_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
- HOST_WIDE_INT *, HOST_WIDE_INT *));
-extern void lshift_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *);
+extern void lshift_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *, int));
-extern void rshift_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, int);
+extern void rshift_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int,
- HOST_WIDE_INT *, HOST_WIDE_INT *, int));
-extern void lrotate_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *, HOST_WIDE_INT *, int);
+extern void lrotate_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *));
-extern void rrotate_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT,
+ HOST_WIDE_INT *);
+extern void rrotate_double (HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, int, HOST_WIDE_INT *,
- HOST_WIDE_INT *));
-extern int operand_equal_p PROTO((tree, tree, int));
-extern tree invert_truthvalue PROTO((tree));
+ HOST_WIDE_INT *);
+extern int operand_equal_p (tree, tree, int);
+extern tree invert_truthvalue (tree);
/* Interface of the DWARF2 unwind info support. */
/* Decide whether we want to emit frame unwind information for the current
translation unit. */
-extern int dwarf2out_do_frame PROTO((void));
+extern int dwarf2out_do_frame (void);
/* Generate a new label for the CFI info to refer to. */
-extern char *dwarf2out_cfi_label PROTO((void));
+extern char *dwarf2out_cfi_label (void);
/* Entry point to update the canonical frame address (CFA). */
-extern void dwarf2out_def_cfa PROTO((char *, unsigned, long));
+extern void dwarf2out_def_cfa (char *, unsigned, long);
/* Add the CFI for saving a register window. */
-extern void dwarf2out_window_save PROTO((char *));
+extern void dwarf2out_window_save (char *);
/* Add a CFI to update the running total of the size of arguments pushed
onto the stack. */
-extern void dwarf2out_args_size PROTO((char *, long));
+extern void dwarf2out_args_size (char *, long);
/* Entry point for saving a register to the stack. */
-extern void dwarf2out_reg_save PROTO((char *, unsigned, long));
+extern void dwarf2out_reg_save (char *, unsigned, long);
/* Entry point for saving the return address in the stack. */
-extern void dwarf2out_return_save PROTO((char *, long));
+extern void dwarf2out_return_save (char *, long);
/* Entry point for saving the return address in a register. */
-extern void dwarf2out_return_reg PROTO((char *, unsigned));
+extern void dwarf2out_return_reg (char *, unsigned);
/* Output a marker (i.e. a label) for the beginning of a function, before
the prologue. */
-extern void dwarf2out_begin_prologue PROTO((void));
+extern void dwarf2out_begin_prologue (void);
/* Output a marker (i.e. a label) for the absolute end of the generated
code for a function definition. */
-extern void dwarf2out_end_epilogue PROTO((void));
+extern void dwarf2out_end_epilogue (void);
/* The language front-end must define these functions. */
/* Function of no arguments for initializing lexical scanning. */
-extern void init_lex PROTO((void));
+extern void init_lex (void);
/* Function of no arguments for initializing the symbol table. */
-extern void init_decl_processing PROTO((void));
+extern void init_decl_processing (void);
/* Function to replace the DECL_LANG_SPECIFIC field of a DECL with a copy. */
-extern void copy_lang_decl PROTO((tree));
+extern void copy_lang_decl (tree);
/* Function called with no arguments to parse and compile the input. */
-extern int yyparse PROTO((void));
+extern int yyparse (void);
/* Functions for processing symbol declarations. */
/* Function to enter a new lexical scope.
Takes one argument: always zero when called from outside the front end. */
-extern void pushlevel PROTO((int));
+extern void pushlevel (int);
/* Function to exit a lexical scope. It returns a BINDING for that scope.
Takes three arguments:
KEEP -- nonzero if there were declarations in this scope.
REVERSE -- reverse the order of decls before returning them.
FUNCTIONBODY -- nonzero if this level is the body of a function. */
-extern tree poplevel PROTO((int, int, int));
+extern tree poplevel (int, int, int);
/* Set the BLOCK node for the current scope level. */
-extern void set_block PROTO((tree));
+extern void set_block (tree);
/* Function to add a decl to the current scope level.
Takes one argument, a decl to add.
Returns that decl, or, if the same symbol is already declared, may
return a different decl for that name. */
-extern tree pushdecl PROTO((tree));
+extern tree pushdecl (tree);
/* Function to return the chain of decls so far in the current scope level. */
-extern tree getdecls PROTO((void));
+extern tree getdecls (void);
/* Function to return the chain of structure tags in the current scope level. */
-extern tree gettags PROTO((void));
+extern tree gettags (void);
-extern tree build_range_type PROTO((tree, tree, tree));
+extern tree build_range_type (tree, tree, tree);
/* Call when starting to parse a declaration:
make expressions in the declaration last the length of the function.
Returns an argument that should be passed to resume_momentary later. */
-extern int suspend_momentary PROTO((void));
+extern int suspend_momentary (void);
-extern int allocation_temporary_p PROTO((void));
+extern int allocation_temporary_p (void);
/* Call when finished parsing a declaration:
restore the treatment of node-allocation that was
in effect before the suspension.
YES should be the value previously returned by suspend_momentary. */
-extern void resume_momentary PROTO((int));
+extern void resume_momentary (int);
/* Called after finishing a record, union or enumeral type. */
-extern void rest_of_type_compilation PROTO((tree, int));
+extern void rest_of_type_compilation (tree, int);
/* Save the current set of obstacks, but don't change them. */
-extern void push_obstacks_nochange PROTO((void));
+extern void push_obstacks_nochange (void);
-extern void permanent_allocation PROTO((int));
+extern void permanent_allocation (int);
-extern void push_momentary PROTO((void));
+extern void push_momentary (void);
-extern void clear_momentary PROTO((void));
+extern void clear_momentary (void);
-extern void pop_momentary PROTO((void));
+extern void pop_momentary (void);
-extern void end_temporary_allocation PROTO((void));
+extern void end_temporary_allocation (void);
/* Pop the obstack selection stack. */
-extern void pop_obstacks PROTO((void));
+extern void pop_obstacks (void);
/* In tree.c */
-extern int really_constant_p PROTO ((tree));
-extern void push_obstacks PROTO ((struct obstack *,
- struct obstack *));
-extern void pop_momentary_nofree PROTO ((void));
-extern void preserve_momentary PROTO ((void));
-extern void saveable_allocation PROTO ((void));
-extern void temporary_allocation PROTO ((void));
-extern void resume_temporary_allocation PROTO ((void));
-extern tree get_file_function_name PROTO ((int));
-extern void set_identifier_size PROTO ((int));
-extern int int_fits_type_p PROTO ((tree, tree));
-extern int tree_log2 PROTO ((tree));
-extern void preserve_initializer PROTO ((void));
-extern void preserve_data PROTO ((void));
-extern int object_permanent_p PROTO ((tree));
-extern int type_precision PROTO ((tree));
-extern int simple_cst_equal PROTO ((tree, tree));
-extern int type_list_equal PROTO ((tree, tree));
-extern int chain_member PROTO ((tree, tree));
-extern int chain_member_purpose PROTO ((tree, tree));
-extern int chain_member_value PROTO ((tree, tree));
-extern tree listify PROTO ((tree));
-extern tree type_hash_lookup PROTO ((int, tree));
-extern void type_hash_add PROTO ((int, tree));
-extern int type_hash_list PROTO ((tree));
-extern int simple_cst_list_equal PROTO ((tree, tree));
-extern void debug_obstack PROTO ((char *));
-extern void rtl_in_current_obstack PROTO ((void));
-extern void rtl_in_saveable_obstack PROTO ((void));
-extern void init_tree_codes PROTO ((void));
-extern void dump_tree_statistics PROTO ((void));
-extern void print_obstack_statistics PROTO ((char *, struct obstack *));
+extern int really_constant_p (tree);
+extern void push_obstacks (struct obstack *,
+ struct obstack *);
+extern void pop_momentary_nofree (void);
+extern void preserve_momentary (void);
+extern void saveable_allocation (void);
+extern void temporary_allocation (void);
+extern void resume_temporary_allocation (void);
+extern tree get_file_function_name (int);
+extern void set_identifier_size (int);
+extern int int_fits_type_p (tree, tree);
+extern int tree_log2 (tree);
+extern void preserve_initializer (void);
+extern void preserve_data (void);
+extern int object_permanent_p (tree);
+extern int type_precision (tree);
+extern int simple_cst_equal (tree, tree);
+extern int type_list_equal (tree, tree);
+extern int chain_member (tree, tree);
+extern int chain_member_purpose (tree, tree);
+extern int chain_member_value (tree, tree);
+extern tree listify (tree);
+extern tree type_hash_lookup (int, tree);
+extern void type_hash_add (int, tree);
+extern int type_hash_list (tree);
+extern int simple_cst_list_equal (tree, tree);
+extern void debug_obstack (char *);
+extern void rtl_in_current_obstack (void);
+extern void rtl_in_saveable_obstack (void);
+extern void init_tree_codes (void);
+extern void dump_tree_statistics (void);
+extern void print_obstack_statistics (char *, struct obstack *);
#ifdef BUFSIZ
-extern void print_obstack_name PROTO ((char *, FILE *, char *));
+extern void print_obstack_name (char *, FILE *, char *);
#endif
-extern void expand_function_end PROTO ((char *, int, int));
-extern void expand_function_start PROTO ((tree, int));
-extern int real_onep PROTO ((tree));
-extern int real_twop PROTO ((tree));
-extern void start_identifier_warnings PROTO ((void));
-extern void gcc_obstack_init PROTO ((struct obstack *));
-extern void init_obstacks PROTO ((void));
-extern void obfree PROTO ((char *));
-extern tree tree_check PROTO ((tree, enum tree_code, char*, int, int));
-extern tree tree_class_check PROTO ((tree, char, char*, int, int));
-extern tree expr_check PROTO ((tree, int, char*, int, int));
+extern void expand_function_end (char *, int, int);
+extern void expand_function_start (tree, int);
+extern int real_onep (tree);
+extern int real_twop (tree);
+extern void start_identifier_warnings (void);
+extern void gcc_obstack_init (struct obstack *);
+extern void init_obstacks (void);
+extern void obfree (char *);
+extern tree tree_check (tree, enum tree_code, char*, int, int);
+extern tree tree_class_check (tree, char, char*, int, int);
+extern tree expr_check (tree, int, char*, int, int);
/* In function.c */
-extern void setjmp_protect_args PROTO ((void));
-extern void setjmp_protect PROTO ((tree));
-extern void expand_main_function PROTO ((void));
-extern void mark_varargs PROTO ((void));
-extern void init_function_start PROTO ((tree, char *, int));
-extern void assign_parms PROTO ((tree, int));
-extern void put_var_into_stack PROTO ((tree));
-extern void uninitialized_vars_warning PROTO ((tree));
-extern void setjmp_args_warning PROTO ((void));
-extern void mark_all_temps_used PROTO ((void));
-extern void init_temp_slots PROTO ((void));
-extern void combine_temp_slots PROTO ((void));
-extern void free_temp_slots PROTO ((void));
-extern void pop_temp_slots PROTO ((void));
-extern void push_temp_slots PROTO ((void));
-extern void preserve_temp_slots PROTO ((struct rtx_def *));
-extern int aggregate_value_p PROTO ((tree));
-extern tree reorder_blocks PROTO ((tree *, tree,
- struct rtx_def *));
-extern void free_temps_for_rtl_expr PROTO ((tree));
-extern void instantiate_virtual_regs PROTO ((tree, struct rtx_def *));
-extern int max_parm_reg_num PROTO ((void));
-extern void push_function_context PROTO ((void));
-extern void pop_function_context PROTO ((void));
-extern void push_function_context_to PROTO ((tree));
-extern void pop_function_context_from PROTO ((tree));
+extern void setjmp_protect_args (void);
+extern void setjmp_protect (tree);
+extern void expand_main_function (void);
+extern void mark_varargs (void);
+extern void init_function_start (tree, char *, int);
+extern void assign_parms (tree, int);
+extern void put_var_into_stack (tree);
+extern void uninitialized_vars_warning (tree);
+extern void setjmp_args_warning (void);
+extern void mark_all_temps_used (void);
+extern void init_temp_slots (void);
+extern void combine_temp_slots (void);
+extern void free_temp_slots (void);
+extern void pop_temp_slots (void);
+extern void push_temp_slots (void);
+extern void preserve_temp_slots (struct rtx_def *);
+extern int aggregate_value_p (tree);
+extern tree reorder_blocks (tree *, tree,
+ struct rtx_def *);
+extern void free_temps_for_rtl_expr (tree);
+extern void instantiate_virtual_regs (tree, struct rtx_def *);
+extern int max_parm_reg_num (void);
+extern void push_function_context (void);
+extern void pop_function_context (void);
+extern void push_function_context_to (tree);
+extern void pop_function_context_from (tree);
/* In print-rtl.c */
#ifdef BUFSIZ
-extern void print_rtl PROTO ((FILE *, struct rtx_def *));
+extern void print_rtl (FILE *, struct rtx_def *);
#endif
/* In print-tree.c */
-extern void debug_tree PROTO ((tree));
+extern void debug_tree (tree);
#ifdef BUFSIZ
-extern void print_node PROTO ((FILE *, char *, tree, int));
-extern void print_node_brief PROTO ((FILE *, char *, tree, int));
-extern void indent_to PROTO ((FILE *, int));
+extern void print_node (FILE *, char *, tree, int);
+extern void print_node_brief (FILE *, char *, tree, int);
+extern void indent_to (FILE *, int);
#endif
/* In expr.c */
-extern void emit_queue PROTO ((void));
-extern int apply_args_register_offset PROTO ((int));
+extern void emit_queue (void);
+extern int apply_args_register_offset (int);
extern struct rtx_def *expand_builtin_return_addr
- PROTO ((enum built_in_function, int, struct rtx_def *));
-extern void do_pending_stack_adjust PROTO ((void));
-extern struct rtx_def *expand_assignment PROTO ((tree, tree, int, int));
-extern struct rtx_def *store_expr PROTO ((tree, struct rtx_def *,
- int));
-extern void check_max_integer_computation_mode PROTO ((tree));
+ (enum built_in_function, int, struct rtx_def *);
+extern void do_pending_stack_adjust (void);
+extern struct rtx_def *expand_assignment (tree, tree, int, int);
+extern struct rtx_def *store_expr (tree, struct rtx_def *,
+ int);
+extern void check_max_integer_computation_mode (tree);
/* In emit-rtl.c */
-extern void start_sequence_for_rtl_expr PROTO ((tree));
-extern struct rtx_def *emit_line_note_after PROTO ((char *, int,
- struct rtx_def *));
-extern struct rtx_def *emit_line_note PROTO ((char *, int));
-extern struct rtx_def *emit_line_note_force PROTO ((char *, int));
+extern void start_sequence_for_rtl_expr (tree);
+extern struct rtx_def *emit_line_note_after (char *, int,
+ struct rtx_def *);
+extern struct rtx_def *emit_line_note (char *, int);
+extern struct rtx_def *emit_line_note_force (char *, int);
/* In c-typeck.c */
-extern int mark_addressable PROTO ((tree));
-extern void incomplete_type_error PROTO ((tree, tree));
+extern int mark_addressable (tree);
+extern void incomplete_type_error (tree, tree);
/* In c-common.c */
-extern tree truthvalue_conversion PROTO ((tree));
-extern int min_precision PROTO ((tree, int));
-extern void split_specs_attrs PROTO ((tree, tree *, tree *));
+extern tree truthvalue_conversion (tree);
+extern int min_precision (tree, int);
+extern void split_specs_attrs (tree, tree *, tree *);
/* In c-decl.c */
#ifdef BUFSIZ
-extern void print_lang_decl PROTO ((FILE *, tree, int));
-extern void print_lang_type PROTO ((FILE *, tree, int));
-extern void print_lang_identifier PROTO ((FILE *, tree, int));
+extern void print_lang_decl (FILE *, tree, int);
+extern void print_lang_type (FILE *, tree, int);
+extern void print_lang_identifier (FILE *, tree, int);
#endif
-extern int global_bindings_p PROTO ((void));
-extern void insert_block PROTO ((tree));
+extern int global_bindings_p (void);
+extern void insert_block (tree);
/* In integrate.c */
-extern void save_for_inline_nocopy PROTO ((tree));
-extern void save_for_inline_copying PROTO ((tree));
-extern void set_decl_abstract_flags PROTO ((tree, int));
-extern void output_inline_function PROTO ((tree));
+extern void save_for_inline_nocopy (tree);
+extern void save_for_inline_copying (tree);
+extern void set_decl_abstract_flags (tree, int);
+extern void output_inline_function (tree);
/* In c-lex.c */
-extern void set_yydebug PROTO ((int));
+extern void set_yydebug (int);
/* In stor-layout.c */
-extern void fixup_signed_type PROTO ((tree));
+extern void fixup_signed_type (tree);
/* varasm.c */
-extern void make_decl_rtl PROTO ((tree, char *, int));
-extern void make_decl_one_only PROTO ((tree));
-extern int supports_one_only PROTO ((void));
-extern void variable_section PROTO ((tree, int));
+extern void make_decl_rtl (tree, char *, int);
+extern void make_decl_one_only (tree);
+extern int supports_one_only (void);
+extern void variable_section (tree, int);
/* In fold-const.c */
-extern int div_and_round_double PROTO ((enum tree_code, int,
+extern int div_and_round_double (enum tree_code, int,
HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT *,
HOST_WIDE_INT *,
HOST_WIDE_INT *,
- HOST_WIDE_INT *));
+ HOST_WIDE_INT *);
/* In stmt.c */
-extern void emit_nop PROTO ((void));
-extern void expand_computed_goto PROTO ((tree));
-extern struct rtx_def *label_rtx PROTO ((tree));
-extern void expand_asm_operands PROTO ((tree, tree, tree, tree, int,
- char *, int));
-extern int any_pending_cleanups PROTO ((int));
-extern void init_stmt PROTO ((void));
-extern void init_stmt_for_function PROTO ((void));
-extern void remember_end_note PROTO ((tree));
-extern int drop_through_at_end_p PROTO ((void));
-extern void expand_start_target_temps PROTO ((void));
-extern void expand_end_target_temps PROTO ((void));
-extern void expand_elseif PROTO ((tree));
-extern void expand_decl PROTO ((tree));
-extern int expand_decl_cleanup PROTO ((tree, tree));
-extern void expand_anon_union_decl PROTO ((tree, tree, tree));
-extern void move_cleanups_up PROTO ((void));
-extern void expand_start_case_dummy PROTO ((void));
-extern void expand_end_case_dummy PROTO ((void));
-extern tree case_index_expr_type PROTO ((void));
-extern HOST_WIDE_INT all_cases_count PROTO ((tree, int *));
-extern void check_for_full_enumeration_handling PROTO ((tree));
-extern void declare_nonlocal_label PROTO ((tree));
+extern void emit_nop (void);
+extern void expand_computed_goto (tree);
+extern struct rtx_def *label_rtx (tree);
+extern void expand_asm_operands (tree, tree, tree, tree, int,
+ char *, int);
+extern int any_pending_cleanups (int);
+extern void init_stmt (void);
+extern void init_stmt_for_function (void);
+extern void remember_end_note (tree);
+extern int drop_through_at_end_p (void);
+extern void expand_start_target_temps (void);
+extern void expand_end_target_temps (void);
+extern void expand_elseif (tree);
+extern void expand_decl (tree);
+extern int expand_decl_cleanup (tree, tree);
+extern void expand_anon_union_decl (tree, tree, tree);
+extern void move_cleanups_up (void);
+extern void expand_start_case_dummy (void);
+extern void expand_end_case_dummy (void);
+extern tree case_index_expr_type (void);
+extern HOST_WIDE_INT all_cases_count (tree, int *);
+extern void check_for_full_enumeration_handling (tree);
+extern void declare_nonlocal_label (tree);
/* If KIND=='I', return a suitable global initializer (constructor) name.
If KIND=='D', return a suitable global clean-up (destructor) name. */
-extern tree get_file_function_name PROTO((int));
+extern tree get_file_function_name (int);
/* Interface of the DWARF2 unwind info support. */
/* Decide whether we want to emit frame unwind information for the current
translation unit. */
-extern int dwarf2out_do_frame PROTO((void));
+extern int dwarf2out_do_frame (void);
/* Generate a new label for the CFI info to refer to. */
-extern char *dwarf2out_cfi_label PROTO((void));
+extern char *dwarf2out_cfi_label (void);
/* Entry point to update the canonical frame address (CFA). */
-extern void dwarf2out_def_cfa PROTO((char *, unsigned, long));
+extern void dwarf2out_def_cfa (char *, unsigned, long);
/* Add the CFI for saving a register window. */
-extern void dwarf2out_window_save PROTO((char *));
+extern void dwarf2out_window_save (char *);
/* Add a CFI to update the running total of the size of arguments pushed
onto the stack. */
-extern void dwarf2out_args_size PROTO((char *, long));
+extern void dwarf2out_args_size (char *, long);
/* Entry point for saving a register to the stack. */
-extern void dwarf2out_reg_save PROTO((char *, unsigned, long));
+extern void dwarf2out_reg_save (char *, unsigned, long);
/* Entry point for saving the return address in the stack. */
-extern void dwarf2out_return_save PROTO((char *, long));
+extern void dwarf2out_return_save (char *, long);
/* Entry point for saving the return address in a register. */
-extern void dwarf2out_return_reg PROTO((char *, unsigned));
+extern void dwarf2out_return_reg (char *, unsigned);
/* Output a marker (i.e. a label) for the beginning of a function, before
the prologue. */
-extern void dwarf2out_begin_prologue PROTO((void));
+extern void dwarf2out_begin_prologue (void);
/* Output a marker (i.e. a label) for the absolute end of the generated
code for a function definition. */
-extern void dwarf2out_end_epilogue PROTO((void));
+extern void dwarf2out_end_epilogue (void);
#endif /* _TREE_H */
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 32d1c13..163e30d 100755
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -192,21 +192,21 @@ static int *splittable_regs_updates;
/* Forward declarations. */
-static void init_reg_map PROTO((struct inline_remap *, int));
-static rtx calculate_giv_inc PROTO((rtx, rtx, int));
-static rtx initial_reg_note_copy PROTO((rtx, struct inline_remap *));
-static void final_reg_note_copy PROTO((rtx, struct inline_remap *));
-static void copy_loop_body PROTO((rtx, rtx, struct inline_remap *, rtx, int,
- enum unroll_types, rtx, rtx, rtx, rtx));
-static void iteration_info PROTO((rtx, rtx *, rtx *, rtx, rtx));
-static int find_splittable_regs PROTO((enum unroll_types, rtx, rtx, rtx, int,
- unsigned HOST_WIDE_INT));
-static int find_splittable_givs PROTO((struct iv_class *, enum unroll_types,
- rtx, rtx, rtx, int));
-static int reg_dead_after_loop PROTO((rtx, rtx, rtx));
-static rtx fold_rtx_mult_add PROTO((rtx, rtx, rtx, enum machine_mode));
-static int verify_addresses PROTO((struct induction *, rtx, int));
-static rtx remap_split_bivs PROTO((rtx));
+static void init_reg_map (struct inline_remap *, int);
+static rtx calculate_giv_inc (rtx, rtx, int);
+static rtx initial_reg_note_copy (rtx, struct inline_remap *);
+static void final_reg_note_copy (rtx, struct inline_remap *);
+static void copy_loop_body (rtx, rtx, struct inline_remap *, rtx, int,
+ enum unroll_types, rtx, rtx, rtx, rtx);
+static void iteration_info (rtx, rtx *, rtx *, rtx, rtx);
+static int find_splittable_regs (enum unroll_types, rtx, rtx, rtx, int,
+ unsigned HOST_WIDE_INT);
+static int find_splittable_givs (struct iv_class *, enum unroll_types,
+ rtx, rtx, rtx, int);
+static int reg_dead_after_loop (rtx, rtx, rtx);
+static rtx fold_rtx_mult_add (rtx, rtx, rtx, enum machine_mode);
+static int verify_addresses (struct induction *, rtx, int);
+static rtx remap_split_bivs (rtx);
/* Try to unroll one loop and split induction variables in the loop.
diff --git a/gcc/varasm.c b/gcc/varasm.c
index e3f9b4a..bbc23e6 100755
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -120,36 +120,36 @@ struct constant_descriptor;
struct rtx_const;
struct pool_constant;
-static char *strip_reg_name PROTO((char *));
-static int contains_pointers_p PROTO((tree));
-static void decode_addr_const PROTO((tree, struct addr_const *));
-static int const_hash PROTO((tree));
-static int compare_constant PROTO((tree,
- struct constant_descriptor *));
-static char *compare_constant_1 PROTO((tree, char *));
-static struct constant_descriptor *record_constant PROTO((tree));
-static void record_constant_1 PROTO((tree));
-static tree copy_constant PROTO((tree));
-static void output_constant_def_contents PROTO((tree, int, int));
-static void decode_rtx_const PROTO((enum machine_mode, rtx,
- struct rtx_const *));
-static int const_hash_rtx PROTO((enum machine_mode, rtx));
-static int compare_constant_rtx PROTO((enum machine_mode, rtx,
- struct constant_descriptor *));
-static struct constant_descriptor *record_constant_rtx PROTO((enum machine_mode,
- rtx));
-static struct pool_constant *find_pool_constant PROTO((rtx));
-static void mark_constant_pool PROTO((void));
-static void mark_constants PROTO((rtx));
-static int output_addressed_constants PROTO((tree));
-static void output_after_function_constants PROTO((void));
-static void output_constructor PROTO((tree, int));
+static char *strip_reg_name (char *);
+static int contains_pointers_p (tree);
+static void decode_addr_const (tree, struct addr_const *);
+static int const_hash (tree);
+static int compare_constant (tree,
+ struct constant_descriptor *);
+static char *compare_constant_1 (tree, char *);
+static struct constant_descriptor *record_constant (tree);
+static void record_constant_1 (tree);
+static tree copy_constant (tree);
+static void output_constant_def_contents (tree, int, int);
+static void decode_rtx_const (enum machine_mode, rtx,
+ struct rtx_const *);
+static int const_hash_rtx (enum machine_mode, rtx);
+static int compare_constant_rtx (enum machine_mode, rtx,
+ struct constant_descriptor *);
+static struct constant_descriptor *record_constant_rtx (enum machine_mode,
+ rtx);
+static struct pool_constant *find_pool_constant (rtx);
+static void mark_constant_pool (void);
+static void mark_constants (rtx);
+static int output_addressed_constants (tree);
+static void output_after_function_constants (void);
+static void output_constructor (tree, int);
#ifdef ASM_OUTPUT_BSS
-static void asm_output_bss PROTO((FILE *, tree, char *, int, int));
+static void asm_output_bss (FILE *, tree, char *, int, int);
#endif
#ifdef BSS_SECTION_ASM_OP
#ifdef ASM_OUTPUT_ALIGNED_BSS
-static void asm_output_aligned_bss PROTO((FILE *, tree, char *, int, int));
+static void asm_output_aligned_bss (FILE *, tree, char *, int, int);
#endif
#endif /* BSS_SECTION_ASM_OP */
diff --git a/gcc/varray.h b/gcc/varray.h
index bf744fc..d540345 100755
--- a/gcc/varray.h
+++ b/gcc/varray.h
@@ -62,7 +62,7 @@ typedef struct varray_head_tag {
/* Allocate a virtual array with NUM elements, each of which is SIZE bytes
long, named NAME. Array elements are zeroed. */
-extern varray_type varray_init PROTO ((size_t, size_t, const char *));
+extern varray_type varray_init (size_t, size_t, const char *);
#define VARRAY_CHAR_INIT(va, num, name) \
va = varray_init (num, sizeof (char), name)
@@ -124,7 +124,7 @@ extern varray_type varray_init PROTO ((size_t, size_t, const char *));
do { if (vp) { free (vp); vp = (varray_type)0; } } while (0)
/* Grow/shrink the virtual array VA to N elements. */
-extern varray_type varray_grow PROTO((varray_type, size_t));
+extern varray_type varray_grow (varray_type, size_t);
#define VARRAY_GROW(VA, N) ((VA) = varray_grow (VA, N))