osprey/kg++fe/gnu/unwind-dw2.c File Reference

#include "tconfig.h"
#include "tsystem.h"
#include "dwarf2.h"
#include "unwind.h"
#include "unwind-pe.h"
#include "unwind-dw2-fde.h"
#include "gthr.h"
#include "unwind.inc"

Include dependency graph for unwind-dw2.c:

Go to the source code of this file.

Data Types

type  _Unwind_Context
type  _Unwind_FrameState
type  _Unwind_FrameState::frame_state_reg_info
union  unaligned
type  frame_state
type  frame_state_296

Defines

#define STACK_GROWS_DOWNWARD   0
#define DWARF_FRAME_REGISTERS   FIRST_PSEUDO_REGISTER
#define PRE_GCC3_DWARF_FRAME_REGISTERS   DWARF_FRAME_REGISTERS
#define MD_FROB_UPDATE_CONTEXT(CTX, FS)   do { } while (0)
#define uw_init_context(CONTEXT)
#define uw_install_context(CURRENT, TARGET)

Functions/Subroutines

static voidread_pointer (const void *p)
static int read_1u (const void *p)
static int read_1s (const void *p)
static int read_2u (const void *p)
static int read_2s (const void *p)
static unsigned int read_4u (const void *p)
static int read_4s (const void *p)
static unsigned long read_8u (const void *p)
static unsigned long read_8s (const void *p)
_Unwind_Word _Unwind_GetGR (struct _Unwind_Context *context, int index)
_Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *context)
void _Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
_Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *context)
void _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
void_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
_Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *context)
void_Unwind_FindEnclosingFunction (void *pc)
_Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *context)
_Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *context)
static const unsigned char * extract_cie_info (struct dwarf_cie *cie, struct _Unwind_Context *context, _Unwind_FrameState *fs)
static _Unwind_Word execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end, struct _Unwind_Context *context, _Unwind_Word initial)
static void execute_cfa_program (const unsigned char *insn_ptr, const unsigned char *insn_end, struct _Unwind_Context *context, _Unwind_FrameState *fs)
static _Unwind_Reason_Code uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
struct frame_state__frame_state_for (void *pc_target, struct frame_state *state_in)
static void uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs)
static void uw_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
static void uw_init_context_1 (struct _Unwind_Context *context, void *outer_cfa, void *outer_ra)
static void init_dwarf_reg_size_table (void)
static long uw_install_context_1 (struct _Unwind_Context *current, struct _Unwind_Context *target)
static _Unwind_Ptr uw_identify_context (struct _Unwind_Context *context)

Variables

static unsigned char dwarf_reg_size_table [DWARF_FRAME_REGISTERS]
union unaligned packed


Define Documentation

#define DWARF_FRAME_REGISTERS   FIRST_PSEUDO_REGISTER

Definition at line 43 of file unwind-dw2.c.

#define MD_FROB_UPDATE_CONTEXT ( CTX,
FS   )     do { } while (0)

Definition at line 53 of file unwind-dw2.c.

Referenced by uw_update_context_1().

#define PRE_GCC3_DWARF_FRAME_REGISTERS   DWARF_FRAME_REGISTERS

Definition at line 48 of file unwind-dw2.c.

#define STACK_GROWS_DOWNWARD   0

Definition at line 34 of file unwind-dw2.c.

#define uw_init_context ( CONTEXT   ) 

Value:

do                     \
    {                    \
      /* Do any necessary initialization to access arbitrary stack frames. \
   On the SPARC, this means flushing the register windows.  */     \
      __builtin_unwind_init ();              \
      uw_init_context_1 (CONTEXT, __builtin_dwarf_cfa (),      \
       __builtin_return_address (0));        \
    }                    \
  while (0)

Definition at line 1297 of file unwind-dw2.c.

#define uw_install_context ( CURRENT,
TARGET   ) 

Value:

do                   \
    {                  \
      long offset = uw_install_context_1 ((CURRENT), (TARGET));    \
      void *handler = __builtin_frob_return_addr ((TARGET)->ra);   \
      __builtin_eh_return (offset, handler);         \
    }                  \
  while (0)

Definition at line 1341 of file unwind-dw2.c.


Function Documentation

struct frame_state * __frame_state_for ( void pc_target,
struct frame_state state_in 
) [read]

void* _Unwind_FindEnclosingFunction ( void pc  ) 

Definition at line 219 of file unwind-dw2.c.

