⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 output.h

📁 GUN开源阻止下的编译器GCC
💻 H
📖 第 1 页 / 共 2 页
字号:
/* 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.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe 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 *));/* Called at end of source file,   to output the block-profiling table for this entire compilation.  */extern void end_final		PROTO((char *));/* Enable APP processing of subsequent output.   Used before the output from an `asm' statement.  */extern void app_enable		PROTO((void));/* Disable APP processing of subsequent output.   Called from varasm.c before most kinds of output.  */extern void app_disable		PROTO((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));/* Indicate that branch shortening hasn't yet been done.  */extern void init_insn_lengths	PROTO((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));/* 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));/* 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  STDIO_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));/* Output assembler code for some insns: all or part of a function.  */extern void final		STDIO_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));/* Replace a SUBREG with a REG or a MEM, based on the thing it is a   subreg of.  */extern rtx alter_subreg PROTO((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 *));/* Output a string of assembler code, substituting insn operands.   Defined in final.c.  */extern void output_asm_insn	PROTO((char *, rtx *));/* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol.  */extern void output_asm_label	PROTO((rtx));/* Print a memory reference operand for address X   using machine-dependent assembler syntax.  */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));/* Output a string of assembler code, substituting numbers, strings   and fixed syntactic prefixes.  */extern void asm_fprintf		STDIO_PROTO(PVPROTO((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 *));/* Return nonzero if this function has no function calls.  */extern int leaf_function_p	PROTO((void));/* Return 1 if this function uses only the registers that can be   safely renumbered.  */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));#endif/* Functions in varasm.c.  *//* Tell assembler to switch to text section.  */extern void text_section		PROTO((void));/* Tell assembler to switch to data section.  */extern void data_section		PROTO((void));/* Tell assembler to switch to read-only data section.  This is normally   the text section.  */extern void readonly_data_section	PROTO((void));/* Determine if we're in the text section. */extern int in_text_section		PROTO((void));#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 *));/* Tell assembler to switch to the section for function DECL.  */extern void function_section		PROTO((tree));/* 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));/* 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,   or -3 if ASMSPEC is `cc' and is not recognized,   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 *));/* 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   as the assembler symbol name.   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));/* Make the rtl for variable VAR be volatile.   Use this only for static variables.  */extern void make_var_volatile		PROTO((tree));/* Output alignment directive to align for constant expression EXP.  */extern void assemble_constant_align	PROTO((tree));/* Output a string of literal assembler code   for an `asm' keyword used between functions.  */extern void assemble_asm		PROTO((tree));/* Record an element in the table of global destructors.   How this is done depends on what sort of assembler and linker   are in use.   NAME should be the name of a global function to be called   at exit time.  This name is output using assemble_name.  */extern void assemble_destructor		PROTO((char *));/* Likewise for global constructors.  */extern void assemble_constructor	PROTO((char *));/* Likewise for entries we want to record for garbage collection.   Garbage collection is still under development.  */extern void assemble_gc_entry		PROTO((char *));/* 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 *));/* 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 *));/* Assemble code to leave SIZE bytes of zeros.  */extern void assemble_zeros		PROTO((int));/* Assemble an alignment pseudo op for an ALIGN-bit boundary.  */extern void assemble_align		PROTO((int));/* Assemble a string constant with the specified C string as contents.  */extern void assemble_string		PROTO((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.   TOP_LEVEL is nonzero if this variable has file scope.   AT_END is nonzero if this is the special handling, at end of compilation,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -