dbxout.c: Include obstack.h.
* dbxout.c: Include obstack.h. (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in default definition. (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR): Default-define here. (DBX_CONTIN_LENGTH): Move definition with others. (DBX_FINISH_STABS): New target macro. (current_sym_code, current_sym_value, current_sym_addr) (current_sym_nchars, CHARS, dbxout_continue) (print_int_cst_octal, print_octal, print_wide_int) (dbxout_prepare_symbol, dbxout_finish_symbol): Delete. (stabstr_ob, stabstr_last_contin_point): New variables. (NUMBER_FMT_LOOP): New improper macro. (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label) (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label) (dbxout_stab_value_internal_label_diff, dbxout_stabd) (dbxout_begin_stabn, dbxout_begin_stabn_sline) (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc) (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs) (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O) (stabstr_continue, DECL_ACCESSIBILITY_CHAR) New functions and/or proper function-like macros. (CONTIN): Use stabstr_continue, unconditionally. (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED. (dbxout_init): Initialize stabstr_ob. Check NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label if it was used. Use the new interfaces. (dbxout_source_file): Remove file argument; always write to asm_out_file. Use the new interfaces. (dbxout_type_method_1): Remove second argument which is always DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces. (dbxout_type_methods): Remove write-only variables. Use the new interfaces. (dbxout_parms): Refactor to remove code duplicated in each of several successive if-else-if blocks. Use the new interfaces. (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file) (dbxout_source_line, dbxout_finish, dbxout_type_index) (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name) (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location) (dbxout_symbol_name, dbxout_reg_parms, dbxout_args) (dbx_output_lbrac, dbx_output_rbrac, dbxout_block): Use the new interfaces. * Makefile.in (dbxout.o): Update dependencies. * defaults.h: Don't define ASM_STABD_OP. * output.h: Prototype new dbxout_* interfaces. * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL. * varasm.c: Don't define ASM_STABS_OP. (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor): Use the new dbxout.c interfaces. Call sorry if neither DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined. * xcoffout.h: Don't define ASM_STABS_OP. (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS. (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete. (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define. (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to do { ... } while (0) idiom. * config/alpha/alpha.c (num_source_filenames): Export. * config/alpha/alpha.h (num_source_filenames): Declare. (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. (SDB_OUTPUT_SOURCE_LINE): Add missing newline. * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. Always use .debugsym. Update commentary. * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. (SDB_OUTPUT_SOURCE_LINE): Add missing newline. * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC): Use new interfaces. * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h. (macho_branch_islands): Use new interfaces. * doc/tm.texi: Update. From-SVN: r89623
This commit is contained in:
parent
ab4375af84
commit
93a27b7bad
|
@ -1,3 +1,79 @@
|
|||
2004-10-26 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* dbxout.c: Include obstack.h.
|
||||
(ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
|
||||
default definition.
|
||||
(ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
|
||||
Default-define here.
|
||||
(DBX_CONTIN_LENGTH): Move definition with others.
|
||||
(DBX_FINISH_STABS): New target macro.
|
||||
(current_sym_code, current_sym_value, current_sym_addr)
|
||||
(current_sym_nchars, CHARS, dbxout_continue)
|
||||
(print_int_cst_octal, print_octal, print_wide_int)
|
||||
(dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
|
||||
(stabstr_ob, stabstr_last_contin_point): New variables.
|
||||
(NUMBER_FMT_LOOP): New improper macro.
|
||||
(dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
|
||||
(dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
|
||||
(dbxout_stab_value_internal_label_diff, dbxout_stabd)
|
||||
(dbxout_begin_stabn, dbxout_begin_stabn_sline)
|
||||
(dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
|
||||
(dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
|
||||
(stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
|
||||
(stabstr_continue, DECL_ACCESSIBILITY_CHAR)
|
||||
New functions and/or proper function-like macros.
|
||||
(CONTIN): Use stabstr_continue, unconditionally.
|
||||
(get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
|
||||
(dbxout_init): Initialize stabstr_ob. Check
|
||||
NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label
|
||||
if it was used. Use the new interfaces.
|
||||
(dbxout_source_file): Remove file argument; always write to
|
||||
asm_out_file. Use the new interfaces.
|
||||
(dbxout_type_method_1): Remove second argument which is always
|
||||
DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces.
|
||||
(dbxout_type_methods): Remove write-only variables. Use the
|
||||
new interfaces.
|
||||
(dbxout_parms): Refactor to remove code duplicated in each of
|
||||
several successive if-else-if blocks. Use the new interfaces.
|
||||
(dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
|
||||
(dbxout_source_line, dbxout_finish, dbxout_type_index)
|
||||
(dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
|
||||
(dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
|
||||
(dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
|
||||
(dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
|
||||
Use the new interfaces.
|
||||
* Makefile.in (dbxout.o): Update dependencies.
|
||||
|
||||
* defaults.h: Don't define ASM_STABD_OP.
|
||||
* output.h: Prototype new dbxout_* interfaces.
|
||||
* system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
|
||||
* varasm.c: Don't define ASM_STABS_OP.
|
||||
(default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
|
||||
Use the new dbxout.c interfaces. Call sorry if neither
|
||||
DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
|
||||
|
||||
* xcoffout.h: Don't define ASM_STABS_OP.
|
||||
(DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
|
||||
(DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
|
||||
(NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
|
||||
(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
|
||||
do { ... } while (0) idiom.
|
||||
|
||||
* config/alpha/alpha.c (num_source_filenames): Export.
|
||||
* config/alpha/alpha.h (num_source_filenames): Declare.
|
||||
(DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
|
||||
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
|
||||
* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
|
||||
Always use .debugsym. Update commentary.
|
||||
* config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
|
||||
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
|
||||
* config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
|
||||
Use new interfaces.
|
||||
* config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
|
||||
(macho_branch_islands): Use new interfaces.
|
||||
|
||||
* doc/tm.texi: Update.
|
||||
|
||||
2004-10-26 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* expr.c (emit_group_store): Do not treat floats as BLKmode.
|
||||
|
@ -37,8 +113,8 @@
|
|||
|
||||
2004-10-26 Fariborz Jahanian <fjahanian@apple.com>
|
||||
|
||||
* config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
|
||||
into rotlsi3.
|
||||
* config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
|
||||
into rotlsi3.
|
||||
|
||||
2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
|
@ -64,8 +140,8 @@
|
|||
|
||||
2004-10-26 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* expr.c (emit_group_load): Handle floats.
|
||||
(emit_group_store): Same.
|
||||
* expr.c (emit_group_load): Handle floats.
|
||||
(emit_group_store): Same.
|
||||
|
||||
2004-10-26 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
|
@ -147,8 +223,8 @@
|
|||
* gcc/Makefile.in: removed ggc for cgraphunit.
|
||||
* gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
|
||||
* gcc/cgraph.h: removed static var analysis data structures and calls.
|
||||
* gcc/cgraphunit.c:
|
||||
cgraph_mark_local_and_external_functions:changed name to
|
||||
* gcc/cgraphunit.c:
|
||||
cgraph_mark_local_and_external_functions:changed name to
|
||||
cgraph_mark_local_functions
|
||||
(print_order,convert_UIDs_in_bitmap,new_static_vars_info,
|
||||
cgraph_reset_static_var_maps,get_global_static_vars_info,
|
||||
|
@ -160,8 +236,8 @@
|
|||
removed.
|
||||
(cgraph_optimize,init_cgraph): removed calls to static vars analysis
|
||||
* gcc/tree-dfa.c find_referenced_vars: removed call to static vars
|
||||
analysis
|
||||
* gcc/tree-flow.h static_vars_info: removed
|
||||
analysis
|
||||
* gcc/tree-flow.h static_vars_info: removed
|
||||
* gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
|
||||
removed calls to static vars analysis.
|
||||
get_call_expr_operands: removed callee variable.
|
||||
|
@ -228,7 +304,7 @@
|
|||
|
||||
2004-10-25 David Billinghurst <David.Billinghurst@riotinto.com>
|
||||
|
||||
* config/mips/mips.c(mips_output_filename): Remove unused
|
||||
* config/mips/mips.c(mips_output_filename): Remove unused
|
||||
array ltext_label_name
|
||||
|
||||
2004-10-24 Geoffrey Keating <geoffk@geoffk.org>
|
||||
|
@ -294,7 +370,7 @@
|
|||
|
||||
2004-10-22 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
|
||||
* config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
|
||||
saves.
|
||||
|
||||
2004-10-22 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
|
|
@ -1883,7 +1883,7 @@ optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_
|
|||
dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
|
||||
$(FLAGS_H) $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) function.h langhooks.h \
|
||||
insn-config.h reload.h gstab.h xcoffout.h output.h dbxout.h toplev.h \
|
||||
$(GGC_H) gt-dbxout.h
|
||||
$(GGC_H) $(OBSTACK_H) gt-dbxout.h
|
||||
debug.o : debug.c debug.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
|
||||
sdbout.o : sdbout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) debug.h \
|
||||
$(TREE_H) $(GGC_H) varray.h $(RTL_H) $(REGS_H) $(FLAGS_H) insn-config.h \
|
||||
|
|
|
@ -6548,7 +6548,7 @@ alpha_expand_prologue (void)
|
|||
}
|
||||
|
||||
/* Count the number of .file directives, so that .loc is up to date. */
|
||||
static int num_source_filenames = 0;
|
||||
int num_source_filenames = 0;
|
||||
|
||||
/* Output the textual info surrounding the prologue. */
|
||||
|
||||
|
|
|
@ -1662,13 +1662,15 @@ extern long alpha_auto_offset;
|
|||
#define DEBUGGER_ARG_OFFSET(OFFSET, X) (OFFSET + alpha_arg_offset)
|
||||
|
||||
/* mips-tfile doesn't understand .stabd directives. */
|
||||
#define DBX_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
fprintf (STREAM, "$LM%d:\n%s%d,0,%d,$LM%d\n", COUNTER, ASM_STABN_OP, \
|
||||
N_SLINE, LINE, COUNTER)
|
||||
#define DBX_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) do { \
|
||||
dbxout_begin_stabn_sline (LINE); \
|
||||
dbxout_stab_value_internal_label ("LM", &COUNTER); \
|
||||
} while (0)
|
||||
|
||||
/* We want to use MIPS-style .loc directives for SDB line numbers. */
|
||||
extern int num_source_filenames;
|
||||
#define SDB_OUTPUT_SOURCE_LINE(STREAM, LINE) \
|
||||
fprintf (STREAM, "\t.loc\t%d %d", num_source_filenames, LINE)
|
||||
fprintf (STREAM, "\t.loc\t%d %d\n", num_source_filenames, LINE)
|
||||
|
||||
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
|
||||
alpha_output_filename (STREAM, NAME)
|
||||
|
|
|
@ -1517,25 +1517,23 @@ L2: .word STATIC
|
|||
/* Globalizing directive for a label. */
|
||||
#define GLOBAL_ASM_OP "\t.global\t"
|
||||
|
||||
/* If -Os, don't force line number labels to begin at the beginning of
|
||||
the word; we still want the assembler to try to put things in parallel,
|
||||
should that be possible.
|
||||
For m32r/d, instructions are never in parallel (other than with a nop)
|
||||
and the simulator and stub both handle a breakpoint in the middle of
|
||||
a word so don't ever force line number labels to begin at the beginning
|
||||
of a word. */
|
||||
/* We do not use DBX_LINES_FUNCTION_RELATIVE or
|
||||
dbxout_stab_value_internal_label_diff here because
|
||||
we need to use .debugsym for the line label. */
|
||||
|
||||
#define DBX_OUTPUT_SOURCE_LINE(file, line, counter) \
|
||||
do \
|
||||
{ \
|
||||
fprintf (file, ".stabn 68,0,%d,.LM%d-", \
|
||||
line, counter); \
|
||||
assemble_name \
|
||||
(file, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
|
||||
fprintf (file, (optimize_size || TARGET_M32R) \
|
||||
? "\n\t.debugsym .LM%d\n" \
|
||||
: "\n.LM%d:\n", \
|
||||
counter); \
|
||||
char label[64]; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (label, "LM", counter); \
|
||||
\
|
||||
dbxout_begin_stabn_sline (line); \
|
||||
assemble_name (file, label); \
|
||||
putc ('-', file); \
|
||||
assemble_name (file, begin_label); \
|
||||
fputs ("\n\t.debugsym ", file); \
|
||||
assemble_name (file, label); \
|
||||
putc ('\n', file); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
|
|
|
@ -2791,14 +2791,14 @@ while (0)
|
|||
mips_output_filename (STREAM, NAME)
|
||||
|
||||
/* mips-tfile does not understand .stabd directives. */
|
||||
#define DBX_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
fprintf (STREAM, "%sLM%d:\n\t.stabn\t%d,0,%d,%sLM%d\n", \
|
||||
LOCAL_LABEL_PREFIX, COUNTER, N_SLINE, LINE, \
|
||||
LOCAL_LABEL_PREFIX, COUNTER)
|
||||
#define DBX_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) do { \
|
||||
dbxout_begin_stabn_sline (LINE); \
|
||||
dbxout_stab_value_internal_label ("LM", &COUNTER); \
|
||||
} while (0)
|
||||
|
||||
/* Use .loc directives for SDB line numbers. */
|
||||
#define SDB_OUTPUT_SOURCE_LINE(STREAM, LINE) \
|
||||
fprintf (STREAM, "\t.loc\t%d %d", num_source_filenames, LINE)
|
||||
fprintf (STREAM, "\t.loc\t%d %d\n", num_source_filenames, LINE)
|
||||
|
||||
/* The MIPS implementation uses some labels for its own purpose. The
|
||||
following lists what labels are created, and are all formed by the
|
||||
|
|
|
@ -482,30 +482,34 @@ extern int dot_symbols;
|
|||
&& GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \
|
||||
&& BITS_PER_WORD == HOST_BITS_PER_INT)))))
|
||||
|
||||
/* This ABI cannot use DBX_LINES_FUNCTION_RELATIVE, because we must
|
||||
use the function code label, not the function descriptor. */
|
||||
/* This ABI cannot use DBX_LINES_FUNCTION_RELATIVE, nor can it use
|
||||
dbxout_stab_value_internal_label_diff, because we must
|
||||
use the function code label, not the function descriptor label. */
|
||||
#define DBX_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
do \
|
||||
{ \
|
||||
char temp[256]; \
|
||||
const char *s; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (temp, "LM", COUNTER); \
|
||||
fprintf (FILE, "\t.stabn 68,0,%d,", LINE); \
|
||||
dbxout_begin_stabn_sline (LINE); \
|
||||
assemble_name (FILE, temp); \
|
||||
putc ('-', FILE); \
|
||||
s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||||
rs6000_output_function_entry (FILE, s); \
|
||||
putc ('\n', FILE); \
|
||||
(*targetm.asm_out.internal_label) (FILE, "LM", COUNTER); \
|
||||
targetm.asm_out.internal_label (FILE, "LM", COUNTER); \
|
||||
COUNTER += 1; \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Similarly, we want the function code label here. */
|
||||
#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \
|
||||
/* Similarly, we want the function code label here. Cannot use
|
||||
dbxout_stab_value_label_diff, as we have to use
|
||||
rs6000_output_function_entry. FIXME. */
|
||||
#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \
|
||||
do \
|
||||
{ \
|
||||
const char *s; \
|
||||
fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, BRAC); \
|
||||
dbxout_begin_stabn (BRAC); \
|
||||
assemble_name (FILE, NAME); \
|
||||
putc ('-', FILE); \
|
||||
s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||||
|
@ -522,7 +526,7 @@ while (0)
|
|||
do \
|
||||
{ \
|
||||
const char *s; \
|
||||
fprintf (FILE, "%s\"\",%d,0,0,", ASM_STABS_OP, N_FUN); \
|
||||
dbxout_begin_empty_stabs (N_FUN); \
|
||||
assemble_name (FILE, LSCOPE); \
|
||||
putc ('-', FILE); \
|
||||
s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||||
|
|
|
@ -56,6 +56,9 @@
|
|||
#if TARGET_XCOFF
|
||||
#include "xcoffout.h" /* get declarations of xcoff_*_section_name */
|
||||
#endif
|
||||
#if TARGET_MACHO
|
||||
#include "gstab.h" /* for N_SLINE */
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_NO_PROTOTYPE
|
||||
#define TARGET_NO_PROTOTYPE 0
|
||||
|
@ -17033,8 +17036,7 @@ macho_branch_islands (void)
|
|||
strcat (tmp_buf, label);
|
||||
#if defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)
|
||||
if (write_symbols == DBX_DEBUG || write_symbols == XCOFF_DEBUG)
|
||||
fprintf (asm_out_file, "\t.stabd 68,0," HOST_WIDE_INT_PRINT_UNSIGNED "\n",
|
||||
BRANCH_ISLAND_LINE_NUMBER(branch_island));
|
||||
dbxout_stabd (N_SLINE, BRANCH_ISLAND_LINE_NUMBER (branch_island));
|
||||
#endif /* DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO */
|
||||
if (flag_pic)
|
||||
{
|
||||
|
@ -17071,8 +17073,7 @@ macho_branch_islands (void)
|
|||
output_asm_insn (tmp_buf, 0);
|
||||
#if defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)
|
||||
if (write_symbols == DBX_DEBUG || write_symbols == XCOFF_DEBUG)
|
||||
fprintf(asm_out_file, "\t.stabd 68,0," HOST_WIDE_INT_PRINT_UNSIGNED "\n",
|
||||
BRANCH_ISLAND_LINE_NUMBER (branch_island));
|
||||
dbxout_stabd (N_SLINE, BRANCH_ISLAND_LINE_NUMBER (branch_island));
|
||||
#endif /* DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO */
|
||||
}
|
||||
|
||||
|
|
1780
gcc/dbxout.c
1780
gcc/dbxout.c
File diff suppressed because it is too large
Load Diff
|
@ -73,10 +73,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef ASM_STABD_OP
|
||||
#define ASM_STABD_OP "\t.stabd\t"
|
||||
#endif
|
||||
|
||||
/* This is how to output an element of a case-vector that is absolute.
|
||||
Some targets don't use this, but we have to define it anyway. */
|
||||
|
||||
|
|
|
@ -8049,26 +8049,36 @@ This describes file names in DBX format.
|
|||
|
||||
@defmac DBX_OUTPUT_MAIN_SOURCE_FILENAME (@var{stream}, @var{name})
|
||||
A C statement to output DBX debugging information to the stdio stream
|
||||
@var{stream} which indicates that file @var{name} is the main source
|
||||
@var{stream}, which indicates that file @var{name} is the main source
|
||||
file---the file specified as the input file for compilation.
|
||||
This macro is called only once, at the beginning of compilation.
|
||||
|
||||
This macro need not be defined if the standard form of output
|
||||
for DBX debugging information is appropriate.
|
||||
|
||||
It may be necessary to refer to a label equal to the beginning of the
|
||||
text section. You can use @samp{assemble_name (stream, ltext_label_name)}
|
||||
to do so. If you do this, you must also set the variable
|
||||
@var{used_ltext_label_name} to @code{true}.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (@var{stream}, @var{name})
|
||||
A C statement to output DBX debugging information to the stdio stream
|
||||
@var{stream} which indicates that the current directory during
|
||||
compilation is named @var{name}.
|
||||
@defmac NO_DBX_MAIN_SOURCE_DIRECTORY
|
||||
Define this macro, with value 1, if GCC should not emit an indication
|
||||
of the current directory for compilation and current source language at
|
||||
the beginning of the file.
|
||||
@end defmac
|
||||
|
||||
This macro need not be defined if the standard form of output
|
||||
for DBX debugging information is appropriate.
|
||||
@defmac NO_DBX_GCC_MARKER
|
||||
Define this macro, with value 1, if GCC should not emit an indication
|
||||
that this object file was compiled by GCC@. The default is to emit
|
||||
an @code{N_OPT} stab at the beginning of every source file, with
|
||||
@samp{gcc2_compiled.} for the string and value 0.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_OUTPUT_MAIN_SOURCE_FILE_END (@var{stream}, @var{name})
|
||||
A C statement to output DBX debugging information at the end of
|
||||
compilation of the main source file @var{name}.
|
||||
compilation of the main source file @var{name}. Output should be
|
||||
written to the stdio stream @var{stream}.
|
||||
|
||||
If you don't define this macro, nothing special is output at the end
|
||||
of compilation, which is correct for most machines.
|
||||
|
|
20
gcc/output.h
20
gcc/output.h
|
@ -522,4 +522,24 @@ extern bool default_valid_pointer_mode (enum machine_mode);
|
|||
|
||||
extern int default_address_cost (rtx);
|
||||
|
||||
/* dbxout helper functions */
|
||||
#if defined DBX_DEBUGGING_INFO || defined XCOFF_DEBUGGING_INFO
|
||||
|
||||
extern void dbxout_int (int);
|
||||
extern void dbxout_stabd (int, int);
|
||||
extern void dbxout_begin_stabn (int);
|
||||
extern void dbxout_begin_stabn_sline (int);
|
||||
extern void dbxout_begin_empty_stabs (int);
|
||||
extern void dbxout_begin_simple_stabs (const char *, int);
|
||||
extern void dbxout_begin_simple_stabs_desc (const char *, int, int);
|
||||
|
||||
extern void dbxout_stab_value_zero (void);
|
||||
extern void dbxout_stab_value_label (const char *);
|
||||
extern void dbxout_stab_value_label_diff (const char *, const char *);
|
||||
extern void dbxout_stab_value_internal_label (const char *, int *);
|
||||
extern void dbxout_stab_value_internal_label_diff (const char *, int *,
|
||||
const char *);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* ! GCC_OUTPUT_H */
|
||||
|
|
|
@ -656,7 +656,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
|||
COLLECT_PARSE_FLAG DWARF2_GENERATE_TEXT_SECTION_LABEL WINNING_GDB \
|
||||
ASM_OUTPUT_FILENAME ASM_OUTPUT_SOURCE_LINE FILE_NAME_JOINER \
|
||||
GDB_INV_REF_REGPARM_STABS_LETTER DBX_MEMPARM_STABS_LETTER \
|
||||
PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END
|
||||
PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END \
|
||||
DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL
|
||||
|
||||
/* Hooks that are no longer used. */
|
||||
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
||||
|
|
22
gcc/varasm.c
22
gcc/varasm.c
|
@ -57,10 +57,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||
declarations for e.g. AIX 4.x. */
|
||||
#endif
|
||||
|
||||
#ifndef ASM_STABS_OP
|
||||
#define ASM_STABS_OP "\t.stabs\t"
|
||||
#endif
|
||||
|
||||
/* The (assembler) name of the first globally-visible object output. */
|
||||
const char *first_global_object_name;
|
||||
const char *weak_global_object_name;
|
||||
|
@ -1023,12 +1019,15 @@ assemble_asm (tree string)
|
|||
void
|
||||
default_stabs_asm_out_destructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
|
||||
{
|
||||
#if defined DBX_DEBUGGING_INFO || defined XCOFF_DEBUGGING_INFO
|
||||
/* Tell GNU LD that this is part of the static destructor set.
|
||||
This will work for any system that uses stabs, most usefully
|
||||
aout systems. */
|
||||
fprintf (asm_out_file, "%s\"___DTOR_LIST__\",22,0,0,", ASM_STABS_OP);
|
||||
assemble_name (asm_out_file, XSTR (symbol, 0));
|
||||
fputc ('\n', asm_out_file);
|
||||
dbxout_begin_simple_stabs ("___DTOR_LIST__", 22 /* N_SETT */);
|
||||
dbxout_stab_value_label (XSTR (symbol, 0));
|
||||
#else
|
||||
sorry ("global destructors not supported on this target");
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1080,12 +1079,15 @@ default_dtor_section_asm_out_destructor (rtx symbol,
|
|||
void
|
||||
default_stabs_asm_out_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
|
||||
{
|
||||
#if defined DBX_DEBUGGING_INFO || defined XCOFF_DEBUGGING_INFO
|
||||
/* Tell GNU LD that this is part of the static destructor set.
|
||||
This will work for any system that uses stabs, most usefully
|
||||
aout systems. */
|
||||
fprintf (asm_out_file, "%s\"___CTOR_LIST__\",22,0,0,", ASM_STABS_OP);
|
||||
assemble_name (asm_out_file, XSTR (symbol, 0));
|
||||
fputc ('\n', asm_out_file);
|
||||
dbxout_begin_simple_stabs ("___CTOR_LIST__", 22 /* N_SETT */);
|
||||
dbxout_stab_value_label (XSTR (symbol, 0));
|
||||
#else
|
||||
sorry ("global constructors not supported on this target");
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -21,8 +21,6 @@ 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. */
|
||||
|
||||
#define DBX_TYPE_DECL_STABS_CODE N_DECL
|
||||
|
@ -70,32 +68,35 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||
/* Define our own finish symbol function, since xcoff stabs have their
|
||||
own different format. */
|
||||
|
||||
#define DBX_FINISH_SYMBOL(ASMFILE,SYM) \
|
||||
{ \
|
||||
if (current_sym_addr && current_sym_code == N_FUN) \
|
||||
fprintf ((ASMFILE), "\",."); \
|
||||
else \
|
||||
fprintf ((ASMFILE), "\","); \
|
||||
/* If we are writing a function name, we must ensure that \
|
||||
there is no storage-class suffix on the name. */ \
|
||||
if (current_sym_addr && current_sym_code == N_FUN \
|
||||
&& GET_CODE (current_sym_addr) == SYMBOL_REF) \
|
||||
#define DBX_FINISH_STABS(CODE, LINE, ADDR, LABEL, NUMBER) do { \
|
||||
if (ADDR) \
|
||||
{ \
|
||||
const char *_p = XSTR (current_sym_addr, 0); \
|
||||
if (*_p == '*') \
|
||||
fprintf ((ASMFILE), "%s", _p+1); \
|
||||
/* If we are writing a function name, we must ensure that \
|
||||
there is no storage-class suffix on the name. */ \
|
||||
if (CODE == N_FUN && GET_CODE (ADDR) == SYMBOL_REF) \
|
||||
{ \
|
||||
const char *_p = XSTR (ADDR, 0); \
|
||||
if (*_p == '*') \
|
||||
fputs (_p+1, asm_out_file); \
|
||||
else \
|
||||
for (; *_p != '[' && *_p; _p++) \
|
||||
putc (*_p, asm_out_file); \
|
||||
} \
|
||||
else \
|
||||
for (; *_p != '[' && *_p; _p++) \
|
||||
fprintf ((ASMFILE), "%c", *_p); \
|
||||
{ \
|
||||
if (CODE == N_FUN) \
|
||||
putc ('.', asm_out_file); \
|
||||
output_addr_const (asm_out_file, ADDR); \
|
||||
} \
|
||||
} \
|
||||
else if (current_sym_addr) \
|
||||
output_addr_const ((ASMFILE), current_sym_addr); \
|
||||
else if (current_sym_code == N_GSYM) \
|
||||
assemble_name ((ASMFILE), XSTR (XEXP (DECL_RTL (SYM), 0), 0)); \
|
||||
else if (LABEL) \
|
||||
assemble_name (asm_out_file, LABEL); \
|
||||
else \
|
||||
fprintf ((ASMFILE), "%d", current_sym_value); \
|
||||
fprintf ((ASMFILE), ",%d,0\n", stab_to_sclass (current_sym_code)); \
|
||||
}
|
||||
dbxout_int (NUMBER); \
|
||||
putc (',', asm_out_file); \
|
||||
dbxout_int (stab_to_sclass (CODE)); \
|
||||
fputs (",0\n", asm_out_file); \
|
||||
} while (0)
|
||||
|
||||
/* These are IBM XCOFF extensions we need to reference in dbxout.c
|
||||
and xcoffout.c. */
|
||||
|
@ -128,7 +129,7 @@ extern char *xcoff_read_only_section_name;
|
|||
extern const char *xcoff_lastfile;
|
||||
|
||||
/* Don't write out path name for main source file. */
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_DIRECTORY(FILE,FILENAME)
|
||||
#define NO_DBX_MAIN_SOURCE_DIRECTORY 1
|
||||
|
||||
/* Write out main source file name using ".file" rather than ".stabs".
|
||||
We don't actually do this here, because the assembler gets confused if there
|
||||
|
@ -140,7 +141,7 @@ extern const char *xcoff_lastfile;
|
|||
|
||||
/* If we are still in an include file, its end must be marked. */
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
{ \
|
||||
do { \
|
||||
if (xcoff_current_include_file) \
|
||||
{ \
|
||||
fputs ("\t.ei\t", (FILE)); \
|
||||
|
@ -148,16 +149,10 @@ extern const char *xcoff_lastfile;
|
|||
putc ('\n', (FILE)); \
|
||||
xcoff_current_include_file = NULL; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
/* .stabx has the type in a different place. */
|
||||
#if 0 /* Do not emit any marker for XCOFF until assembler allows XFT_CV. */
|
||||
#define DBX_OUTPUT_GCC_MARKER(FILE) \
|
||||
fprintf ((FILE), "%s\"gcc2_compiled.\",0,%d,0\n", ASM_STABS_OP, \
|
||||
stab_to_sclass (N_GSYM))
|
||||
#else
|
||||
#define DBX_OUTPUT_GCC_MARKER(FILE)
|
||||
#endif
|
||||
/* Do not emit any marker for XCOFF until assembler allows XFT_CV. */
|
||||
#define NO_DBX_GCC_MARKER
|
||||
|
||||
/* Do not break .stabs pseudos into continuations. */
|
||||
#define DBX_CONTIN_LENGTH 0
|
||||
|
|
Loading…
Reference in New Issue