osprey/be/cg/cgdwarf.cxx File Reference

#include <stdio.h>
#include <elf_stuff.h>
#include <elfaccess.h>
#include <libelf/libelf.h>
#include <libdwarf/libdwarf.h>
#include <vector>
#include <alloca.h>
#include "defs.h"
#include "erglob.h"
#include "glob.h"
#include "flags.h"
#include "tracing.h"
#include "util.h"
#include "config.h"
#include "config_asm.h"
#include "config_list.h"
#include "config_debug.h"
#include "cgir.h"
#include "mempool.h"
#include "tn_set.h"
#include "srcpos.h"
#include "em_elf.h"
#include "em_dwarf.h"
#include "targ_const.h"
#include "calls.h"
#include "stblock.h"
#include "data_layout.h"
#include "dwarf_DST.h"
#include "dwarf_DST_mem.h"
#include "const.h"
#include "cg.h"
#include "cgtarget.h"
#include "cgemit.h"
#include "cgdwarf.h"
#include "label_util.h"
#include "vstring.h"
#include "cgemit_targ.h"
#include "cgdwarf_targ.h"
#include "be_symtab.h"

Include dependency graph for cgdwarf.cxx:

Go to the source code of this file.

Data Types

type  CGD_SYMTAB_ENTRY
type  include_info
type  file_info
type  UINT32_unaligned
type  UINT64_unaligned

Defines

#define LIBDWARF_SORTS_RELOCS
#define USE_STANDARD_TYPES   1
#define GLOBAL_LEVEL   0
#define LOCAL_LEVEL   1
#define put_flag(flag, die)   dwarf_add_AT_flag(dw_dbg, die, flag, 1, &dw_error)

Enumerations

enum  which_pb {
  pb_none, pb_pubname, pb_funcname, pb_weakname,
  pb_varname, pb_typename
}

Functions/Subroutines

Dwarf_Unsigned Cg_Dwarf_Symtab_Entry (CGD_SYMTAB_ENTRY_TYPE type, Dwarf_Unsigned index, Dwarf_Unsigned pu_base_sym_idx, PU_IDX pu, char *label_name, Dwarf_Unsigned last_offset)
Dwarf_Unsigned Cg_Dwarf_Enter_Elfsym (Elf64_Word index)
Elf64_Word Cg_Dwarf_Translate_Symidx (Dwarf_Unsigned idx_from_sym_reloc)
Elf64_Word Cg_Dwarf_Translate_Offset (Dwarf_Unsigned idx_from_sym_reloc)
void Cg_Dwarf_Translate_To_Elf (Dwarf_Unsigned idx_from_sym_reloc, Dwarf_Unsigned *elf_symbol, Dwarf_Unsigned *elf_offset)
char * Cg_Dwarf_Name_From_Handle (Dwarf_Unsigned idx)
static STGet_ST_From_DST (DST_ASSOC_INFO assoc_info)
static Dwarf_P_Die get_ref_die (DST_INFO_IDX ref_idx)
static void put_reference (DST_INFO_IDX ref_idx, Dwarf_Half ref_attr, Dwarf_P_Die die)
static void put_pubname (char *name, Dwarf_P_Die die, which_pb pb_type)
static void put_string (DST_STR_IDX str_idx, Dwarf_Half str_attr, Dwarf_P_Die die)
static void put_name (DST_STR_IDX str_idx, Dwarf_P_Die die, which_pb pb_type)
static void put_decl (USRCPOS decl, Dwarf_P_Die die)
static void put_const_attribute (DST_CONST_VALUE cval, Dwarf_Half ref_attr, Dwarf_P_Die die)
static void put_dopetype (DST_INFO_IDX dope_idx, DST_flag flag, Dwarf_P_Die die)
static void put_compile_unit (DST_COMPILE_UNIT *attr, Dwarf_P_Die die)
static BOOL subprogram_def_is_inlined (DST_SUBPROGRAM *attr)
static void put_subprogram (DST_flag flag, DST_SUBPROGRAM *attr, Dwarf_P_Die die)
static Elf64_Word get_elfindex_from_ASSOC_INFO (DST_ASSOC_INFO assoc_info)
static mINT32 get_ofst_from_ASSOC_INFO (DST_ASSOC_INFO assoc_info)
static mINT32 get_ofst_from_label_ASSOC_INFO (DST_ASSOC_INFO assoc_info)
INT Offset_from_FP (ST *st)
static void put_location (DST_ASSOC_INFO assoc_info, INT offs, DST_flag flag, Dwarf_P_Die die, Dwarf_Half loc_attr)
static void put_pc_value_symbolic (Dwarf_Unsigned pc_attr, Dwarf_Unsigned pc_label, Dwarf_Addr pc_offset, Dwarf_P_Die die)
static void put_lexical_block (DST_flag flag, DST_LEXICAL_BLOCK *attr, Dwarf_P_Die die)
static void put_inlined_subroutine (DST_INLINED_SUBROUTINE *attr, Dwarf_P_Die die)
static void put_concrete_subprogram (DST_INFO_IDX abstract_idx, INT32 low_pc, INT32 high_pc, Dwarf_P_Die die)
static void put_label (DST_flag flag, DST_LABEL *attr, Dwarf_P_Die die)
static void put_variable (DST_flag flag, DST_VARIABLE *attr, Dwarf_P_Die die)
static void put_constant (DST_flag flag, DST_CONSTANT *attr, Dwarf_P_Die die)
static void put_formal_parameter (DST_flag flag, DST_FORMAL_PARAMETER *attr, Dwarf_P_Die die)
static void put_unspecified_parameters (DST_flag flag, DST_UNSPECIFIED_PARAMETERS *attr, Dwarf_P_Die die)
static void put_basetype (DST_flag flag, DST_BASETYPE *attr, Dwarf_P_Die die)
static void put_const_type (DST_flag flag, DST_CONST_TYPE *attr, Dwarf_P_Die die)
static void put_volatile_type (DST_flag flag, DST_VOLATILE_TYPE *attr, Dwarf_P_Die die)
static void put_pointer_type (DST_flag flag, DST_POINTER_TYPE *attr, Dwarf_P_Die die)
static void put_reference_type (DST_flag flag, DST_REFERENCE_TYPE *attr, Dwarf_P_Die die)
static void put_typedef (DST_flag flag, DST_TYPEDEF *attr, Dwarf_P_Die die)
static void put_ptr_to_member_type (DST_flag flag, DST_PTR_TO_MEMBER_TYPE *attr, Dwarf_P_Die die)
static void put_array_type (DST_flag flag, DST_ARRAY_TYPE *attr, Dwarf_P_Die die)
static void put_lower_bound (DST_flag flag, DST_SUBRANGE_TYPE *attr, Dwarf_P_Die die)
static void put_subrange_type (DST_flag flag, DST_SUBRANGE_TYPE *attr, Dwarf_P_Die die)
static void put_structure_type (DST_flag flag, DST_STRUCTURE_TYPE *attr, Dwarf_P_Die die)
static void put_class_type (DST_flag flag, DST_CLASS_TYPE *attr, Dwarf_P_Die die)
static void put_union_type (DST_flag flag, DST_UNION_TYPE *attr, Dwarf_P_Die die)
static void put_member (DST_flag flag, DST_MEMBER *attr, Dwarf_P_Die die)
static void put_template_type_param (DST_flag flag, DST_TEMPLATE_TYPE_PARAMETER *attr, Dwarf_P_Die die)
static void put_template_value_param (DST_flag flag, DST_TEMPLATE_VALUE_PARAMETER *attr, Dwarf_P_Die die)
static void put_inheritance (DST_flag flag, DST_INHERITANCE *attr, Dwarf_P_Die die)
static void put_enumeration_type (DST_flag flag, DST_ENUMERATION_TYPE *attr, Dwarf_P_Die die)
static void put_enumerator (DST_flag flag, DST_ENUMERATOR *attr, Dwarf_P_Die die)
static void put_subroutine_type (DST_flag flag, DST_SUBROUTINE_TYPE *attr, Dwarf_P_Die die)
static void put_entry_point (DST_flag flag, DST_ENTRY_POINT *attr, Dwarf_P_Die die)
static void put_common_block (DST_flag flag, DST_COMMON_BLOCK *attr, Dwarf_P_Die die)
static void put_common_inclusion (DST_flag flag, DST_COMMON_INCL *attr, Dwarf_P_Die die)
static void put_string_type (DST_flag flag, DST_STRING_TYPE *attr, Dwarf_P_Die die)
static void Write_Attributes (DST_DW_tag tag, DST_flag flag, DST_ATTR_IDX iattr, Dwarf_P_Die die)
static void Set_Enclosing_Die (Dwarf_P_Die die, mINT32 level)
static Dwarf_P_Die preorder_visit (DST_INFO_IDX idx, Dwarf_P_Die parent, Dwarf_P_Die left_sibling, INT tree_level, BOOL visit_children)
static void Traverse_Global_DST (void)
static void Traverse_Extra_DST (void)
static void Traverse_DST (ST *PU_st, DST_IDX pu_idx)
void Cg_Dwarf_Process_PU (Elf64_Word scn_index, LABEL_IDX begin_label, LABEL_IDX end_label, INT32 end_offset, ST *PU_st, DST_IDX pu_dst, Elf64_Word eh_index, INT eh_offset, INT low_pc, INT high_pc)
static DST_language Get_Dwarf_Language (DST_INFO *cu_info)
void Cg_Dwarf_Begin (BOOL is_64bit)
void Cg_Dwarf_Finish (pSCNINFO text_scninfo)
void Cg_Dwarf_Gen_Asm_File_Table (void)
static void print_source (SRCPOS srcpos)
void Cg_Dwarf_Add_Line_Entry (INT code_address, SRCPOS srcpos)
static Elf64_Word reloc_offset (char *reloc, BOOL is_64bit)
static Elf64_Word reloc_sym_index (char *reloc, BOOL is_64bit)
static void check_reloc_fmt_and_size (Elf64_Word reloc_scn_type, Dwarf_Ptr reloc_buffer, Dwarf_Unsigned reloc_buffer_size, Dwarf_Unsigned scn_buffer_size)
static Dwarf_Signed match_scndx (Elf64_Word scndx, scn_handle *scn_handles, Dwarf_Unsigned section_count, scn_handle **scn_bufferp)
static Dwarf_Unsigned compute_buffer_net_size (Dwarf_Signed buffer_cnt, scn_handle **buffers)
static void Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs (FILE *asm_file, const char *section_name, Elf64_Word section_type, Elf64_Word section_flags, Elf64_Word section_entsize, Elf64_Word section_align, Dwarf_Signed buffer_cnt, scn_handle **buffers, Elf64_Word reloc_scn_type, Dwarf_Ptr reloc_buffer, Dwarf_Unsigned reloc_buffer_size, BOOL is_64bit)
static void Cg_Dwarf_Output_Asm_Bytes_Sym_Relocs (FILE *asm_file, const char *section_name, Elf64_Word section_type, Elf64_Word section_flags, Elf64_Word section_entsize, Elf64_Word section_align, Dwarf_Signed buffer_cnt, scn_handle **buffers, Dwarf_Relocation_Data reloc_buffer, Dwarf_Unsigned reloc_count, BOOL is_64bit)
void Cg_Dwarf_Write_Assembly_From_Elf (FILE *asm_file, INT section_count, BOOL is_64bit)
void Cg_Dwarf_Write_Assembly_From_Symbolic_Relocs (FILE *asm_file, INT section_count, BOOL is_64bit)

