summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/linux64.h
diff options
context:
space:
mode:
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-27 01:29:42 +0000
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-27 01:29:42 +0000
commitd0de818d2c8adf1bd0c34a1e3a57af3fadd79235 (patch)
tree0c96f65f534d94db49923bd04453180f46fc5a5a /gcc/config/rs6000/linux64.h
parent155be388aabd100cbc4de7a25289ca27c99b3ed0 (diff)
downloadgcc-d0de818d2c8adf1bd0c34a1e3a57af3fadd79235.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89623 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/linux64.h')
-rw-r--r--gcc/config/rs6000/linux64.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 02d5167c2d9..8168cd3413b 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -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); \