67ad2ae729
that are needed by the VMS debugger on I64. * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove. (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro. * dbxout.c (gcc_debug_hooks): New entry begin_epilogue. * debug.c: Likewise. * sdbout.c: Likewise. * vmsdbgout.c: Likewise. * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare. * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document. * dwarf2asm.c (dw2_asm_output_vms_delta): New function. (ASM_OUTPUT_DWARF_VMS_DELTA): Call it. * dwarf2asm.h (dw2_asm_output_vms_delta): Declare. * dwarf2out.c (dw_fde_struct): New fields dw_fde_vms_{end,begin}_prologue. (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros. (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above. (dwarf2out_vms_end_prologue): New function. (dwarf2out_vms_begin_epilogue): New function. (dw_val_struct): New value dw_val_class_vms_delta. (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue, begin_epilogue for VMS. (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare new static functions. (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}. (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New static functions. (print_die): New case dw_val_class_vms_delta. (attr_checksum): Likewise. (same_dw_val_p: Likewise. (size_of_die): Likewise. (value_format): Likewise. (output_die): Likewise. (gen_subprogram_die): Call add_AT_vms_delta on VMS. (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue * dwarf2out.h (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue * final.c (final_scan_insn): Likewise. Call begin_epilogue. From-SVN: r160858
90 lines
2.8 KiB
C
90 lines
2.8 KiB
C
/* Dwarf2 assembler output helper routines.
|
|
Copyright (C) 2001, 2003, 2005, 2007, 2008, 2010
|
|
Free Software Foundation, Inc.
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC 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 3, or (at your option) any later
|
|
version.
|
|
|
|
GCC 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 GCC; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
|
|
extern void dw2_assemble_integer (int, rtx);
|
|
|
|
extern void dw2_asm_output_data_raw (int, unsigned HOST_WIDE_INT);
|
|
|
|
extern void dw2_asm_output_data (int, unsigned HOST_WIDE_INT,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern void dw2_asm_output_delta (int, const char *, const char *,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_4;
|
|
|
|
extern void dw2_asm_output_vms_delta (int, const char *, const char *,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_4;
|
|
|
|
extern void dw2_asm_output_offset (int, const char *, section *,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_4;
|
|
|
|
extern void dw2_asm_output_addr (int, const char *, const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern void dw2_asm_output_addr_rtx (int, rtx, const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern void dw2_asm_output_encoded_addr_rtx (int, rtx, bool,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_4;
|
|
|
|
extern void dw2_asm_output_nstring (const char *, size_t,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern void dw2_asm_output_data_uleb128_raw (unsigned HOST_WIDE_INT);
|
|
|
|
extern void dw2_asm_output_data_uleb128 (unsigned HOST_WIDE_INT,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_2;
|
|
|
|
extern void dw2_asm_output_data_sleb128_raw (HOST_WIDE_INT);
|
|
|
|
extern void dw2_asm_output_data_sleb128 (HOST_WIDE_INT,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_2;
|
|
|
|
extern void dw2_asm_output_delta_uleb128 (const char *, const char *,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern int size_of_uleb128 (unsigned HOST_WIDE_INT);
|
|
extern int size_of_sleb128 (HOST_WIDE_INT);
|
|
extern int size_of_encoded_value (int);
|
|
extern const char *eh_data_format_name (int);
|
|
|
|
extern rtx dw2_force_const_mem (rtx, bool);
|
|
extern void dw2_output_indirect_constants (void);
|
|
|
|
/* These are currently unused. */
|
|
|
|
#if 0
|
|
extern void dw2_asm_output_pcrel (int, const char *, const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
|
|
extern void dw2_asm_output_delta_sleb128 (const char *, const char *,
|
|
const char *, ...)
|
|
ATTRIBUTE_NULL_PRINTF_3;
|
|
#endif
|