Variables

BOOL Trace_Dwarf
static Dwarf_P_Debug dw_dbg
static Dwarf_Error dw_error
static BOOL Disable_DST = FALSE
static DST_INFO_IDX cu_idx
static Elf64_Word cur_text_index
static DST_language Dwarf_Language
static Dwarf_P_DieCGD_enclosing_proc = NULL
static mINT32 CGD_enclosing_proc_max = 0
std::vector< CGD_SYMTAB_ENTRY,
mempool_allocator
< CGD_SYMTAB_ENTRY > > 
CGD_Symtab
static file_infofile_table
static include_infoincl_table
static INT cur_file_index = 0


Define Documentation

#define GLOBAL_LEVEL   0

Definition at line 130 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Begin(), Traverse_Extra_DST(), and Traverse_Global_DST().

#define LIBDWARF_SORTS_RELOCS

Definition at line 60 of file cgdwarf.cxx.

#define LOCAL_LEVEL   1

Definition at line 131 of file cgdwarf.cxx.

Referenced by Traverse_Extra_DST(), and Traverse_Global_DST().

#define put_flag ( flag,
die   )     dwarf_add_AT_flag(dw_dbg, die, flag, 1, &dw_error)

#define USE_STANDARD_TYPES   1

Definition at line 77 of file cgdwarf.cxx.


