diff options
author | Richard Stallman <rms@gnu.org> | 1991-12-11 00:33:02 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1991-12-11 00:33:02 +0000 |
commit | 0c2768fc81bafc1c2d2e303109ab90aa718dd72b (patch) | |
tree | 95411506ac0eb188a9fac43fcdbac207960ce38f /gcc/output.h | |
parent | 6ea68a57a9a89ac0bf79497a0aef92071dad4732 (diff) | |
download | gcc-0c2768fc81bafc1c2d2e303109ab90aa718dd72b.tar.gz |
Initial revision
From-SVN: r113
Diffstat (limited to 'gcc/output.h')
-rw-r--r-- | gcc/output.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/gcc/output.h b/gcc/output.h new file mode 100644 index 00000000000..c75929c90f6 --- /dev/null +++ b/gcc/output.h @@ -0,0 +1,143 @@ +/* Declarations for insn-output.c. These functions are defined in recog.c, + final.c, and varasm.c. + Copyright (C) 1987-1991 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Output a string of assembler code, substituting insn operands. + Defined in final.c. */ +void output_asm_insn (); + +/* Output a string of assembler code, substituting numbers, strings + and fixed syntactic prefixes. */ +void asm_fprintf (); + +/* When outputting assembler code, indicates which alternative + of the constraints was actually satisfied. */ +extern int which_alternative; + +/* When outputting delayed branch sequences, this rtx holds the + sequence being output. It is null when no delayed branch + sequence is being output, so it can be used as a test in the + insn output code. + + This variable is defined in final.c. */ +extern rtx final_sequence; + +/* Number of bytes of args popped by function being compiled on its return. + Zero if no bytes are to be popped. + May affect compilation of return insn or of function epilogue. */ + +extern int current_function_pops_args; + +/* Nonzero if function being compiled needs to be given an address + where the value should be stored. */ + +extern int current_function_returns_struct; + +/* Nonzero if function being compiled needs to + return the address of where it has put a structure value. */ + +extern int current_function_returns_pcc_struct; + +/* Nonzero if function being compiled needs to be passed a static chain. */ + +extern int current_function_needs_context; + +/* Nonzero if function being compiled can call setjmp. */ + +extern int current_function_calls_setjmp; + +/* Nonzero if function being compiled can call longjmp. */ + +extern int current_function_calls_longjmp; + +/* Nonzero if function being compiled can call alloca, + either as a subroutine or builtin. */ + +extern int current_function_calls_alloca; + +/* Nonzero if function being compiled receives nonlocal gotos + from nested functions. */ + +extern int current_function_has_nonlocal_label; + +/* Nonzero if function being compiled contains nested functions. */ + +extern int current_function_contains_functions; + +/* Nonzero if the current function returns a pointer type */ + +extern int current_function_returns_pointer; + +/* If function's args have a fixed size, this is that size, in bytes. + Otherwise, it is -1. + May affect compilation of return insn or of function epilogue. */ + +extern int current_function_args_size; + +/* # bytes the prologue should push and pretend that the caller pushed them. + The prologue must do this, but only if parms can be passed in registers. */ + +extern int current_function_pretend_args_size; + +/* # of bytes of outgoing arguments required to be pushed by the prologue. + If this is non-zero, it means that ACCUMULATE_OUTGOING_ARGS was defined + and no stack adjusts will be done on function calls. */ + +extern int current_function_outgoing_args_size; + +/* Nonzero if current function uses varargs.h or equivalent. + Zero for functions that use stdarg.h. */ + +extern int current_function_varargs; + +/* Quantities of various kinds of registers + used for the current function's args. */ + +extern CUMULATIVE_ARGS current_function_args_info; + +/* Name of function now being compiled. */ + +extern char *current_function_name; + +/* If non-zero, an RTL expression for that location at which the current + function returns its result. Usually equal to + DECL_RTL (DECL_RESULT (current_function_decl)). */ + +extern rtx current_function_return_rtx; + +/* If some insns can be deferred to the delay slots of the epilogue, the + delay list for them is recorded here. */ + +extern rtx current_function_epilogue_delay_list; + +/* This is nonzero if the current function uses pic_offset_table_rtx. */ +extern int current_function_uses_pic_offset_table; + +/* The line number of the beginning of the current function. + sdbout.c needs this so that it can output relative linenumbers. */ + +#ifdef SDB_DEBUGGING_INFO /* Avoid undef sym in certain broken linkers. */ +extern int sdb_begin_function_line; +#endif + +/* File in which assembler code is being written. */ + +#ifdef BUFSIZ /* The hope is that any kind of stdio.h must define BUFSIZ. */ +extern FILE *asm_out_file; +#endif |