References _Unwind_Find_FDE, dwarf_eh_bases::func, and NULL.

_Unwind_Word _Unwind_GetCFA ( struct _Unwind_Context context  ) 

Definition at line 177 of file unwind-dw2.c.

References _Unwind_Context::cfa.

_Unwind_Ptr _Unwind_GetDataRelBase ( struct _Unwind_Context context  ) 

Definition at line 231 of file unwind-dw2.c.

Referenced by base_of_encoded_value().

_Unwind_Word _Unwind_GetGR ( struct _Unwind_Context context,
int  index 
) [inline]

Definition at line 168 of file unwind-dw2.c.

References _Unwind_Context::reg.

_Unwind_Ptr _Unwind_GetIP ( struct _Unwind_Context context  )  [inline]

Definition at line 193 of file unwind-dw2.c.

References _Unwind_Context::ra.

void* _Unwind_GetLanguageSpecificData ( struct _Unwind_Context context  ) 

Definition at line 207 of file unwind-dw2.c.

References _Unwind_Context::lsda.

_Unwind_Ptr _Unwind_GetRegionStart ( struct _Unwind_Context context  ) 

Definition at line 213 of file unwind-dw2.c.

References _Unwind_Context::bases, and dwarf_eh_bases::func.

_Unwind_Ptr _Unwind_GetTextRelBase ( struct _Unwind_Context context  ) 

Definition at line 237 of file unwind-dw2.c.

Referenced by base_of_encoded_value().

void _Unwind_SetGR ( struct _Unwind_Context context,
int  index,
_Unwind_Word  val 
) [inline]

Definition at line 185 of file unwind-dw2.c.

References _Unwind_Context::reg.

void _Unwind_SetIP ( struct _Unwind_Context context,
_Unwind_Ptr  val 
) [inline]

Definition at line 201 of file unwind-dw2.c.

References _Unwind_Context::ra.

static void execute_cfa_program ( const unsigned char *  insn_ptr,
const unsigned char *  insn_end,
struct _Unwind_Context context,
_Unwind_FrameState fs 
) [static]

static _Unwind_Word execute_stack_op ( const unsigned char *  op_ptr,
const unsigned char *  op_end,
struct _Unwind_Context context,
_Unwind_Word  initial 
) [static]

Definition at line 323 of file unwind-dw2.c.

References _Unwind_GetGR(), abort, DW_OP_abs, DW_OP_addr, DW_OP_and, DW_OP_bra, DW_OP_breg0, DW_OP_breg1, DW_OP_breg10, DW_OP_breg11, DW_OP_breg12, DW_OP_breg13, DW_OP_breg14, DW_OP_breg15, DW_OP_breg16, DW_OP_breg17, DW_OP_breg18, DW_OP_breg19, DW_OP_breg2, DW_OP_breg20, DW_OP_breg21, DW_OP_breg22, DW_OP_breg23, DW_OP_breg24, DW_OP_breg25, DW_OP_breg26, DW_OP_breg27, DW_OP_breg28, DW_OP_breg29, DW_OP_breg3, DW_OP_breg30, DW_OP_breg31, DW_OP_breg4, DW_OP_breg5, DW_OP_breg6, DW_OP_breg7, DW_OP_breg8, DW_OP_breg9, DW_OP_bregx, DW_OP_const1s, DW_OP_const1u, DW_OP_const2s, DW_OP_const2u, DW_OP_const4s, DW_OP_const4u, DW_OP_const8s, DW_OP_const8u, DW_OP_consts, DW_OP_constu, DW_OP_deref, DW_OP_deref_size, DW_OP_div, DW_OP_drop, DW_OP_dup, DW_OP_eq, DW_OP_ge, DW_OP_gt, DW_OP_le, DW_OP_lit0, DW_OP_lit1, DW_OP_lit10, DW_OP_lit11, DW_OP_lit12, DW_OP_lit13, DW_OP_lit14, DW_OP_lit15, DW_OP_lit16, DW_OP_lit17, DW_OP_lit18, DW_OP_lit19, DW_OP_lit2, DW_OP_lit20, DW_OP_lit21, DW_OP_lit22, DW_OP_lit23, DW_OP_lit24, DW_OP_lit25, DW_OP_lit26, DW_OP_lit27, DW_OP_lit28, DW_OP_lit29, DW_OP_lit3, DW_OP_lit30, DW_OP_lit31, DW_OP_lit4, DW_OP_lit5, DW_OP_lit6, DW_OP_lit7, DW_OP_lit8, DW_OP_lit9, DW_OP_lt, DW_OP_minus, DW_OP_mod, DW_OP_mul, DW_OP_ne, DW_OP_neg, DW_OP_nop, DW_OP_not, DW_OP_or, DW_OP_over, DW_OP_pick, DW_OP_plus, DW_OP_plus_uconst, DW_OP_reg0, DW_OP_reg1, DW_OP_reg10, DW_OP_reg11, DW_OP_reg12, DW_OP_reg13, DW_OP_reg14, DW_OP_reg15, DW_OP_reg16, DW_OP_reg17, DW_OP_reg18, DW_OP_reg19, DW_OP_reg2, DW_OP_reg20, DW_OP_reg21, DW_OP_reg22, DW_OP_reg23, DW_OP_reg24, DW_OP_reg25, DW_OP_reg26, DW_OP_reg27, DW_OP_reg28, DW_OP_reg29, DW_OP_reg3, DW_OP_reg30, DW_OP_reg31, DW_OP_reg4, DW_OP_reg5, DW_OP_reg6, DW_OP_reg7, DW_OP_reg8, DW_OP_reg9, DW_OP_regx, DW_OP_rot, DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_skip, DW_OP_xor, first, offset, ptr, read_1s(), read_1u(), read_2s(), read_2u(), read_4s(), read_4u(), read_8s(), read_8u(), read_pointer(), read_sleb128(), read_uleb128(), result, second(), stack, t1, t2, and t3.