Enumeration Type Documentation

enum which_pb

Enumerator:
pb_none 
pb_pubname 
pb_funcname 
pb_weakname 
pb_varname 
pb_typename 

Definition at line 458 of file cgdwarf.cxx.


Function Documentation

void Cg_Dwarf_Add_Line_Entry ( INT  code_address,
SRCPOS  srcpos 
)

void Cg_Dwarf_Begin ( BOOL  is_64bit  ) 

Dwarf_Unsigned Cg_Dwarf_Enter_Elfsym ( Elf64_Word  index  ) 

Definition at line 311 of file cgdwarf.cxx.

References Cg_Dwarf_Symtab_Entry(), and CGD_ELFSYM.

Referenced by Cg_Dwarf_Begin().

void Cg_Dwarf_Finish ( pSCNINFO  text_scninfo  ) 

Definition at line 2624 of file cgdwarf.cxx.

References Disable_DST, and Traverse_Extra_DST().

Referenced by EMT_End_File().

void Cg_Dwarf_Gen_Asm_File_Table ( void   ) 

char* Cg_Dwarf_Name_From_Handle ( Dwarf_Unsigned  idx  ) 

static void Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs ( FILE asm_file,
const char *  section_name,
Elf64_Word  section_type,
Elf64_Word  section_flags,
Elf64_Word  section_entsize,
Elf64_Word  section_align,
Dwarf_Signed  buffer_cnt,
scn_handle **  buffers,
Elf64_Word  reloc_scn_type,
Dwarf_Ptr  reloc_buffer,
Dwarf_Unsigned  reloc_buffer_size,
BOOL  is_64bit 
) [static]

static void Cg_Dwarf_Output_Asm_Bytes_Sym_Relocs ( FILE asm_file,
const char *  section_name,
Elf64_Word  section_type,
Elf64_Word  section_flags,
Elf64_Word  section_entsize,
Elf64_Word  section_align,
Dwarf_Signed  buffer_cnt,
scn_handle **  buffers,
Dwarf_Relocation_Data  reloc_buffer,
Dwarf_Unsigned  reloc_count,
BOOL  is_64bit 
) [static]

void Cg_Dwarf_Process_PU ( Elf64_Word  scn_index,
LABEL_IDX  begin_label,
LABEL_IDX  end_label,
INT32  end_offset,
ST PU_st,
DST_IDX  pu_dst,
Elf64_Word  eh_index,
INT  eh_offset,
INT  low_pc,
INT  high_pc 
)

Dwarf_Unsigned Cg_Dwarf_Symtab_Entry ( CGD_SYMTAB_ENTRY_TYPE  type,
Dwarf_Unsigned  index,
Dwarf_Unsigned  pu_base_sym_idx,
PU_IDX  pu,
char *  label_name,
Dwarf_Unsigned  last_offset 
)

Elf64_Word Cg_Dwarf_Translate_Offset ( Dwarf_Unsigned  idx_from_sym_reloc  ) 

Elf64_Word Cg_Dwarf_Translate_Symidx ( Dwarf_Unsigned  idx_from_sym_reloc  ) 

Definition at line 316 of file cgdwarf.cxx.

References CGD_ELFSYM, CGD_Symtab, fflush(), fprintf(), index(), Is_True, TFile, Trace_Dwarf, and UINT64.

void Cg_Dwarf_Translate_To_Elf ( Dwarf_Unsigned  idx_from_sym_reloc,
Dwarf_Unsigned elf_symbol,
Dwarf_Unsigned elf_offset 
)

void Cg_Dwarf_Write_Assembly_From_Elf ( FILE asm_file,
INT  section_count,
BOOL  is_64bit 
)

