dbxout.c (asmfile): Delete.
* dbxout.c (asmfile): Delete. All uses changed to asm_out_file. (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE): Default to 0. (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined. When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit an internal label and an N_SLINE .stabn whose value is the difference between that label and the function entry label. (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined, but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a label and an N_SO stab with an empty string referring to it. (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE. (dbxout_type_methods, dbxout_symbol): Remove #if 0 block. (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this macro is never defined. * sdbout.c (sdbout_source_line_counter): Delete. (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition. (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes only two arguments. * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE. * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs. * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro definitions (identical to default). * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h: Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not DBX_OUTPUT_MAIN_SOURCE_FILE_END. * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h: Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE. * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno. * config/alpha/alpha.c: Move declaration of num_source_filenames up. (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE. (sym_lineno): Delete. (alpha_output_filename): Do not emit N_SOL stabs here. Remove now-unused variable. (alpha_output_lineno): Delete. * config/mips/mips-protos.h: Don't prototype mips_output_lineno. * config/mips/mips.c (mips_output_filename): Don't use ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here. (mips_output_lineno): Delete. (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE. * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE. * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME. * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE. * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE. * config/mmix/mmix.h: Likewise. * config/mmix/mmix.c (mmix_asm_output_source_line): Delete. * config/mmix/mmix-protos.h: Don't prototype it. * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE; no need to #undef ASM_OUTPUT_SOURCE_LINE. * config/arm/aout.h: Remove RISCiX-specific definition of DBX_OUTPUT_MAIN_SOURCE_FILENAME. * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE. * config/rs6000/rs6000.h: (ASM_OUTPUT_SOURCE_LINE): Rename DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label. * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END. * doc/tm.texi: Update. From-SVN: r89357
This commit is contained in:
parent
310ff87213
commit
3e487b219e
147
gcc/ChangeLog
147
gcc/ChangeLog
@ -1,3 +1,68 @@
|
||||
2004-10-20 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* dbxout.c (asmfile): Delete. All uses changed to asm_out_file.
|
||||
(DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
|
||||
Default to 0.
|
||||
(dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
|
||||
When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
|
||||
an internal label and an N_SLINE .stabn whose value is the
|
||||
difference between that label and the function entry label.
|
||||
(dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
|
||||
but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
|
||||
label and an N_SO stab with an empty string referring to it.
|
||||
(dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
|
||||
of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
|
||||
(dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
|
||||
(dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
|
||||
macro is never defined.
|
||||
* sdbout.c (sdbout_source_line_counter): Delete.
|
||||
(PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition.
|
||||
(sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
|
||||
only two arguments.
|
||||
* xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
|
||||
|
||||
* config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
|
||||
* config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
|
||||
definitions (identical to default).
|
||||
* config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
|
||||
* config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
|
||||
Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
|
||||
DBX_OUTPUT_MAIN_SOURCE_FILE_END.
|
||||
* config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
|
||||
* config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
|
||||
Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
|
||||
* config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
|
||||
* config/alpha/alpha.c: Move declaration of num_source_filenames up.
|
||||
(alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
|
||||
(sym_lineno): Delete.
|
||||
(alpha_output_filename): Do not emit N_SOL stabs here. Remove
|
||||
now-unused variable.
|
||||
(alpha_output_lineno): Delete.
|
||||
* config/mips/mips-protos.h: Don't prototype mips_output_lineno.
|
||||
* config/mips/mips.c (mips_output_filename): Don't use
|
||||
ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
|
||||
(mips_output_lineno): Delete.
|
||||
(mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
|
||||
* config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
|
||||
SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
|
||||
* config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME.
|
||||
* config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
|
||||
* config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
|
||||
* config/mmix/mmix.h: Likewise.
|
||||
* config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
|
||||
* config/mmix/mmix-protos.h: Don't prototype it.
|
||||
* config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
|
||||
no need to #undef ASM_OUTPUT_SOURCE_LINE.
|
||||
* config/arm/aout.h: Remove RISCiX-specific definition of
|
||||
DBX_OUTPUT_MAIN_SOURCE_FILENAME.
|
||||
* config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
|
||||
ASM_OUTPUT_SOURCE_LINE.
|
||||
* config/rs6000/rs6000.h: (ASM_OUTPUT_SOURCE_LINE): Rename
|
||||
DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label.
|
||||
* config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
|
||||
|
||||
* doc/tm.texi: Update.
|
||||
|
||||
2004-10-20 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
|
||||
@ -141,7 +206,7 @@
|
||||
* c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
|
||||
|
||||
2004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
Roger Sayle <roger@eyesopen.com>
|
||||
Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
PR middle-end/17813
|
||||
* dojump.c (discard_pending_stack_adjust): New function.
|
||||
@ -154,7 +219,7 @@
|
||||
|
||||
2004-10-18 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* c-common.c (handle_mode_attribute): Allow scalar->vector
|
||||
* c-common.c (handle_mode_attribute): Allow scalar->vector
|
||||
type changes yet.
|
||||
|
||||
2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
|
||||
@ -303,7 +368,7 @@
|
||||
* params.def: Add parameter to restrict the number of expansions.
|
||||
* params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
|
||||
the number of expansions.
|
||||
* common.opt: (fvariable-expansion-in-unroller): New flag.
|
||||
* common.opt: (fvariable-expansion-in-unroller): New flag.
|
||||
* doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
|
||||
|
||||
2004-10-18 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
@ -333,9 +398,9 @@
|
||||
Revert:
|
||||
2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* c-typeck.c (default_function_array_conversion): Always create
|
||||
&a[0] for array types.
|
||||
(build_unary_op): Do not fold &a[x] into a + x.
|
||||
* c-typeck.c (default_function_array_conversion): Always create
|
||||
&a[0] for array types.
|
||||
(build_unary_op): Do not fold &a[x] into a + x.
|
||||
|
||||
2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
@ -534,7 +599,7 @@
|
||||
* tree.h (struct pointer_set_t): Declare as opaque type.
|
||||
(tree_walk): Last argument is pointer_set_t* now.
|
||||
* tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
|
||||
(walk_type_fields):
|
||||
(walk_type_fields):
|
||||
(walk_tree): Convert from htab_t to pointer_set_t for keeping
|
||||
track of which nodes have already been visited.
|
||||
(walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
|
||||
@ -550,7 +615,7 @@
|
||||
(tree-inline.o): Depends on pointer-set.h
|
||||
(tree-dfa.o): Likewise
|
||||
(cgraphunit.o): Likewise
|
||||
|
||||
|
||||
2004-10-14 Geoffrey Keating <geoffk@apple.com>
|
||||
|
||||
* config/rs6000/darwin.h (ASM_SPEC): Delete.
|
||||
@ -601,7 +666,7 @@
|
||||
PR 17635
|
||||
* tree-if-conv.c (process_phi_nodes): Process latch block.
|
||||
(combine_blocks): Process latch block and update loop structure.
|
||||
|
||||
|
||||
2004-10-14 Olga Golovanevsky <olga@il.ibm.com>
|
||||
|
||||
* tree-vectorizer.c (vect_generate_tmps_on_preheader):
|
||||
@ -621,7 +686,7 @@
|
||||
(tree_duplicate_loop_to_edge_cfg):
|
||||
(add_loop_guard):
|
||||
(vect_analyze_loop_with_symbolic_num_of_iters):
|
||||
(verify_loop_for_duplication):
|
||||
(verify_loop_for_duplication):
|
||||
(vect_gen_niters_for_prolog_loop):
|
||||
(vect_update_niters_after_peeling):
|
||||
(vect_update_inits_of_dr):
|
||||
@ -629,7 +694,7 @@
|
||||
(vect_build_loop_niters):
|
||||
(vect_do_peeling_for_alignment): New functions.
|
||||
(vect_transform_loop): Add unknown and known but indivisible loop
|
||||
bound support; add peeling for unalignment support.
|
||||
bound support; add peeling for unalignment support.
|
||||
(vect_analyze_loop_form): Support symbolic number of iterations.
|
||||
(vect_transform_loop_bound): New input parameter.
|
||||
(vect_get_loop_niters): Change input parameter type.
|
||||
@ -638,7 +703,7 @@
|
||||
(vectorize_loops): Add rewrite_into_loop_closed_ssa.
|
||||
(vect_analyze_data_refs_alignment): Allowed one unaligned
|
||||
store.
|
||||
* tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
|
||||
* tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
|
||||
to use tree.
|
||||
(LOOP_VINFO_INT_NITERS): New macro.
|
||||
(MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
|
||||
@ -738,18 +803,18 @@
|
||||
|
||||
2004-10-13 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR c/17384
|
||||
* c-common.c (handle_mode_attribute): Disallow mode changes that
|
||||
alter the CODE of the top-level type.
|
||||
|
||||
* crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit
|
||||
integer from internal limits macros.
|
||||
* config/i386/mm3dnow.h (__v2sf): Fix base type.
|
||||
PR c/17384
|
||||
* c-common.c (handle_mode_attribute): Disallow mode changes that
|
||||
alter the CODE of the top-level type.
|
||||
|
||||
* crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit
|
||||
integer from internal limits macros.
|
||||
* config/i386/mm3dnow.h (__v2sf): Fix base type.
|
||||
|
||||
2004-10-13 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR debug/13841
|
||||
* function.c (instantiate_decl): Recurse for CONCAT.
|
||||
|
||||
PR debug/13841
|
||||
* function.c (instantiate_decl): Recurse for CONCAT.
|
||||
|
||||
2004-10-13 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
@ -848,56 +913,56 @@
|
||||
|
||||
* Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
|
||||
* cfgloop.c (initialize_loops_parallel_p): New.
|
||||
(flow_loops_find): Initialize the parallel_p field to true for all
|
||||
(flow_loops_find): Initialize the parallel_p field to true for all
|
||||
the loops.
|
||||
* tree-ssa-loop-niter.c: Include "tree-data-ref.h".
|
||||
(estimate_numbers_of_iterations_loop): Infers the loop bounds from
|
||||
(estimate_numbers_of_iterations_loop): Infers the loop bounds from
|
||||
the size of the data accessed in the loop.
|
||||
(struct nb_iter_bound): Moved...
|
||||
(struct nb_iter_bound): Moved...
|
||||
* cfgloop.h (struct nb_iter_bound): ... here.
|
||||
(estimated_nb_iterations, parallel_p): New fields in struct loop.
|
||||
(record_estimate): Declare extern here.
|
||||
* tree-chrec.c: Fix comments.
|
||||
(nb_vars_in_chrec): New function.
|
||||
* tree-chrec.h (nb_vars_in_chrec): Declared here.
|
||||
* tree-data-ref.c: Don't include lambda.h, that is already included
|
||||
* tree-data-ref.c: Don't include lambda.h, that is already included
|
||||
in tree-data-ref.h.
|
||||
(tree_fold_divides_p): Don't check for integer_onep.
|
||||
(tree_fold_bezout): Removed.
|
||||
(gcd): New static duplicated function.
|
||||
(int_divides_p, dump_subscript): New.
|
||||
(dump_data_dependence_relation): Use dump_subscript.
|
||||
(dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
|
||||
(dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
|
||||
estimate_niter_from_size_of_data): New.
|
||||
(analyze_array_indexes, analyze_array): Call
|
||||
estimate_niter_from_size_of_data during the detection of array
|
||||
references. Pass in a pointer to the statement that contains the
|
||||
(analyze_array_indexes, analyze_array): Call
|
||||
estimate_niter_from_size_of_data during the detection of array
|
||||
references. Pass in a pointer to the statement that contains the
|
||||
array reference.
|
||||
(all_chrecs_equal_p): New.
|
||||
(compute_distance_vector): Renamed compute_subscript_distance.
|
||||
Deal with multivariate conflict functions.
|
||||
(initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
|
||||
(initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
|
||||
DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
|
||||
(non_affine_dependence_relation): New.
|
||||
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
|
||||
analyze_siv_subscript, analyze_miv_subscript,
|
||||
analyze_overlapping_iterations, subscript_dependence_tester):
|
||||
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
|
||||
analyze_siv_subscript, analyze_miv_subscript,
|
||||
analyze_overlapping_iterations, subscript_dependence_tester):
|
||||
Initialize and return last_conflicts function.
|
||||
(initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
|
||||
compute_overlap_steps_for_affine_1_2): New.
|
||||
(analyze_siv_subscript_affine_cst): Removed.
|
||||
(analyze_subscript_affine_affine): Disprove dependences based on the
|
||||
iteration domains. Solve the univariate dependence case as before,
|
||||
(analyze_subscript_affine_affine): Disprove dependences based on the
|
||||
iteration domains. Solve the univariate dependence case as before,
|
||||
but use lambda_matrix_right_hermite instead of tree_fold_bezout.
|
||||
Implement the multivariate case of 2 versus 1 variables.
|
||||
(build_classic_dist_vector, build_classic_dir_vector): Implement some
|
||||
(build_classic_dist_vector, build_classic_dir_vector): Implement some
|
||||
unhandled cases.
|
||||
(find_data_references_in_loop): Compute and initialize
|
||||
(find_data_references_in_loop): Compute and initialize
|
||||
loop->estimated_nb_iterations and loop->parallel_p.
|
||||
(analyze_all_data_dependences): Modify the debug dump order.
|
||||
* tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
|
||||
subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
|
||||
(SUB_LAST_CONFLICT, subscript->last_conflict,
|
||||
(SUB_LAST_CONFLICT, subscript->last_conflict,
|
||||
data_dependence_relation->affine_p, data_dependence_relation->size_vect,
|
||||
DDR_AFFINE_P, DDR_SIZE_VECT): New.
|
||||
(find_data_references_in_loop, initialize_data_dependence_relation,
|
||||
@ -912,7 +977,7 @@
|
||||
PR 17892
|
||||
* tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
|
||||
(simplify_rhs_and_lookup_avail_expr): Disallow associativity
|
||||
and constant folding of floating point MULT_EXPR/PLUS_EXPR
|
||||
and constant folding of floating point MULT_EXPR/PLUS_EXPR
|
||||
expressions.
|
||||
|
||||
2004-10-12 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
@ -1054,7 +1119,7 @@
|
||||
PR middle-end/17657
|
||||
* stmt.c (add_case_node): Add additional type argument. Declare
|
||||
as static to match prototype. Convert the upper and lower bounds
|
||||
to the specified index type. Optimize away case ranges/values
|
||||
to the specified index type. Optimize away case ranges/values
|
||||
that are outside the index type's bounds. Truncate case ranges
|
||||
that span the index type's bounds.
|
||||
(expand_case): Avoid unnessary computation and memory allocation
|
||||
|
@ -34,7 +34,6 @@ extern int alpha_using_fp (void);
|
||||
extern void alpha_expand_prologue (void);
|
||||
extern void alpha_expand_epilogue (void);
|
||||
extern void alpha_output_filename (FILE *, const char *);
|
||||
extern void alpha_output_lineno (FILE *, int);
|
||||
|
||||
extern bool alpha_const_ok_for_letter_p (HOST_WIDE_INT, int);
|
||||
extern bool alpha_const_double_ok_for_letter_p (rtx, int);
|
||||
|
@ -6547,6 +6547,9 @@ alpha_expand_prologue (void)
|
||||
emit_insn (gen_blockage ());
|
||||
}
|
||||
|
||||
/* Count the number of .file directives, so that .loc is up to date. */
|
||||
static int num_source_filenames = 0;
|
||||
|
||||
/* Output the textual info surrounding the prologue. */
|
||||
|
||||
void
|
||||
@ -6613,10 +6616,10 @@ alpha_start_function (FILE *file, const char *fnname,
|
||||
ASM_OUTPUT_SOURCE_FILENAME (file,
|
||||
DECL_SOURCE_FILE (current_function_decl));
|
||||
#endif
|
||||
#ifdef ASM_OUTPUT_SOURCE_LINE
|
||||
#ifdef SDB_OUTPUT_SOURCE_LINE
|
||||
if (debug_info_level != DINFO_LEVEL_TERSE)
|
||||
ASM_OUTPUT_SOURCE_LINE (file,
|
||||
DECL_SOURCE_LINE (current_function_decl), 0);
|
||||
SDB_OUTPUT_SOURCE_LINE (file,
|
||||
DECL_SOURCE_LINE (current_function_decl));
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -7149,14 +7152,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
|
||||
|
||||
int sdb_label_count = 0;
|
||||
|
||||
/* Next label # for each statement. */
|
||||
|
||||
static int sym_lineno = 0;
|
||||
|
||||
/* Count the number of .file directives, so that .loc is up to date. */
|
||||
|
||||
static int num_source_filenames = 0;
|
||||
|
||||
/* Name of the file containing the current function. */
|
||||
|
||||
static const char *current_function_file = "";
|
||||
@ -7172,7 +7167,6 @@ void
|
||||
alpha_output_filename (FILE *stream, const char *name)
|
||||
{
|
||||
static int first_time = TRUE;
|
||||
char ltext_label_name[100];
|
||||
|
||||
if (first_time)
|
||||
{
|
||||
@ -7187,12 +7181,8 @@ alpha_output_filename (FILE *stream, const char *name)
|
||||
}
|
||||
|
||||
else if (write_symbols == DBX_DEBUG)
|
||||
{
|
||||
ASM_GENERATE_INTERNAL_LABEL (ltext_label_name, "Ltext", 0);
|
||||
fprintf (stream, "%s", ASM_STABS_OP);
|
||||
output_quoted_string (stream, name);
|
||||
fprintf (stream, ",%d,0,0,%s\n", N_SOL, <ext_label_name[1]);
|
||||
}
|
||||
/* dbxout.c will emit an appropriate .stabs directive. */
|
||||
return;
|
||||
|
||||
else if (name != current_function_file
|
||||
&& strcmp (name, current_function_file) != 0)
|
||||
@ -7210,22 +7200,6 @@ alpha_output_filename (FILE *stream, const char *name)
|
||||
fprintf (stream, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* Emit a linenumber to a stream. */
|
||||
|
||||
void
|
||||
alpha_output_lineno (FILE *stream, int line)
|
||||
{
|
||||
if (write_symbols == DBX_DEBUG)
|
||||
{
|
||||
/* mips-tfile doesn't understand .stabd directives. */
|
||||
++sym_lineno;
|
||||
fprintf (stream, "$LM%d:\n%s%d,0,%d,$LM%d\n",
|
||||
sym_lineno, ASM_STABN_OP, N_SLINE, line, sym_lineno);
|
||||
}
|
||||
else
|
||||
fprintf (stream, "\n\t.loc\t%d %d\n", num_source_filenames, line);
|
||||
}
|
||||
|
||||
/* Structure to show the current status of registers and memory. */
|
||||
|
||||
|
@ -1661,9 +1661,14 @@ extern long alpha_auto_offset;
|
||||
((GET_CODE (X) == PLUS ? INTVAL (XEXP (X, 1)) : 0) + 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 ASM_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
alpha_output_lineno (STREAM, LINE)
|
||||
/* We want to use MIPS-style .loc directives for SDB line numbers. */
|
||||
#define SDB_OUTPUT_SOURCE_LINE(STREAM, LINE) \
|
||||
fprintf (STREAM, "\t.loc\t%d %d", num_source_filenames, LINE)
|
||||
|
||||
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
|
||||
alpha_output_filename (STREAM, NAME)
|
||||
|
@ -470,7 +470,7 @@ ssib_section (void) \
|
||||
#undef DWARF2_DEBUGGING_INFO
|
||||
#undef DWARF2_UNWIND_INFO
|
||||
#undef INCOMING_RETURN_ADDR_RTX
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
|
||||
/* We don't need a start file. */
|
||||
|
||||
|
@ -193,19 +193,6 @@
|
||||
#define DBX_CONTIN_LENGTH 0
|
||||
#endif
|
||||
|
||||
/* Output a source filename for the debugger. RISCiX dbx insists that the
|
||||
``desc'' field is set to compiler version number >= 315 (sic). */
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILENAME(STREAM, NAME) \
|
||||
do \
|
||||
{ \
|
||||
fprintf (STREAM, ".stabs "); \
|
||||
output_quoted_string (STREAM, NAME); \
|
||||
fprintf (STREAM, ",%d,0,315,%s\n", N_SO, <ext_label_name[1]); \
|
||||
text_section (); \
|
||||
(*targetm.asm_out.internal_label) (STREAM, "Ltext", 0); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Output a function label definition. */
|
||||
#ifndef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
|
||||
|
@ -557,9 +557,6 @@ progmem_section (void) \
|
||||
|
||||
#define ASM_APP_OFF "/* #NOAPP */\n"
|
||||
|
||||
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
fprintf (STREAM,"/* line: %d */\n",LINE)
|
||||
|
||||
/* Switch into a generic section. */
|
||||
#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
|
||||
|
||||
|
@ -1452,8 +1452,6 @@ fini_section () \
|
||||
} \
|
||||
}
|
||||
|
||||
#define ASM_STABS_OP "\t.stabs\t"
|
||||
|
||||
/* Switch into a generic section. */
|
||||
#define TARGET_ASM_NAMED_SECTION c4x_asm_named_section
|
||||
|
||||
|
@ -362,12 +362,7 @@ extern const char *darwin_fix_and_continue_switch;
|
||||
|
||||
/* gdb needs a null N_SO at the end of each file for scattered loading. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
do { text_section (); \
|
||||
fprintf (FILE, \
|
||||
"\t.stabs \"%s\",%d,0,0,Letext\nLetext:\n", "" , N_SO); \
|
||||
} while (0)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
/* Making a symbols weak on Darwin requires more than just setting DECL_WEAK. */
|
||||
#define MAKE_DECL_ONE_ONLY(DECL) darwin_make_decl_one_only (DECL)
|
||||
|
@ -34,43 +34,22 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Be function-relative for block and source line stab directives. */
|
||||
|
||||
#undef DBX_BLOCKS_FUNCTION_RELATIVE
|
||||
#define DBX_BLOCKS_FUNCTION_RELATIVE 1
|
||||
|
||||
/* but, to make this work, functions must appear prior to line info. */
|
||||
|
||||
#undef DBX_FUNCTION_FIRST
|
||||
#define DBX_FUNCTION_FIRST
|
||||
|
||||
/* Generate a blank trailing N_SO to mark the end of the .o file, since
|
||||
we can't depend upon the linker to mark .o file boundaries with
|
||||
embedded stabs. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
asm_fprintf (FILE, \
|
||||
"\t.text\n\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
/* Like block addresses, stabs line numbers are relative to the
|
||||
current function. */
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
{ if (write_symbols == SDB_DEBUG) { \
|
||||
fprintf ((FILE), "\t.ln\t%d\n", \
|
||||
((sdb_begin_function_line > -1) \
|
||||
? (LINE) - sdb_begin_function_line : 1)); \
|
||||
} else if (write_symbols == DBX_DEBUG) { \
|
||||
char buffer[256]; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (buffer, "LM", COUNTER); \
|
||||
fprintf (FILE, ".stabn 68,0,%d,", LINE); \
|
||||
assemble_name (FILE, buffer); \
|
||||
putc ('-', FILE); \
|
||||
assemble_name (FILE, \
|
||||
XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
|
||||
putc ('\n', FILE); \
|
||||
(*targetm.asm_out.internal_label) (FILE, "LM", COUNTER); \
|
||||
} }
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
|
||||
/* When generating stabs debugging, use N_BINCL entries. */
|
||||
|
||||
|
@ -34,17 +34,14 @@ Boston, MA 02111-1307, USA. */
|
||||
way, gdb expects it, and it reduces the number of relocation
|
||||
entries... */
|
||||
|
||||
#undef DBX_BLOCKS_FUNCTION_RELATIVE
|
||||
#define DBX_BLOCKS_FUNCTION_RELATIVE 1
|
||||
|
||||
/* ... but, to make this work, functions must appear prior to line info. */
|
||||
|
||||
#undef DBX_FUNCTION_FIRST
|
||||
#define DBX_FUNCTION_FIRST
|
||||
|
||||
/* When generating stabs debugging, use N_BINCL entries. */
|
||||
|
||||
#undef DBX_USE_BINCL
|
||||
#define DBX_USE_BINCL
|
||||
|
||||
/* There is no limit to the length of stabs strings. */
|
||||
@ -56,29 +53,12 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Like block addresses, stabs line numbers are relative to the
|
||||
current function. */
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
do \
|
||||
{ \
|
||||
char temp[256]; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (temp, "LM", COUNTER); \
|
||||
fprintf (FILE, "\t.stabn 68,0,%d,", LINE); \
|
||||
assemble_name (FILE, temp); \
|
||||
putc ('-', FILE); \
|
||||
assemble_name (FILE, \
|
||||
XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
|
||||
putc ('\n', FILE); \
|
||||
(*targetm.asm_out.internal_label) (FILE, "LM", COUNTER); \
|
||||
} \
|
||||
while (0)
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
|
||||
/* Generate a blank trailing N_SO to mark the end of the .o file, since
|
||||
we can't depend upon the linker to mark .o file boundaries with
|
||||
embedded stabs. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
asm_fprintf (FILE, \
|
||||
"\t.text\n\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
#endif /* ! GCC_DBX_ELF_H */
|
||||
|
@ -27,15 +27,11 @@ Boston, MA 02111-1307, USA. */
|
||||
#define SDB_DEBUGGING_INFO 1
|
||||
#define SDB_DELIM "\n"
|
||||
|
||||
/* Override definition in dbxcoff.h. */
|
||||
/* Generate a blank trailing N_SO to mark the end of the .o file, since
|
||||
we can't depend upon the linker to mark .o file boundaries with
|
||||
embedded stabs. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
fprintf (FILE, \
|
||||
"\t.text\n.stabs \"\",%d,0,0,.Letext\n.Letext:\n", N_SO)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
/* This is how to output an assembler line
|
||||
that says to advance the location counter by SIZE bytes. */
|
||||
|
@ -1525,8 +1525,7 @@ L2: .word STATIC
|
||||
a word so don't ever force line number labels to begin at the beginning
|
||||
of a word. */
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
|
||||
#define DBX_OUTPUT_SOURCE_LINE(file, line, counter) \
|
||||
do \
|
||||
{ \
|
||||
fprintf (file, ".stabn 68,0,%d,.LM%d-", \
|
||||
|
@ -104,23 +104,7 @@ drectve_section () \
|
||||
|
||||
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
{ \
|
||||
if (write_symbols == DBX_DEBUG) \
|
||||
{ \
|
||||
char buffer[256]; \
|
||||
\
|
||||
ASM_GENERATE_INTERNAL_LABEL (buffer, "LM", COUNTER); \
|
||||
fprintf (FILE, ".stabn 68,0,%d,", LINE); \
|
||||
assemble_name (FILE, buffer); \
|
||||
putc ('-', FILE); \
|
||||
assemble_name (FILE, \
|
||||
XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
|
||||
putc ('\n', FILE); \
|
||||
(*targetm.asm_out.internal_label) (FILE, "LM", COUNTER); \
|
||||
} \
|
||||
}
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
|
||||
#define STARTFILE_SPEC "crt0.o%s"
|
||||
#define ENDFILE_SPEC "%{!mno-lsim:-lsim}"
|
||||
|
@ -158,7 +158,6 @@ extern void print_operand (FILE *, rtx, int);
|
||||
extern void print_operand_address (FILE *, rtx);
|
||||
extern int mips_output_external (FILE *, tree, const char *);
|
||||
extern void mips_output_filename (FILE *, const char *);
|
||||
extern void mips_output_lineno (FILE *, int);
|
||||
extern void mips_output_ascii (FILE *, const char *, size_t, const char *);
|
||||
extern void mips_output_aligned_bss (FILE *, tree, const char *,
|
||||
unsigned HOST_WIDE_INT, int);
|
||||
|
@ -5069,44 +5069,24 @@ mips_output_filename (FILE *stream, const char *name)
|
||||
mips_output_filename_first_time = 0;
|
||||
num_source_filenames += 1;
|
||||
current_function_file = name;
|
||||
ASM_OUTPUT_FILENAME (stream, num_source_filenames, name);
|
||||
fprintf (stream, "\t.file\t%d ", num_source_filenames);
|
||||
output_quoted_string (stream, name);
|
||||
putc ('\n', stream);
|
||||
}
|
||||
|
||||
/* If we are emitting stabs, let dbxout.c handle this (except for
|
||||
the mips_output_filename_first_time case). */
|
||||
else if (write_symbols == DBX_DEBUG)
|
||||
{
|
||||
ASM_GENERATE_INTERNAL_LABEL (ltext_label_name, "Ltext", 0);
|
||||
fputs ("\t.stabs\t", stream);
|
||||
output_quoted_string (stream, name);
|
||||
fprintf (stream, ",%d,0,0,%s\n", N_SOL, <ext_label_name[1]);
|
||||
}
|
||||
return;
|
||||
|
||||
else if (name != current_function_file
|
||||
&& strcmp (name, current_function_file) != 0)
|
||||
{
|
||||
num_source_filenames += 1;
|
||||
current_function_file = name;
|
||||
ASM_OUTPUT_FILENAME (stream, num_source_filenames, name);
|
||||
}
|
||||
}
|
||||
|
||||
/* Emit a linenumber. For encapsulated stabs, we need to put out a stab
|
||||
as well as a .loc, since it is possible that MIPS ECOFF might not be
|
||||
able to represent the location for inlines that come from a different
|
||||
file. */
|
||||
|
||||
void
|
||||
mips_output_lineno (FILE *stream, int line)
|
||||
{
|
||||
if (write_symbols == DBX_DEBUG)
|
||||
{
|
||||
++sym_lineno;
|
||||
fprintf (stream, "%sLM%d:\n\t.stabn\t%d,0,%d,%sLM%d\n",
|
||||
LOCAL_LABEL_PREFIX, sym_lineno, N_SLINE, line,
|
||||
LOCAL_LABEL_PREFIX, sym_lineno);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf (stream, "\n\t.loc\t%d %d\n", num_source_filenames, line);
|
||||
fprintf (stream, "\t.file\t%d ", num_source_filenames);
|
||||
output_quoted_string (stream, name);
|
||||
putc ('\n', stream);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5963,7 +5943,7 @@ mips_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
|
||||
|
||||
#ifdef SDB_DEBUGGING_INFO
|
||||
if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG)
|
||||
ASM_OUTPUT_SOURCE_LINE (file, DECL_SOURCE_LINE (current_function_decl), 0);
|
||||
SDB_OUTPUT_SOURCE_LINE (file, DECL_SOURCE_LINE (current_function_decl));
|
||||
#endif
|
||||
|
||||
/* In mips16 mode, we may need to generate a 32 bit to handle
|
||||
|
@ -2790,20 +2790,15 @@ while (0)
|
||||
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
|
||||
mips_output_filename (STREAM, NAME)
|
||||
|
||||
/* This is defined so that it can be overridden in iris6.h. */
|
||||
#define ASM_OUTPUT_FILENAME(STREAM, NUM_SOURCE_FILENAMES, NAME) \
|
||||
do \
|
||||
{ \
|
||||
fprintf (STREAM, "\t.file\t%d ", NUM_SOURCE_FILENAMES); \
|
||||
output_quoted_string (STREAM, NAME); \
|
||||
fputs ("\n", STREAM); \
|
||||
} \
|
||||
while (0)
|
||||
/* 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)
|
||||
|
||||
#ifndef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
mips_output_lineno (STREAM, LINE)
|
||||
#endif
|
||||
/* 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)
|
||||
|
||||
/* The MIPS implementation uses some labels for its own purpose. The
|
||||
following lists what labels are created, and are all formed by the
|
||||
|
@ -67,7 +67,7 @@ do { \
|
||||
|
||||
#define PUT_SDB_FUNCTION_END(LINE) \
|
||||
do { \
|
||||
ASM_OUTPUT_SOURCE_LINE (asm_out_file, LINE + sdb_begin_function_line, 0); \
|
||||
SDB_OUTPUT_SOURCE_LINE (asm_out_file, LINE + sdb_begin_function_line); \
|
||||
} while (0)
|
||||
|
||||
#define PUT_SDB_EPILOGUE_END(NAME)
|
||||
|
@ -1236,16 +1236,6 @@ mmix_output_quoted_string (FILE *stream, const char *string, int length)
|
||||
}
|
||||
}
|
||||
|
||||
/* ASM_OUTPUT_SOURCE_LINE. */
|
||||
|
||||
void
|
||||
mmix_asm_output_source_line (FILE *stream, int lineno)
|
||||
{
|
||||
fprintf (stream, "# %d ", lineno);
|
||||
OUTPUT_QUOTED_STRING (stream, main_input_filename);
|
||||
fprintf (stream, "\n");
|
||||
}
|
||||
|
||||
/* Target hook for assembling integer objects. Use mmix_print_operand
|
||||
for WYDE and TETRA. Use mmix_output_octa to output 8-byte
|
||||
CONST_DOUBLEs. */
|
||||
|
@ -888,12 +888,8 @@ typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
|
||||
#define OUTPUT_QUOTED_STRING(STREAM, STRING) \
|
||||
mmix_output_quoted_string (STREAM, STRING, strlen (STRING))
|
||||
|
||||
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE, COUNTER) \
|
||||
mmix_asm_output_source_line (STREAM, LINE)
|
||||
|
||||
#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
|
||||
|
||||
|
||||
/* Node: Data Output */
|
||||
|
||||
#define ASM_OUTPUT_ASCII(STREAM, PTR, LEN) \
|
||||
|
@ -369,10 +369,6 @@ extern int target_flags;
|
||||
#undef DBX_CONTIN_LENGTH
|
||||
#define DBX_CONTIN_LENGTH 3000
|
||||
|
||||
/* Only labels should ever begin in column zero. */
|
||||
#define ASM_STABS_OP "\t.stabs\t"
|
||||
#define ASM_STABN_OP "\t.stabn\t"
|
||||
|
||||
/* GDB always assumes the current function's frame begins at the value
|
||||
of the stack pointer upon entry to the current function. Accessing
|
||||
local variables and parameters passed on the stack is done using the
|
||||
|
@ -27,33 +27,11 @@ Boston, MA 02111-1307, USA. */
|
||||
from other embedded stabs implementations. */
|
||||
#undef DBX_USE_BINCL
|
||||
|
||||
/* We make the first line stab special to avoid adding several
|
||||
gross hacks to GAS. */
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
|
||||
{ static tree last_function_decl = NULL; \
|
||||
if (current_function_decl == last_function_decl) \
|
||||
{ \
|
||||
rtx func = DECL_RTL (current_function_decl); \
|
||||
const char *name = XSTR (XEXP (func, 0), 0); \
|
||||
fprintf (file, "\t.stabn 68,0,%d,L$M%d-%s\nL$M%d:\n", \
|
||||
line, counter, \
|
||||
(* targetm.strip_name_encoding) (name), \
|
||||
counter); \
|
||||
} \
|
||||
else \
|
||||
fprintf (file, "\t.stabn 68,0,%d,0\n", line); \
|
||||
last_function_decl = current_function_decl; \
|
||||
}
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
|
||||
/* gdb needs a null N_SO at the end of each file for scattered loading. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
text_section (); \
|
||||
fputs ("\t.SPACE $TEXT$\n\t.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY\n", FILE); \
|
||||
fprintf (FILE, \
|
||||
"\t.stabs \"\",%d,0,0,L$text_end0000\nL$text_end0000:\n", N_SO)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
/* Select a format to encode pointers in exception handling data. CODE
|
||||
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
|
||||
|
@ -184,26 +184,13 @@ Boston, MA 02111-1307, USA.
|
||||
/* Like block addresses, stabs line numbers are relative to the
|
||||
current function. */
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_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, "\n.LM%d:\n", counter); \
|
||||
} \
|
||||
while (0)
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
|
||||
/* Generate a blank trailing N_SO to mark the end of the .o file, since
|
||||
we can't depend upon the linker to mark .o file boundaries with
|
||||
embedded stabs. */
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
fprintf (FILE, \
|
||||
"\t.text\n\t.stabs \"\",%d,0,0,.Letext\n.Letext:\n", N_SO)
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
/* Define the actual types of some ANSI-mandated types. (These
|
||||
definitions should work for most SVR4 systems). */
|
||||
|
@ -482,10 +482,9 @@ extern int dot_symbols;
|
||||
&& GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \
|
||||
&& BITS_PER_WORD == HOST_BITS_PER_INT)))))
|
||||
|
||||
/* This is the same as the dbxelf.h version, except that we need to
|
||||
/* This ABI cannot use DBX_LINES_FUNCTION_RELATIVE, because we must
|
||||
use the function code label, not the function descriptor. */
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
#define DBX_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||||
do \
|
||||
{ \
|
||||
char temp[256]; \
|
||||
@ -509,15 +508,8 @@ while (0)
|
||||
fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, BRAC); \
|
||||
assemble_name (FILE, NAME); \
|
||||
putc ('-', FILE); \
|
||||
if (current_function_func_begin_label != NULL) \
|
||||
{ \
|
||||
assemble_name (FILE, current_function_func_begin_label); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||||
rs6000_output_function_entry (FILE, s); \
|
||||
} \
|
||||
s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||||
rs6000_output_function_entry (FILE, s); \
|
||||
putc ('\n', FILE); \
|
||||
} \
|
||||
while (0)
|
||||
|
@ -83,24 +83,8 @@ Boston, MA 02111-1307, USA. */
|
||||
#define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \
|
||||
sprintf ((STRING), "*%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
|
||||
do \
|
||||
{ \
|
||||
asm_fprintf ((file), ".stabn 68,0,%d,%LLM%d-", \
|
||||
(line), (counter)); \
|
||||
assemble_name ((file), \
|
||||
XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
|
||||
asm_fprintf ((file), "\n%LLM%d:\n", (counter)); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
do { \
|
||||
text_section (); \
|
||||
asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
|
||||
} while (0)
|
||||
#define DBX_LINES_FUNCTION_RELATIVE 1
|
||||
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC \
|
||||
|
@ -42,9 +42,6 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Let's be re-entrant. */
|
||||
#undef PCC_STATIC_STRUCT_RETURN
|
||||
|
||||
/* Make sure .stabs for a function are always the same section. */
|
||||
#define DBX_OUTPUT_FUNCTION_END(file,decl) function_section(decl)
|
||||
|
||||
/* Before the prologue, the top of the frame is below the argument
|
||||
count pushed by the CALLS and before the start of the saved registers. */
|
||||
#define INCOMING_FRAME_SP_OFFSET 0
|
||||
|
464
gcc/dbxout.c
464
gcc/dbxout.c
File diff suppressed because it is too large
Load Diff
@ -6259,17 +6259,6 @@ the assembler source. So you can use it to canonicalize the format
|
||||
of the filename using this macro.
|
||||
@end defmac
|
||||
|
||||
@defmac ASM_OUTPUT_SOURCE_LINE (@var{stream}, @var{line}, @var{counter})
|
||||
A C statement to output DBX or SDB debugging information before code
|
||||
for line number @var{line} of the current source file to the
|
||||
stdio stream @var{stream}. @var{counter} is the number of time the
|
||||
macro was invoked, including the current invocation; it is intended
|
||||
to generate unique labels in the assembly output.
|
||||
|
||||
This macro need not be defined if the standard form of debugging
|
||||
information for the debugger in use is appropriate.
|
||||
@end defmac
|
||||
|
||||
@defmac ASM_OUTPUT_IDENT (@var{stream}, @var{string})
|
||||
A C statement to output something to the assembler file to handle a
|
||||
@samp{#ident} directive containing the text @var{string}. If this
|
||||
@ -7990,9 +7979,16 @@ code.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_BLOCKS_FUNCTION_RELATIVE
|
||||
Define this macro if the value of a symbol describing the scope of a
|
||||
block (@code{N_LBRAC} or @code{N_RBRAC}) should be relative to the start
|
||||
of the enclosing function. Normally, GCC uses an absolute address.
|
||||
Define this macro, with value 1, if the value of a symbol describing
|
||||
the scope of a block (@code{N_LBRAC} or @code{N_RBRAC}) should be
|
||||
relative to the start of the enclosing function. Normally, GCC uses
|
||||
an absolute address.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_LINES_FUNCTION_RELATIVE
|
||||
Define this macro, with value 1, if the value of a symbol indicating
|
||||
the current line number (@code{N_SLINE}) should be relative to the
|
||||
start of the enclosing function. Normally, GCC uses an absolute address.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_USE_BINCL
|
||||
@ -8026,6 +8022,17 @@ Define this macro if the target machine requires special handling to
|
||||
output an @code{N_FUN} entry for the function @var{decl}.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_OUTPUT_SOURCE_LINE (@var{stream}, @var{line}, @var{counter})
|
||||
A C statement to output DBX debugging information before code for line
|
||||
number @var{line} of the current source file to the stdio stream
|
||||
@var{stream}. @var{counter} is the number of time the macro was
|
||||
invoked, including the current invocation; it is intended to generate
|
||||
unique labels in the assembly output.
|
||||
|
||||
This macro should not be defined if the default output is correct, or
|
||||
if it can be made correct by defining @code{DBX_LINES_FUNCTION_RELATIVE}.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_OUTPUT_FUNCTION_END (@var{stream}, @var{function})
|
||||
Define this macro if the target machine requires special output at the
|
||||
end of the debugging information for a function. The definition should
|
||||
@ -8080,6 +8087,13 @@ If you don't define this macro, nothing special is output at the end
|
||||
of compilation, which is correct for most machines.
|
||||
@end defmac
|
||||
|
||||
@defmac DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
|
||||
Define this macro @emph{instead of} defining
|
||||
@code{DBX_OUTPUT_MAIN_SOURCE_FILE_END}, if what needs to be output at
|
||||
the end of compilation is a @code{N_SO} stab with an empty string,
|
||||
whose value is the highest absolute text address in the file.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node SDB and DWARF
|
||||
@subsection Macros for SDB and DWARF Output
|
||||
@ -8172,6 +8186,12 @@ enumeration tags that have not yet been seen to be handled. Some
|
||||
assemblers choke if forward tags are used, while some require it.
|
||||
@end defmac
|
||||
|
||||
@defmac SDB_OUTPUT_SOURCE_LINE (@var{stream}, @var{line})
|
||||
A C statement to output SDB debugging information before code for line
|
||||
number @var{line} of the current source file to the stdio stream
|
||||
@var{stream}. The default is to emit an @code{.ln} directive.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node VMS Debug
|
||||
@subsection Macros for VMS Debug Format
|
||||
|
18
gcc/sdbout.c
18
gcc/sdbout.c
@ -52,10 +52,6 @@ AT&T C compiler. From the example below I would conclude the following:
|
||||
|
||||
static GTY(()) tree anonymous_types;
|
||||
|
||||
/* Counter for sdbout_source_line. */
|
||||
|
||||
static GTY(()) int sdbout_source_line_counter;
|
||||
|
||||
/* Counter to generate unique "names" for nameless struct members. */
|
||||
|
||||
static GTY(()) int unnamed_struct_number;
|
||||
@ -292,11 +288,6 @@ do { fprintf (asm_out_file, "\t.tag\t"); \
|
||||
|
||||
#ifdef MIPS_DEBUGGING_INFO
|
||||
|
||||
#ifndef PUT_SDB_SRC_FILE
|
||||
#define PUT_SDB_SRC_FILE(FILENAME) \
|
||||
output_file_directive (asm_out_file, (FILENAME))
|
||||
#endif
|
||||
|
||||
/* ECOFF linkers have an optimization that does the same kind of thing as
|
||||
N_BINCL/E_INCL in stabs: eliminate duplicate debug information in the
|
||||
executable. To achieve this, GCC must output a .file for each file
|
||||
@ -1545,9 +1536,8 @@ sdbout_source_line (unsigned int line, const char *filename ATTRIBUTE_UNUSED)
|
||||
/* COFF relative line numbers must be positive. */
|
||||
if ((int) line > sdb_begin_function_line)
|
||||
{
|
||||
#ifdef ASM_OUTPUT_SOURCE_LINE
|
||||
sdbout_source_line_counter += 1;
|
||||
ASM_OUTPUT_SOURCE_LINE (asm_out_file, line, sdbout_source_line_counter);
|
||||
#ifdef SDB_OUTPUT_SOURCE_LINE
|
||||
SDB_OUTPUT_SOURCE_LINE (asm_out_file, line);
|
||||
#else
|
||||
fprintf (asm_out_file, "\t.ln\t%d\n",
|
||||
((sdb_begin_function_line > -1)
|
||||
@ -1650,7 +1640,7 @@ sdbout_start_source_file (unsigned int line ATTRIBUTE_UNUSED,
|
||||
n->next = current_file;
|
||||
n->name = filename;
|
||||
current_file = n;
|
||||
PUT_SDB_SRC_FILE (filename);
|
||||
output_file_directive (asm_out_file, filename);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1665,7 +1655,7 @@ sdbout_end_source_file (unsigned int line ATTRIBUTE_UNUSED)
|
||||
next = current_file->next;
|
||||
free (current_file);
|
||||
current_file = next;
|
||||
PUT_SDB_SRC_FILE (current_file->name);
|
||||
output_file_directive (asm_out_file, current_file->name);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -77,8 +77,8 @@ const char *xcoff_lastfile;
|
||||
#define ABS_OR_RELATIVE_LINENO(LINENO) \
|
||||
((xcoff_inlining) ? (LINENO) : (LINENO) - xcoff_begin_function_line)
|
||||
|
||||
/* Output source line numbers via ".line" rather than ".stabd". */
|
||||
#define ASM_OUTPUT_SOURCE_LINE(FILE,LINENUM,COUNTER) \
|
||||
/* Output source line numbers via ".line". */
|
||||
#define ASM_OUTPUT_LINE(FILE,LINENUM) \
|
||||
do \
|
||||
{ \
|
||||
if (xcoff_begin_function_line >= 0) \
|
||||
@ -327,7 +327,7 @@ xcoffout_source_line (unsigned int line, const char *filename)
|
||||
|
||||
xcoffout_source_file (asm_out_file, filename, inline_p);
|
||||
|
||||
ASM_OUTPUT_SOURCE_LINE (asm_out_file, line, 0);
|
||||
ASM_OUTPUT_LINE (asm_out_file, line);
|
||||
}
|
||||
|
||||
/* Output the symbols defined in block number DO_BLOCK.
|
||||
@ -454,7 +454,7 @@ xcoffout_begin_prologue (unsigned int line,
|
||||
xcoffout_block (DECL_INITIAL (current_function_decl), 0,
|
||||
DECL_ARGUMENTS (current_function_decl));
|
||||
|
||||
ASM_OUTPUT_SOURCE_LINE (asm_out_file, line, 0);
|
||||
ASM_OUTPUT_LINE (asm_out_file, line);
|
||||
}
|
||||
|
||||
/* Called at end of function (before epilogue).
|
||||
|
Loading…
Reference in New Issue
Block a user