Referenced by uw_update_context_1().

static const unsigned char* extract_cie_info ( struct dwarf_cie cie,
struct _Unwind_Context context,
_Unwind_FrameState fs 
) [static]

static void init_dwarf_reg_size_table ( void   )  [inline, static]

Definition at line 1351 of file unwind-dw2.c.

References dwarf_reg_size_table.

Referenced by uw_init_context_1(), and uw_install_context_1().

static int read_1s ( const void p  )  [inline, static]

Definition at line 145 of file unwind-dw2.c.

Referenced by execute_stack_op().

static int read_1u ( const void p  )  [inline, static]

Definition at line 142 of file unwind-dw2.c.

Referenced by execute_cfa_program(), and execute_stack_op().

static int read_2s ( const void p  )  [inline, static]

Definition at line 151 of file unwind-dw2.c.

References up.

Referenced by execute_stack_op().

static int read_2u ( const void p  )  [inline, static]

Definition at line 148 of file unwind-dw2.c.

References up.

Referenced by execute_cfa_program(), and execute_stack_op().

static int read_4s ( const void p  )  [inline, static]

Definition at line 157 of file unwind-dw2.c.

References up.

Referenced by execute_stack_op().

static unsigned int read_4u ( const void p  )  [inline, static]

Definition at line 154 of file unwind-dw2.c.

References up.

Referenced by execute_cfa_program(), and execute_stack_op().

static unsigned long read_8s ( const void p  )  [inline, static]

Definition at line 163 of file unwind-dw2.c.

References up.

Referenced by execute_stack_op().

static unsigned long read_8u ( const void p  )  [inline, static]

Definition at line 160 of file unwind-dw2.c.

References up.

Referenced by execute_stack_op().

static void* read_pointer ( const void p  )  [inline, static]

Definition at line 139 of file unwind-dw2.c.

References unaligned::p, and up.

Referenced by execute_stack_op(), and extract_cie_info().

static _Unwind_Reason_Code uw_frame_state_for ( struct _Unwind_Context context,
_Unwind_FrameState fs 
) [static]

static _Unwind_Ptr uw_identify_context ( struct _Unwind_Context context  )  [inline, static]

Definition at line 1405 of file unwind-dw2.c.

References _Unwind_GetIP.

static void uw_init_context_1 ( struct _Unwind_Context context,
void outer_cfa,
void outer_ra 
) [static]

static long uw_install_context_1 ( struct _Unwind_Context current,
struct _Unwind_Context target 
) [static]

static void uw_update_context ( struct _Unwind_Context context,
_Unwind_FrameState fs 
) [static]

static void uw_update_context_1 ( struct _Unwind_Context context,
_Unwind_FrameState fs 
) [static]


Variable Documentation

unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS] [static]


Generated on Wed Apr 8 15:47:50 2009 for Open64 by  doxygen 1.5.6