void Cg_Dwarf_Write_Assembly_From_Symbolic_Relocs ( FILE asm_file,
INT  section_count,
BOOL  is_64bit 
)

static void check_reloc_fmt_and_size ( Elf64_Word  reloc_scn_type,
Dwarf_Ptr  reloc_buffer,
Dwarf_Unsigned  reloc_buffer_size,
Dwarf_Unsigned  scn_buffer_size 
) [static]

Definition at line 3071 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs().

static Dwarf_Unsigned compute_buffer_net_size ( Dwarf_Signed  buffer_cnt,
scn_handle **  buffers 
) [static]

Definition at line 3379 of file cgdwarf.cxx.

References next.

Referenced by Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs(), and Cg_Dwarf_Output_Asm_Bytes_Sym_Relocs().

static DST_language Get_Dwarf_Language ( DST_INFO cu_info  )  [static]

Definition at line 2575 of file cgdwarf.cxx.

References DST_ATTR_IDX_TO_PTR, DST_COMPILE_UNIT_language, and DST_INFO_attributes.

Referenced by Cg_Dwarf_Begin().

static Elf64_Word get_elfindex_from_ASSOC_INFO ( DST_ASSOC_INFO  assoc_info  )  [static]

Definition at line 823 of file cgdwarf.cxx.

References EMT_Put_Elf_Symbol(), and Get_ST_From_DST().

Referenced by put_entry_point().

static mINT32 get_ofst_from_ASSOC_INFO ( DST_ASSOC_INFO  assoc_info  )  [static]

Definition at line 831 of file cgdwarf.cxx.

References Get_ST_From_DST(), NULL, and ST_ofst.

static mINT32 get_ofst_from_label_ASSOC_INFO ( DST_ASSOC_INFO  assoc_info  )  [static]

static Dwarf_P_Die get_ref_die ( DST_INFO_IDX  ref_idx  )  [static]

static ST* Get_ST_From_DST ( DST_ASSOC_INFO  assoc_info  )  [static]

static Dwarf_Signed match_scndx ( Elf64_Word  scndx,
scn_handle *  scn_handles,
Dwarf_Unsigned  section_count,
scn_handle **  scn_bufferp 
) [static]

INT Offset_from_FP ( ST st  ) 

static Dwarf_P_Die preorder_visit ( DST_INFO_IDX  idx,
Dwarf_P_Die  parent,
Dwarf_P_Die  left_sibling,
INT  tree_level,
BOOL  visit_children 
) [static]

static void print_source ( SRCPOS  srcpos  )  [static]

