X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fxcoffout.h;h=e1c3e89298ae25099b02fe64f184d2fca4ee8975;hb=ed684273f8bf24ead0ae7e3924d242ed5d6f7819;hp=36cef87b5d490ee6ee7ad739bc305dc4ebe38f19;hpb=c3418f425801179142b1f09b100989b6af411d88;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/xcoffout.h b/gcc/xcoffout.h index 36cef87b5d4..e1c3e89298a 100644 --- a/gcc/xcoffout.h +++ b/gcc/xcoffout.h @@ -1,7 +1,26 @@ /* XCOFF definitions. These are needed in dbxout.c, final.c, - and xcoffout.h. */ + and xcoffout.h. + Copyright (C) 1998, 2000 Free Software Foundation, Inc. -#define ASM_STABS_OP ".stabx" +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, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#define ASM_STABS_OP "\t.stabx\t" /* Tags and typedefs are C_DECL in XCOFF, not C_LSYM. */ @@ -58,8 +77,8 @@ #define DBX_STATIC_BLOCK_END(ASMFILE,CODE) \ { \ - if (current_sym_code == N_STSYM || current_sym_code == N_LCSYM) \ - fprintf (asmfile, "\t.es\n"); \ + if ((CODE) == N_STSYM || (CODE) == N_LCSYM) \ + fputs ("\t.es\n", (ASMFILE)); \ } /* We must use N_RPYSM instead of N_RSYM for register parameters. */ @@ -84,9 +103,12 @@ if (current_sym_addr && current_sym_code == N_FUN \ && GET_CODE (current_sym_addr) == SYMBOL_REF) \ { \ - char *_p; \ - for (_p = XSTR (current_sym_addr, 0); *_p != '[' && *_p; _p++) \ - fprintf (asmfile, "%c", *_p); \ + const char *_p = XSTR (current_sym_addr, 0); \ + if (*_p == '*') \ + fprintf (asmfile, "%s", _p+1); \ + else \ + for (; *_p != '[' && *_p; _p++) \ + fprintf (asmfile, "%c", *_p); \ } \ else if (current_sym_addr) \ output_addr_const (asmfile, current_sym_addr); \ @@ -112,21 +134,9 @@ #define N_RPSYM 0x8e #endif -/* The line number of the beginning of the current function. - xcoffout.c needs this so that it can output relative linenumbers. */ - -extern int xcoff_begin_function_line; - /* Name of the current include file. */ -extern char *xcoff_current_include_file; - -/* Name of the current function file. This is the file the `.bf' is - emitted from. In case a line is emitted from a different file, - (by including that file of course), then the line number will be - absolute. */ - -extern char *xcoff_current_function_file; +extern const char *xcoff_current_include_file; /* Names of bss and data sections. These should be unique names for each compilation unit. */ @@ -137,7 +147,7 @@ extern char *xcoff_read_only_section_name; /* Last source file name mentioned in a NOTE insn. */ -extern char *xcoff_lastfile; +extern const char *xcoff_lastfile; /* Don't write out path name for main source file. */ #define DBX_OUTPUT_MAIN_SOURCE_DIRECTORY(FILE,FILENAME) @@ -148,20 +158,24 @@ extern char *xcoff_lastfile; is already emitting a .file directory, so we don't output one here also. Initialize xcoff_lastfile. */ #define DBX_OUTPUT_MAIN_SOURCE_FILENAME(FILE,FILENAME) \ - xcoff_lastfile = input_file_name + xcoff_lastfile = (FILENAME) /* If we are still in an include file, its end must be marked. */ #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \ { \ if (xcoff_current_include_file) \ { \ - fprintf (FILE, "\t.ei\t"); \ - output_quoted_string (FILE, xcoff_current_include_file); \ - fprintf (FILE, "\n"); \ + fputs ("\t.ei\t", (FILE)); \ + output_quoted_string ((FILE), xcoff_current_include_file); \ + putc ('\n', (FILE)); \ xcoff_current_include_file = NULL; \ } \ } +/* .stabx has the type in a different place. */ +#define DBX_OUTPUT_GCC_MARKER(FILE) \ + fprintf ((FILE), "%s\"%s\",0,%d,0\n", ASM_STABS_OP, STABS_GCC_MARKER, N_OPT) + /* Do not break .stabs pseudos into continuations. */ #define DBX_CONTIN_LENGTH 0 @@ -175,3 +189,27 @@ extern char *xcoff_lastfile; can't find them. */ #define DEBUG_SYMS_TEXT + +/* Prototype functions in xcoffout.c. */ + +extern int stab_to_sclass PARAMS ((int)); +#ifdef BUFSIZ +extern void xcoffout_begin_function PARAMS ((FILE *, int)); +extern void xcoffout_begin_block PARAMS ((FILE *, int, int)); +extern void xcoffout_end_epilogue PARAMS ((FILE *)); +extern void xcoffout_end_function PARAMS ((FILE *, int)); +extern void xcoffout_end_block PARAMS ((FILE *, int, int)); +#endif /* BUFSIZ */ + +#ifdef TREE_CODE +extern void xcoff_output_standard_types PARAMS ((tree)); +#ifdef BUFSIZ +extern void xcoffout_declare_function PARAMS ((FILE *, tree, const char *)); +#endif /* BUFSIZ */ +#endif /* TREE_CODE */ + +#ifdef RTX_CODE +#ifdef BUFSIZ +extern void xcoffout_source_line PARAMS ((FILE *, const char *, rtx)); +#endif /* BUFSIZ */ +#endif /* RTX_CODE */