summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/output.h
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>1999-08-26 09:30:50 +0000
committerobrien <obrien@FreeBSD.org>1999-08-26 09:30:50 +0000
commit0bedf4fb30066e5e1d4342a1d3914dae7d37cba7 (patch)
tree68d8110b41afd0ebbf39167b1a4918eea667a7c5 /contrib/gcc/output.h
parentd4db5fb866b7ad5216abd5047774a3973b9901a9 (diff)
downloadFreeBSD-src-0bedf4fb30066e5e1d4342a1d3914dae7d37cba7.zip
FreeBSD-src-0bedf4fb30066e5e1d4342a1d3914dae7d37cba7.tar.gz
Virgin import of gcc from EGCS 1.1.2
Diffstat (limited to 'contrib/gcc/output.h')
-rw-r--r--contrib/gcc/output.h76
1 files changed, 58 insertions, 18 deletions
diff --git a/contrib/gcc/output.h b/contrib/gcc/output.h
index 7ef8b2c..e2c9f4d 100644
--- a/contrib/gcc/output.h
+++ b/contrib/gcc/output.h
@@ -1,6 +1,6 @@
/* Declarations for insn-output.c. These functions are defined in recog.c,
final.c, and varasm.c.
- Copyright (C) 1987, 1991, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1991, 1994, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -56,20 +56,20 @@ extern void shorten_branches PROTO((rtx));
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 STDIO_PROTO((rtx, FILE *, int));
+extern void final_start_function PROTO((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 STDIO_PROTO((rtx, FILE *, int));
+extern void final_end_function PROTO((rtx, FILE *, int));
/* Output assembler code for some insns: all or part of a function. */
-extern void final STDIO_PROTO((rtx, FILE *, int, int));
+extern void final PROTO((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 STDIO_PROTO((rtx, FILE *, int, int, int));
+extern rtx final_scan_insn PROTO((rtx, FILE *, int, int, int));
/* Replace a SUBREG with a REG or a MEM, based on the thing it is a
subreg of. */
@@ -83,6 +83,11 @@ extern void output_operand_lossage PROTO((char *));
Defined in final.c. */
extern void output_asm_insn PROTO((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));
+
/* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol. */
extern void output_asm_label PROTO((rtx));
@@ -93,12 +98,11 @@ extern void output_address PROTO((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 STDIO_PROTO((FILE *, rtx));
+extern void output_addr_const PROTO((FILE *, rtx));
/* Output a string of assembler code, substituting numbers, strings
and fixed syntactic prefixes. */
-extern void asm_fprintf STDIO_PROTO(PVPROTO((FILE *file,
- char *p, ...)));
+extern void asm_fprintf PROTO(PVPROTO((FILE *file, char *p, ...)));
/* Split up a CONST_DOUBLE or integer constant rtx into two rtx's for single
words. */
@@ -114,6 +118,16 @@ extern int only_leaf_regs_used PROTO((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));
+
+/* 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 *, int));
+extern void free_basic_block_vars PROTO((int));
+extern void set_block_num PROTO((rtx, int));
+extern void life_analysis PROTO((rtx, int, FILE *));
#endif
/* Functions in varasm.c. */
@@ -131,20 +145,35 @@ extern void readonly_data_section PROTO((void));
/* Determine if we're in the text section. */
extern int in_text_section PROTO((void));
+#ifdef EH_FRAME_SECTION_ASM_OP
+extern void eh_frame_section PROTO ((void));
+#endif
+
#ifdef TREE_CODE
/* Tell assembler to change to section NAME for DECL.
If DECL is NULL, just switch to section NAME.
- If NAME is NULL, get the name from DECL. */
-extern void named_section PROTO((tree, char *));
+ 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));
/* Tell assembler to switch to the section for function DECL. */
extern void function_section PROTO((tree));
+/* Tell assembler to switch to the section for the exception table. */
+extern void exception_section PROTO((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));
+/* Declare DECL to be a weak symbol. */
+extern void declare_weak PROTO ((tree));
+#endif /* TREE_CODE */
+
+/* Emit any pending weak declarations. */
+extern void weak_finish PROTO ((void));
+
/* Decode an `asm' spec for a declaration as a register name.
Return the register number, or -1 if nothing specified,
or -2 if the ASMSPEC is not `cc' or `memory' and is not recognized,
@@ -154,6 +183,7 @@ extern void make_function_rtl PROTO((tree));
Prefixes such as % are optional. */
extern int decode_reg_name PROTO((char *));
+#ifdef TREE_CODE
/* Create the DECL_RTL for a declaration for a static or external variable
or static or external function.
ASMSPEC, if not 0, is the string which the user specified
@@ -170,6 +200,8 @@ extern void make_var_volatile PROTO((tree));
/* Output alignment directive to align for constant expression EXP. */
extern void assemble_constant_align PROTO((tree));
+extern void assemble_alias PROTO((tree, tree));
+
/* Output a string of literal assembler code
for an `asm' keyword used between functions. */
extern void assemble_asm PROTO((tree));
@@ -218,17 +250,11 @@ extern void assemble_string PROTO((char *, int));
initial value (that will be done by the caller). */
extern void assemble_variable PROTO((tree, int, int, int));
-/* Output text storage for constructor CONSTR. */
-extern void bc_output_constructor PROTO((tree, int));
-
-/* Create storage for constructor CONSTR. */
-extern void bc_output_data_constructor PROTO((tree));
-
/* 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));
-#endif
+#endif /* TREE_CODE */
#ifdef RTX_CODE
/* Similar, for calling a library function FUN. */
@@ -246,7 +272,7 @@ extern void assemble_label PROTO((char *));
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 STDIO_PROTO((FILE *, char *));
+extern void assemble_name PROTO((FILE *, char *));
#ifdef RTX_CODE
/* Assemble the integer constant X into an object of SIZE bytes.
@@ -414,6 +440,9 @@ extern int current_function_uses_pic_offset_table;
/* This is nonzero if the current function uses the constant pool. */
extern int current_function_uses_const_pool;
+/* Language-specific reason why the current function cannot be made inline. */
+extern char *current_function_cannot_inline;
+
/* The line number of the beginning of the current function.
sdbout.c needs this so that it can output relative linenumbers. */
@@ -426,3 +455,14 @@ extern int sdb_begin_function_line;
#ifdef BUFSIZ
extern FILE *asm_out_file;
#endif
+
+/* Decide whether DECL needs to be in a writable section. RELOC is the same
+ as for SELECT_SECTION. */
+
+#define DECL_READONLY_SECTION(DECL,RELOC) \
+ (TREE_READONLY (DECL) \
+ && ! TREE_THIS_VOLATILE (DECL) \
+ && DECL_INITIAL (DECL) \
+ && (DECL_INITIAL (DECL) == error_mark_node \
+ || TREE_CONSTANT (DECL_INITIAL (DECL))) \
+ && ! (RELOC && (flag_pic || DECL_ONE_ONLY (DECL))))
OpenPOWER on IntegriCloud