static void put_array_type ( DST_flag  flag,
DST_ARRAY_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_basetype ( DST_flag  flag,
DST_BASETYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_class_type ( DST_flag  flag,
DST_CLASS_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_common_block ( DST_flag  flag,
DST_COMMON_BLOCK attr,
Dwarf_P_Die  die 
) [static]

static void put_common_inclusion ( DST_flag  flag,
DST_COMMON_INCL attr,
Dwarf_P_Die  die 
) [static]

static void put_compile_unit ( DST_COMPILE_UNIT attr,
Dwarf_P_Die  die 
) [static]

static void put_concrete_subprogram ( DST_INFO_IDX  abstract_idx,
INT32  low_pc,
INT32  high_pc,
Dwarf_P_Die  die 
) [static]

Definition at line 1211 of file cgdwarf.cxx.

References DW_AT_abstract_origin, DW_AT_high_pc, DW_AT_low_pc, and put_reference().

Referenced by Cg_Dwarf_Process_PU().

static void put_const_attribute ( DST_CONST_VALUE  cval,
Dwarf_Half  ref_attr,
Dwarf_P_Die  die 
) [static]

static void put_const_type ( DST_flag  flag,
DST_CONST_TYPE attr,
Dwarf_P_Die  die 
) [static]

Definition at line 1381 of file cgdwarf.cxx.

References DST_CONST_TYPE_type, DW_AT_type, and put_reference().

Referenced by Write_Attributes().

static void put_constant ( DST_flag  flag,
DST_CONSTANT attr,
Dwarf_P_Die  die 
) [static]

static void put_decl ( USRCPOS  decl,
Dwarf_P_Die  die 
) [static]

static void put_dopetype ( DST_INFO_IDX  dope_idx,
DST_flag  flag,
Dwarf_P_Die  die 
) [static]

static void put_entry_point ( DST_flag  flag,
DST_ENTRY_POINT attr,
Dwarf_P_Die  die 
) [static]

static void put_enumeration_type ( DST_flag  flag,
DST_ENUMERATION_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_enumerator ( DST_flag  flag,
DST_ENUMERATOR attr,
Dwarf_P_Die  die 
) [static]

static void put_formal_parameter ( DST_flag  flag,
DST_FORMAL_PARAMETER attr,
Dwarf_P_Die  die 
) [static]

static void put_inheritance ( DST_flag  flag,
DST_INHERITANCE attr,
Dwarf_P_Die  die 
) [static]

static void put_inlined_subroutine ( DST_INLINED_SUBROUTINE attr,
Dwarf_P_Die  die 
) [static]

static void put_label ( DST_flag  flag,
DST_LABEL attr,
Dwarf_P_Die  die 
) [static]

static void put_lexical_block ( DST_flag  flag,
DST_LEXICAL_BLOCK attr,
Dwarf_P_Die  die 
) [static]

static void put_location ( DST_ASSOC_INFO  assoc_info,
INT  offs,
DST_flag  flag,
Dwarf_P_Die  die,
Dwarf_Half  loc_attr 
) [static]

static void put_lower_bound ( DST_flag  flag,
DST_SUBRANGE_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_member ( DST_flag  flag,
DST_MEMBER attr,
Dwarf_P_Die  die 
) [static]

static void put_name ( DST_STR_IDX  str_idx,
Dwarf_P_Die  die,
which_pb  pb_type 
) [static]

static void put_pc_value_symbolic ( Dwarf_Unsigned  pc_attr,
Dwarf_Unsigned  pc_label,
Dwarf_Addr  pc_offset,
Dwarf_P_Die  die 
) [static]

Definition at line 1114 of file cgdwarf.cxx.

References dwarf_add_AT_targ_address_b().

Referenced by put_inlined_subroutine(), and put_lexical_block().

static void put_pointer_type ( DST_flag  flag,
DST_POINTER_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_ptr_to_member_type ( DST_flag  flag,
DST_PTR_TO_MEMBER_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_pubname ( char *  name,
Dwarf_P_Die  die,
which_pb  pb_type 
) [static]

static void put_reference ( DST_INFO_IDX  ref_idx,
Dwarf_Half  ref_attr,
Dwarf_P_Die  die 
) [static]

static void put_reference_type ( DST_flag  flag,
DST_REFERENCE_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_string ( DST_STR_IDX  str_idx,
Dwarf_Half  str_attr,
Dwarf_P_Die  die 
) [static]

static void put_string_type ( DST_flag  flag,
DST_STRING_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_structure_type ( DST_flag  flag,
DST_STRUCTURE_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_subprogram ( DST_flag  flag,
DST_SUBPROGRAM attr,
Dwarf_P_Die  die 
) [static]

Definition at line 674 of file cgdwarf.cxx.

References DST_ATTR_IDX_TO_PTR, DST_first_child(), DST_INFO_attributes, DST_INFO_IDX_TO_PTR, DST_INFO_sibling, DST_INFO_tag, DST_IS_declaration, DST_IS_external, DST_IS_memdef, DST_IS_NULL, DST_IS_prototyped, DST_STR_IDX_TO_PTR, DST_SUBPROGRAM_decl_decl, DST_SUBPROGRAM_decl_inline, DST_SUBPROGRAM_decl_linkage_name, DST_SUBPROGRAM_decl_name, DST_SUBPROGRAM_decl_origin, DST_SUBPROGRAM_decl_type, DST_SUBPROGRAM_decl_virtuality, DST_SUBPROGRAM_decl_vtable_elem_location, DST_SUBPROGRAM_def_clone_origin, DST_SUBPROGRAM_def_decl, DST_SUBPROGRAM_def_inline, DST_SUBPROGRAM_def_linkage_name, DST_SUBPROGRAM_def_name, DST_SUBPROGRAM_def_pubname, DST_SUBPROGRAM_def_specification, DST_SUBPROGRAM_def_st, DST_SUBPROGRAM_def_type, DST_SUBPROGRAM_def_virtuality, DST_SUBPROGRAM_def_vtable_elem_location, DST_VARIABLE_decl_type, DST_VARIABLE_def_name, DW_AT_calling_convention, DW_AT_declaration, DW_AT_external, DW_AT_inline, DW_AT_MIPS_clone_origin, DW_AT_MIPS_has_inlines, DW_AT_MIPS_linkage_name, DW_AT_prototyped, DW_AT_specification, DW_AT_type, DW_AT_virtuality, DW_AT_vtable_elem_location, DW_CC_nocall, DW_INL_declared_inlined, DW_INL_inlined, DW_LANG_Fortran77, DW_LANG_Fortran90, DW_OP_const2u, DW_TAG_variable, DW_VIRTUALITY_none, dwarf_add_AT_location_expr(), dwarf_add_AT_unsigned_const(), dwarf_add_expr_gen(), dwarf_add_pubname(), Dwarf_Language, dwarf_new_expr(), EC_Unimplemented, ErrMsg(), Get_Current_PU, get_ref_die(), Get_ST_From_DST(), pb_funcname, pb_none, pb_pubname, pb_weakname, PU_has_inlines, put_decl(), put_flag, put_name(), put_pubname(), put_reference(), put_string(), ST_name, strlen(), strncasecmp(), and subprogram_def_is_inlined().

Referenced by Write_Attributes().

static void put_subrange_type ( DST_flag  flag,
DST_SUBRANGE_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_subroutine_type ( DST_flag  flag,
DST_SUBROUTINE_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_template_type_param ( DST_flag  flag,
DST_TEMPLATE_TYPE_PARAMETER attr,
Dwarf_P_Die  die 
) [static]

static void put_template_value_param ( DST_flag  flag,
DST_TEMPLATE_VALUE_PARAMETER attr,
Dwarf_P_Die  die 
) [static]

static void put_typedef ( DST_flag  flag,
DST_TYPEDEF attr,
Dwarf_P_Die  die 
) [static]

static void put_union_type ( DST_flag  flag,
DST_UNION_TYPE attr,
Dwarf_P_Die  die 
) [static]

static void put_unspecified_parameters ( DST_flag  flag,
DST_UNSPECIFIED_PARAMETERS attr,
Dwarf_P_Die  die 
) [static]

Definition at line 1359 of file cgdwarf.cxx.

References DST_UNSPECIFIED_PARAMETERS_decl, and put_decl().

Referenced by Write_Attributes().

static void put_variable ( DST_flag  flag,
DST_VARIABLE attr,
Dwarf_P_Die  die 
) [static]

static void put_volatile_type ( DST_flag  flag,
DST_VOLATILE_TYPE attr,
Dwarf_P_Die  die 
) [static]

Definition at line 1388 of file cgdwarf.cxx.

References DST_VOLATILE_TYPE_type, DW_AT_type, and put_reference().

Referenced by Write_Attributes().

static Elf64_Word reloc_offset ( char *  reloc,
BOOL  is_64bit 
) [inline, static]

Definition at line 3046 of file cgdwarf.cxx.

References REL32_offset, and REL_offset.

Referenced by _frvfdpic_add_dyn_reloc(), and Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs().

static Elf64_Word reloc_sym_index ( char *  reloc,
BOOL  is_64bit 
) [inline, static]

Definition at line 3061 of file cgdwarf.cxx.

References REL32_sym, and REL64_sym.

Referenced by Cg_Dwarf_Output_Asm_Bytes_Elf_Relocs().

static void Set_Enclosing_Die ( Dwarf_P_Die  die,
mINT32  level 
) [static]

Definition at line 1984 of file cgdwarf.cxx.

References calloc(), CGD_enclosing_proc_max, NULL, and realloc.

Referenced by Cg_Dwarf_Begin(), and Traverse_DST().

static BOOL subprogram_def_is_inlined ( DST_SUBPROGRAM attr  )  [static]

static void Traverse_DST ( ST PU_st,
DST_IDX  pu_idx 
) [static]

static void Traverse_Extra_DST ( void   )  [static]

static void Traverse_Global_DST ( void   )  [static]

static void Write_Attributes ( DST_DW_tag  tag,
DST_flag  flag,
DST_ATTR_IDX  iattr,
Dwarf_P_Die  die 
) [static]

Definition at line 1824 of file cgdwarf.cxx.

References DST_ATTR_IDX_TO_PTR, DST_IS_artificial, DW_AT_artificial, DW_TAG_array_type, DW_TAG_base_type, DW_TAG_class_type, DW_TAG_common_block, DW_TAG_common_inclusion, DW_TAG_compile_unit, DW_TAG_const_type, DW_TAG_constant, DW_TAG_entry_point, DW_TAG_enumeration_type, DW_TAG_enumerator, DW_TAG_formal_parameter, DW_TAG_imported_declaration, DW_TAG_inheritance, DW_TAG_inlined_subroutine, DW_TAG_label, DW_TAG_lexical_block, DW_TAG_member, DW_TAG_module, DW_TAG_namelist, DW_TAG_namelist_item, DW_TAG_pointer_type, DW_TAG_ptr_to_member_type, DW_TAG_reference_type, DW_TAG_string_type, DW_TAG_structure_type, DW_TAG_subprogram, DW_TAG_subrange_type, DW_TAG_subroutine_type, DW_TAG_template_type_param, DW_TAG_template_value_param, DW_TAG_typedef, DW_TAG_union_type, DW_TAG_unspecified_parameters, DW_TAG_variable, DW_TAG_volatile_type, dwarf_add_die_to_debug(), EC_Unimplemented, ErrMsg(), put_array_type(), put_basetype(), put_class_type(), put_common_block(), put_common_inclusion(), put_compile_unit(), put_const_type(), put_constant(), put_entry_point(), put_enumeration_type(), put_enumerator(), put_flag, put_formal_parameter(), put_inheritance(), put_inlined_subroutine(), put_label(), put_lexical_block(), put_member(), put_pointer_type(), put_ptr_to_member_type(), put_reference_type(), put_string_type(), put_structure_type(), put_subprogram(), put_subrange_type(), put_subroutine_type(), put_template_type_param(), put_template_value_param(), put_typedef(), put_union_type(), put_unspecified_parameters(), put_variable(), and put_volatile_type().

Referenced by Cg_Dwarf_Begin(), and preorder_visit().


Variable Documentation

Dwarf_P_Die* CGD_enclosing_proc = NULL [static]

Definition at line 127 of file cgdwarf.cxx.

Definition at line 128 of file cgdwarf.cxx.

Referenced by Set_Enclosing_Die().

DST_INFO_IDX cu_idx [static]

Definition at line 121 of file cgdwarf.cxx.

Referenced by DST_get_compile_unit(), DST_mk_compile_unit(), and merge_subprograms().

INT cur_file_index = 0 [static]

Definition at line 2647 of file cgdwarf.cxx.

Referenced by IR_Dwarf_Gen_File_Table(), print_source(), and Print_Src_Line().

BOOL Disable_DST = FALSE [static]

Definition at line 120 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Begin(), Cg_Dwarf_Finish(), and Cg_Dwarf_Process_PU().

Definition at line 118 of file cgdwarf.cxx.

Definition at line 119 of file cgdwarf.cxx.

Referenced by Build_Fde_For_Proc().

file_info* file_table [static]

Definition at line 2645 of file cgdwarf.cxx.

Referenced by encap_write_object_contents(), file_hash_lookup(), and tlink_init().

Definition at line 3118 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Write_Assembly_From_Elf().

Definition at line 3116 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Write_Assembly_From_Elf().

Definition at line 3119 of file cgdwarf.cxx.

Definition at line 3120 of file cgdwarf.cxx.

Referenced by Cg_Dwarf_Write_Assembly_From_Symbolic_Relocs().

Definition at line 3117 of file cgdwarf.cxx.

Referenced by match_scndx().

scn_handle** vsp_buffers

Definition at line 3139 of file cgdwarf.cxx.

Definition at line 3133 of file cgdwarf.cxx.

Definition at line 3136 of file cgdwarf.cxx.

Definition at line 3124 of file cgdwarf.cxx.


Generated on Wed Apr 8 14:25:44 2009 for Open64 by  doxygen 1.5.6