Back to index

cell-binutils  2.17cvs20070401
Functions | Variables
dw2gencfi.h File Reference
#include "elf/dwarf2.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void cfi_finish (void)
void cfi_new_fde (struct symbol *)
void cfi_end_fde (struct symbol *)
void cfi_set_return_column (unsigned)
void cfi_add_advance_loc (struct symbol *)
void cfi_add_CFA_offset (unsigned, offsetT)
void cfi_add_CFA_def_cfa (unsigned, offsetT)
void cfi_add_CFA_register (unsigned, unsigned)
void cfi_add_CFA_def_cfa_register (unsigned)
void cfi_add_CFA_def_cfa_offset (offsetT)
void cfi_add_CFA_restore (unsigned)
void cfi_add_CFA_undefined (unsigned)
void cfi_add_CFA_same_value (unsigned)
void cfi_add_CFA_remember_state (void)
void cfi_add_CFA_restore_state (void)

Variables

const pseudo_typeS cfi_pseudo_table []

Function Documentation

Definition at line 282 of file dw2gencfi.c.

{
  cfi_add_CFA_insn_reg_offset (DW_CFA_def_cfa, regno, offset);
  frchain_now->frch_cfi_data->cur_cfa_offset = offset;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 307 of file dw2gencfi.c.

{
  cfi_add_CFA_insn_offset (DW_CFA_def_cfa_offset, offset);
  frchain_now->frch_cfi_data->cur_cfa_offset = offset;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 299 of file dw2gencfi.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void cfi_add_CFA_offset ( unsigned  ,
offsetT   
)

Definition at line 266 of file dw2gencfi.c.

{
  unsigned int abs_data_align;

  assert (DWARF2_CIE_DATA_ALIGNMENT != 0);
  cfi_add_CFA_insn_reg_offset (DW_CFA_offset, regno, offset);

  abs_data_align = (DWARF2_CIE_DATA_ALIGNMENT < 0
                  ? -DWARF2_CIE_DATA_ALIGNMENT : DWARF2_CIE_DATA_ALIGNMENT);
  if (offset % abs_data_align)
    as_bad (_("register save offset not a multiple of %u"), abs_data_align);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 291 of file dw2gencfi.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void cfi_add_CFA_remember_state ( void  )

Definition at line 332 of file dw2gencfi.c.

{
  struct cfa_save_data *p;

  cfi_add_CFA_insn (DW_CFA_remember_state);

  p = xmalloc (sizeof (*p));
  p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
  p->next = frchain_now->frch_cfi_data->cfa_save_stack;
  frchain_now->frch_cfi_data->cfa_save_stack = p;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 314 of file dw2gencfi.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void cfi_add_CFA_restore_state ( void  )

Definition at line 345 of file dw2gencfi.c.

{
  struct cfa_save_data *p;

  cfi_add_CFA_insn (DW_CFA_restore_state);

  p = frchain_now->frch_cfi_data->cfa_save_stack;
  if (p)
    {
      frchain_now->frch_cfi_data->cur_cfa_offset = p->cfa_offset;
      frchain_now->frch_cfi_data->cfa_save_stack = p->next;
      free (p);
    }
  else
    as_bad (_("CFI state restore without previous remember"));
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 326 of file dw2gencfi.c.

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 320 of file dw2gencfi.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void cfi_end_fde ( struct symbol )
void cfi_finish ( void  )

Definition at line 1312 of file dw2gencfi.c.

{
  segT cfi_seg;
  struct fde_entry *fde;
  int save_flag_traditional_format;

  if (all_fde_data == 0)
    return;

  /* Open .eh_frame section.  */
  cfi_seg = subseg_new (".eh_frame", 0);
  bfd_set_section_flags (stdoutput, cfi_seg,
                      SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_READONLY);
  subseg_set (cfi_seg, 0);
  record_alignment (cfi_seg, EH_FRAME_ALIGNMENT);

  /* Make sure check_eh_frame doesn't do anything with our output.  */
  save_flag_traditional_format = flag_traditional_format;
  flag_traditional_format = 1;

  for (fde = all_fde_data; fde ; fde = fde->next)
    {
      struct cfi_insn_data *first;
      struct cie_entry *cie;

      if (fde->end_address == NULL)
       {
         as_bad (_("open CFI at the end of file; missing .cfi_endproc directive"));
         fde->end_address = fde->start_address;
       }

      cie = select_cie_for_fde (fde, &first);
      output_fde (fde, cie, first, fde->next == NULL ? EH_FRAME_ALIGNMENT : 2);
    }

  flag_traditional_format = save_flag_traditional_format;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void cfi_new_fde ( struct symbol )

Definition at line 196 of file dw2gencfi.c.

{
  frchain_now->frch_cfi_data->cur_fde_data->return_column = regno;
}

Here is the caller graph for this function:


Variable Documentation

const pseudo_typeS cfi_pseudo_table[]

Definition at line 379 of file dw2gencfi.c.