#include "tconfig.h"#include "tsystem.h"#include "unwind.h"#include "unwind-ia64.h"#include "ia64intrin.h"#include "unwind.inc"

Go to the source code of this file.
| #define MASK_FOR | ( | X | ) | ((2U << (SIZE (X) - 1)) - 1) |
Definition at line 278 of file unwind-ia64.c.
Definition at line 242 of file unwind-ia64.c.
Definition at line 279 of file unwind-ia64.c.
Referenced by free_label_state(), and free_reg_state().
Definition at line 277 of file unwind-ia64.c.
Referenced by bfd_h8_disassemble(), extract_immediate(), print_one_arg(), and REGION_INFO_MGR::REGION_INFO_MGR().
| #define UNW_DEC_BAD_CODE | ( | code | ) | abort (); |
Definition at line 934 of file unwind-ia64.c.
Referenced by unw_decode_b3_x4(), unw_decode_p2_p5(), and unw_decode_p7_p10().
Definition at line 965 of file unwind-ia64.c.
Referenced by unw_decode_b1(), and unw_decode_b3_x4().
Definition at line 964 of file unwind-ia64.c.
Referenced by unw_decode_b2(), and unw_decode_b3_x4().
Definition at line 966 of file unwind-ia64.c.
Referenced by unw_decode_b1(), and unw_decode_b3_x4().
| #define UNW_FLAG_EHANDLER | ( | x | ) | ((x) & 0x0000000100000000L) |
| #define UNW_FLAG_MASK 0x0000ffff00000000 |
Definition at line 45 of file unwind-ia64.c.
| #define UNW_FLAG_OSMASK 0x0000f00000000000 |
Definition at line 46 of file unwind-ia64.c.
| #define UNW_FLAG_UHANDLER | ( | x | ) | ((x) & 0x0000000200000000L) |
| #define UNW_LENGTH | ( | x | ) | ((x) & 0x00000000ffffffffL) |
| #define UNW_VER | ( | x | ) | ((x) >> 48) |
Definition at line 44 of file unwind-ia64.c.
| #define UNW_WHEN_NEVER 0x7fffffff |
Definition at line 119 of file unwind-ia64.c.
Referenced by desc_prologue(), set_reg(), and uw_frame_state_for().
| #define uw_init_context | ( | CONTEXT | ) |
Value:
do { \ /* ??? There is a whole lot o code in uw_install_context that \ tries to avoid spilling the entire machine state here. We \ should try to make that work again. */ \ __builtin_unwind_init(); \ uw_init_context_1 (CONTEXT, __builtin_ia64_bsp ()); \ } while (0)
Definition at line 1960 of file unwind-ia64.c.
| typedef struct unw_state_record _Unwind_FrameState |
| typedef unsigned char*(* unw_decoder)(unsigned char *, unsigned char, void *) |
Definition at line 1402 of file unwind-ia64.c.
Definition at line 230 of file unwind-ia64.c.
Definition at line 51 of file unwind-ia64.c.
| enum unw_nat_type |
Definition at line 166 of file unwind-ia64.c.
| enum unw_register_index |
Definition at line 65 of file unwind-ia64.c.
| enum unw_where |
Definition at line 104 of file unwind-ia64.c.
| static void __attribute__ | ( | (noreturn) | ) | [static] |
Definition at line 1995 of file unwind-ia64.c.
References i, ia64_rse_skip_regs(), L, long, offsetof, pr, and unw_access_gr().
| static enum unw_register_index __attribute__ | ( | (const) | ) | [static] |
Definition at line 435 of file unwind-ia64.c.
References abort, UNW_REG_B1, UNW_REG_BSP, UNW_REG_BSPSTORE, UNW_REG_F16, UNW_REG_F2, UNW_REG_FPSR, UNW_REG_LC, UNW_REG_PFS, UNW_REG_PR, UNW_REG_PRI_UNAT_GR, UNW_REG_PRI_UNAT_MEM, UNW_REG_PSP, UNW_REG_R4, UNW_REG_RNAT, UNW_REG_RP, and UNW_REG_UNAT.
Definition at line 1646 of file unwind-ia64.c.
| _Unwind_Word _Unwind_GetCFA | ( | struct _Unwind_Context * | context | ) |
Definition at line 1663 of file unwind-ia64.c.
Referenced by _Unwind_fallback_frame_state_for(), and interpret_libc().
| _Unwind_Word _Unwind_GetGR | ( | struct _Unwind_Context * | context, | |
| int | index | |||
| ) |
Definition at line 1587 of file unwind-ia64.c.
| _Unwind_Ptr _Unwind_GetIP | ( | struct _Unwind_Context * | context | ) | [inline] |
Definition at line 1620 of file unwind-ia64.c.
| void* _Unwind_GetLanguageSpecificData | ( | struct _Unwind_Context * | context | ) |
Definition at line 1634 of file unwind-ia64.c.
| _Unwind_Ptr _Unwind_GetRegionStart | ( | struct _Unwind_Context * | context | ) |
Definition at line 1640 of file unwind-ia64.c.
| void _Unwind_SetGR | ( | struct _Unwind_Context * | context, | |
| int | index, | |||
| _Unwind_Word | val | |||
| ) |
Definition at line 1605 of file unwind-ia64.c.
| void _Unwind_SetIP | ( | struct _Unwind_Context * | context, | |
| _Unwind_Ptr | val | |||
| ) | [inline] |
Definition at line 1628 of file unwind-ia64.c.
| static struct unw_labeled_state* alloc_label_state | ( | void | ) | [static, read] |
Definition at line 328 of file unwind-ia64.c.
References atomic_alloc(), emergency_labeled_state, emergency_labeled_state_free, malloc, and n.
Referenced by desc_label_state().
| static struct unw_reg_state* alloc_reg_state | ( | void | ) | [static, read] |
Definition at line 295 of file unwind-ia64.c.
References atomic_alloc(), emergency_reg_state, emergency_reg_state_free, malloc, and n.
Referenced by dup_state_stack(), and push().
| static void alloc_spill_area | ( | unsigned long * | offp, | |
| unsigned long | regsize, | |||
| struct unw_reg_info * | lo, | |||
| struct unw_reg_info * | hi | |||
| ) | [static] |
Definition at line 471 of file unwind-ia64.c.
References UNW_WHERE_PSPREL, UNW_WHERE_SPILL_HOME, unw_reg_info::val, and unw_reg_info::where.
Referenced by finish_prologue().
| static int atomic_alloc | ( | unsigned int * | mask | ) | [inline, static] |
Definition at line 249 of file unwind-ia64.c.
References __sync_val_compare_and_swap, and ret.
Referenced by alloc_label_state(), and alloc_reg_state().
| static void atomic_free | ( | unsigned int * | mask, | |
| int | bit | |||
| ) | [inline, static] |
Definition at line 271 of file unwind-ia64.c.
References __sync_xor_and_fetch.
Referenced by free_label_state(), and free_reg_state().
| static void desc_abi | ( | unsigned char abi | __attribute__(unused), | |
| unsigned char context | __attribute__(unused), | |||
| struct unw_state_record *sr | __attribute__(unused) | |||
| ) | [inline, static] |
Definition at line 622 of file unwind-ia64.c.
| static void desc_br_gr | ( | unsigned char | brmask, | |
| unsigned char | gr, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 630 of file unwind-ia64.c.
References unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_B1, and UNW_WHERE_GR.
| static void desc_br_mem | ( | unsigned char | brmask, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 645 of file unwind-ia64.c.
References unw_state_record::any_spills, unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_B1, and UNW_WHERE_SPILL_HOME.
| static void desc_copy_state | ( | unw_word | label, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 817 of file unwind-ia64.c.
References abort, unw_state_record::curr, dup_state_stack(), free_state_stack(), unw_labeled_state::label, unw_state_record::labeled_states, memcpy, unw_labeled_state::next, unw_reg_state::next, and unw_labeled_state::saved_state.
| static void desc_epilogue | ( | unw_word | t, | |
| unw_word | ecount, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 810 of file unwind-ia64.c.
References unw_state_record::epilogue_count, unw_state_record::epilogue_start, unw_state_record::region_len, and unw_state_record::region_start.
| static void desc_fr_mem | ( | unsigned char | frmask, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 691 of file unwind-ia64.c.
References unw_state_record::any_spills, unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_F2, and UNW_WHERE_SPILL_HOME.
| static void desc_frgr_mem | ( | unsigned char | grmask, | |
| unw_word | frmask, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 662 of file unwind-ia64.c.
References unw_state_record::any_spills, base, unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_F16, UNW_REG_F2, UNW_REG_R4, and UNW_WHERE_SPILL_HOME.
| static void desc_gr_gr | ( | unsigned char | grmask, | |
| unsigned char | gr, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 708 of file unwind-ia64.c.
References unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_R4, and UNW_WHERE_GR.
| static void desc_gr_mem | ( | unsigned char | grmask, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 723 of file unwind-ia64.c.
References unw_state_record::any_spills, unw_state_record::curr, i, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_R4, and UNW_WHERE_SPILL_HOME.
| static int desc_is_active | ( | unsigned char | qp, | |
| unw_word | t, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 853 of file unwind-ia64.c.
References MIN, unw_state_record::pr_mask, unw_state_record::pr_val, unw_state_record::region_len, unw_state_record::region_start, and unw_state_record::when_target.
Referenced by desc_restore_p(), desc_spill_psprel_p(), desc_spill_reg_p(), and desc_spill_sprel_p().
| static void desc_label_state | ( | unw_word | label, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 835 of file unwind-ia64.c.
References alloc_label_state(), unw_state_record::curr, dup_state_stack(), unw_labeled_state::label, unw_state_record::labeled_states, memcpy, unw_labeled_state::next, unw_reg_state::next, and unw_labeled_state::saved_state.
| static void desc_mem_stack_f | ( | unw_word | t, | |
| unw_word | size, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 740 of file unwind-ia64.c.
References unw_state_record::curr, MIN, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), UNW_REG_PSP, and UNW_WHERE_NONE.
| static void desc_mem_stack_v | ( | unw_word | t, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 747 of file unwind-ia64.c.
References unw_state_record::curr, MIN, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_REG_PSP, and unw_reg_info::when.
| static void desc_prologue | ( | int | body, | |
| unw_word | rlen, | |||
| unsigned char | mask, | |||
| unsigned char | grsave, | |||
| struct unw_state_record * | sr | |||
| ) | [static] |
Definition at line 572 of file unwind-ia64.c.
References unw_state_record::any_spills, unw_state_record::curr, unw_state_record::done, unw_state_record::epilogue_count, unw_state_record::epilogue_start, finish_prologue(), unw_state_record::first_region, unw_state_record::gr_save_loc, i, unw_state_record::imask, unw_state_record::in_body, pop(), push(), unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, save_order, set_reg(), unw_state_record::spill_offset, UNW_WHEN_NEVER, UNW_WHERE_GR, and unw_state_record::when_target.
| static void desc_reg_gr | ( | unsigned char | reg, | |
| unsigned char | dst, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 754 of file unwind-ia64.c.
References unw_state_record::curr, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), and UNW_WHERE_GR.
| static void desc_reg_psprel | ( | unsigned char | reg, | |
| unw_word | pspoff, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 761 of file unwind-ia64.c.
References unw_state_record::curr, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), and UNW_WHERE_PSPREL.
| static void desc_reg_sprel | ( | unsigned char | reg, | |
| unw_word | spoff, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 770 of file unwind-ia64.c.
References unw_state_record::curr, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, set_reg(), and UNW_WHERE_SPREL.
| static void desc_reg_when | ( | unsigned char | regnum, | |
| unw_word | t, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 784 of file unwind-ia64.c.
References unw_state_record::curr, MIN, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_WHERE_GR_SAVE, UNW_WHERE_NONE, unw_reg_info::when, and unw_reg_info::where.
| static void desc_restore_p | ( | unsigned char | qp, | |
| unw_word | t, | |||
| unsigned char | abreg, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 867 of file unwind-ia64.c.
References unw_state_record::curr, desc_is_active(), MIN, r, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_WHERE_NONE, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
| static void desc_rp_br | ( | unsigned char | dst, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
| static void desc_spill_base | ( | unw_word | pspoff, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
| static unsigned char* desc_spill_mask | ( | unsigned char * | imaskp, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 800 of file unwind-ia64.c.
References unw_state_record::imask, and unw_state_record::region_len.
| static void desc_spill_psprel_p | ( | unsigned char | qp, | |
| unw_word | t, | |||
| unsigned char | abreg, | |||
| unw_word | pspoff, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 904 of file unwind-ia64.c.
References unw_state_record::curr, desc_is_active(), MIN, r, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_WHERE_PSPREL, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
| static void desc_spill_reg_p | ( | unsigned char | qp, | |
| unw_word | t, | |||
| unsigned char | abreg, | |||
| unsigned char | x, | |||
| unsigned char | ytreg, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 882 of file unwind-ia64.c.
References unw_state_record::curr, desc_is_active(), MIN, r, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_WHERE_BR, UNW_WHERE_FR, UNW_WHERE_GR, unw_reg_info::val, unw_reg_info::when, unw_reg_info::where, and where.
| static void desc_spill_sprel_p | ( | unsigned char | qp, | |
| unw_word | t, | |||
| unsigned char | abreg, | |||
| unw_word | spoff, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 919 of file unwind-ia64.c.
References unw_state_record::curr, desc_is_active(), MIN, r, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, UNW_WHERE_SPREL, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
| static struct unw_reg_state* dup_state_stack | ( | struct unw_reg_state * | rs | ) | [static, read] |
Definition at line 384 of file unwind-ia64.c.
References alloc_reg_state(), copy, first, memcpy, unw_reg_state::next, NULL, and prev.
Referenced by desc_copy_state(), and desc_label_state().
| static void finish_prologue | ( | struct unw_state_record * | sr | ) | [static] |
Definition at line 507 of file unwind-ia64.c.
References alloc_spill_area(), unw_state_record::any_spills, unw_state_record::curr, unw_state_record::gr_save_loc, i, unw_state_record::imask, int, unw_reg_state::reg, unw_state_record::region_len, unw_state_record::region_start, regs, save_order, spill_next_when(), unw_state_record::spill_offset, UNW_REG_B1, UNW_REG_B5, UNW_REG_F2, UNW_REG_F31, UNW_REG_R4, UNW_REG_R7, UNW_WHERE_GR, UNW_WHERE_GR_SAVE, unw_reg_info::val, and unw_reg_info::where.
Referenced by desc_prologue().
| static void free_label_state | ( | struct unw_labeled_state * | ls | ) | [static] |
Definition at line 348 of file unwind-ia64.c.
References atomic_free(), emergency_labeled_state, emergency_labeled_state_free, free(), and PTR_IN.
Referenced by free_label_states().
| static void free_label_states | ( | struct unw_labeled_state * | ls | ) | [static] |
Definition at line 420 of file unwind-ia64.c.
References free_label_state(), free_state_stack(), unw_labeled_state::next, next, and unw_labeled_state::saved_state.
Referenced by uw_frame_state_for().
| static void free_reg_state | ( | struct unw_reg_state * | rs | ) | [static] |
Definition at line 315 of file unwind-ia64.c.
References atomic_free(), emergency_reg_state, emergency_reg_state_free, free(), and PTR_IN.
Referenced by free_state_stack(), and pop().
| static void free_state_stack | ( | struct unw_reg_state * | rs | ) | [static] |
Definition at line 405 of file unwind-ia64.c.
References free_reg_state(), next, unw_reg_state::next, NULL, and p.
Referenced by desc_copy_state(), free_label_states(), and uw_frame_state_for().
Definition at line 1482 of file unwind-ia64.c.
References ia64_rse_slot_num().
Referenced by __attribute__(), unw_access_gr(), uw_update_context(), and uw_update_reg_address().
Definition at line 1448 of file unwind-ia64.c.
Referenced by ia64_rse_is_rnat_slot(), ia64_rse_num_regs(), ia64_rse_skip_regs(), and unw_access_gr().
| static void pop | ( | struct unw_state_record * | sr | ) | [static] |
Definition at line 371 of file unwind-ia64.c.
References abort, unw_state_record::curr, free_reg_state(), memcpy, and unw_reg_state::next.
| static void push | ( | struct unw_state_record * | sr | ) | [static] |
Definition at line 363 of file unwind-ia64.c.
References alloc_reg_state(), unw_state_record::curr, memcpy, and unw_reg_state::next.
| static void set_reg | ( | struct unw_reg_info * | reg, | |
| enum unw_where | where, | |||
| int | when, | |||
| unsigned long | val | |||
| ) | [static] |
Definition at line 461 of file unwind-ia64.c.
References UNW_WHEN_NEVER, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
Referenced by desc_br_gr(), desc_br_mem(), desc_fr_mem(), desc_frgr_mem(), desc_gr_gr(), desc_gr_mem(), desc_mem_stack_f(), desc_prologue(), desc_reg_gr(), desc_reg_psprel(), desc_reg_sprel(), iq2000_fill_delay_slot(), and mips_fill_delay_slot().
| static void spill_next_when | ( | struct unw_reg_info ** | regp, | |
| struct unw_reg_info * | lim, | |||
| unw_word | t | |||
| ) | [inline, static] |
Definition at line 488 of file unwind-ia64.c.
References abort, UNW_WHERE_SPILL_HOME, unw_reg_info::when, and unw_reg_info::where.
Referenced by finish_prologue().
| static void unw_access_gr | ( | struct _Unwind_Context * | info, | |
| int | regnum, | |||
| unsigned long * | val, | |||
| char * | nat, | |||
| int | write | |||
| ) | [static] |
Definition at line 1495 of file unwind-ia64.c.
References abort, addr(), _Unwind_Context::bsp, ia64_rse_rnat_addr(), ia64_rse_skip_regs(), ia64_rse_slot_num(), _Unwind_Context::ireg, _Unwind_Context::unw_ireg::loc, long, _Unwind_Context::regstk_top, _Unwind_Context::rnat, UNW_NAT_MEMSTK, UNW_NAT_NONE, UNW_NAT_REGSTK, and UNW_NAT_VAL.
Referenced by __attribute__(), _Unwind_GetGR(), and _Unwind_SetGR().
| static unsigned char* unw_decode | ( | unsigned char * | dp, | |
| int | inside_body, | |||
| void * | arg | |||
| ) | [inline, static] |
| static unsigned char* unw_decode_b1 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1350 of file unwind-ia64.c.
References B1, UNW_DEC_COPY_STATE, and UNW_DEC_LABEL_STATE.
| static unsigned char* unw_decode_b2 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1362 of file unwind-ia64.c.
References B2, UNW_DEC_EPILOGUE, and unw_decode_uleb128().
| static unsigned char* unw_decode_b3_x4 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1372 of file unwind-ia64.c.
References B3, ecount, UNW_DEC_BAD_CODE, UNW_DEC_COPY_STATE, UNW_DEC_EPILOGUE, UNW_DEC_LABEL_STATE, unw_decode_uleb128(), unw_decode_x1(), unw_decode_x2(), unw_decode_x3(), and unw_decode_x4().
| static unsigned char* unw_decode_p1 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
| static unsigned char* unw_decode_p2_p5 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1189 of file unwind-ia64.c.
References dst, P2, P3, P4, r, UNW_DEC_BAD_CODE, UNW_DEC_BR_GR, UNW_DEC_FRGR_MEM, UNW_DEC_PRIUNAT_GR, UNW_DEC_REG_GR, UNW_DEC_RP_BR, UNW_DEC_SPILL_MASK, UNW_REG_BSP, UNW_REG_BSPSTORE, UNW_REG_FPSR, UNW_REG_LC, UNW_REG_PFS, UNW_REG_PR, UNW_REG_PSP, UNW_REG_RNAT, UNW_REG_RP, and UNW_REG_UNAT.
| static unsigned char* unw_decode_p6 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
| static unsigned char* unw_decode_p7_p10 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1251 of file unwind-ia64.c.
References r, size, UNW_DEC_ABI, UNW_DEC_BAD_CODE, UNW_DEC_GR_GR, UNW_DEC_MEM_STACK_F, UNW_DEC_MEM_STACK_V, UNW_DEC_PRIUNAT_PSPREL, UNW_DEC_PRIUNAT_SPREL, UNW_DEC_PRIUNAT_WHEN_GR, UNW_DEC_PRIUNAT_WHEN_MEM, UNW_DEC_REG_PSPREL, UNW_DEC_REG_SPREL, UNW_DEC_REG_WHEN, UNW_DEC_SPILL_BASE, unw_decode_uleb128(), unw_decode_x1(), unw_decode_x2(), unw_decode_x3(), unw_decode_x4(), UNW_REG_BSP, UNW_REG_BSPSTORE, UNW_REG_FPSR, UNW_REG_LC, UNW_REG_PFS, UNW_REG_PR, UNW_REG_PSP, UNW_REG_RNAT, UNW_REG_RP, and UNW_REG_UNAT.
| static unsigned char* unw_decode_r1 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
| static unsigned char* unw_decode_r2 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1155 of file unwind-ia64.c.
References R2, UNW_DEC_PROLOGUE_GR, and unw_decode_uleb128().
| static unsigned char* unw_decode_r3 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1170 of file unwind-ia64.c.
References R3, UNW_DEC_PROLOGUE, and unw_decode_uleb128().
| static unw_word unw_decode_uleb128 | ( | unsigned char ** | dpp | ) | [static] |
Definition at line 1041 of file unwind-ia64.c.
Referenced by unw_decode_b2(), unw_decode_b3_x4(), unw_decode_p7_p10(), unw_decode_r2(), unw_decode_r3(), unw_decode_x1(), unw_decode_x2(), unw_decode_x3(), and unw_decode_x4().
| static unsigned char* unw_decode_x1 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1060 of file unwind-ia64.c.
References UNW_DEC_SPILL_PSPREL, UNW_DEC_SPILL_SPREL, unw_decode_uleb128(), and X1.
Referenced by unw_decode_b3_x4(), and unw_decode_p7_p10().
| static unsigned char* unw_decode_x2 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1079 of file unwind-ia64.c.
References UNW_DEC_RESTORE, UNW_DEC_SPILL_REG, unw_decode_uleb128(), and x.
Referenced by unw_decode_b3_x4(), and unw_decode_p7_p10().
| static unsigned char* unw_decode_x3 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1099 of file unwind-ia64.c.
References UNW_DEC_SPILL_PSPREL_P, UNW_DEC_SPILL_SPREL_P, and unw_decode_uleb128().
Referenced by unw_decode_b3_x4(), and unw_decode_p7_p10().
| static unsigned char* unw_decode_x4 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1121 of file unwind-ia64.c.
References UNW_DEC_RESTORE_P, UNW_DEC_SPILL_REG_P, unw_decode_uleb128(), and x.
Referenced by unw_decode_b3_x4(), and unw_decode_p7_p10().
| static _Unwind_Reason_Code uw_frame_state_for | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs | |||
| ) | [static] |
Definition at line 1670 of file unwind-ia64.c.
References _Unwind_FindTableEntry(), _URC_END_OF_STACK, _URC_NO_REASON, abort, _Unwind_Context::br_loc, free_label_states(), free_state_stack(), _Unwind_Context::gp, unw_table_entry::info_offset, insn, length, _Unwind_Context::lsda, MD_FALLBACK_FRAME_STATE_FOR, memset, NULL, _Unwind_FrameState::personality, r, _Unwind_Context::region_start, _Unwind_Context::rp, unw_table_entry::start_offset, unw_decode(), UNW_FLAG_EHANDLER, UNW_FLAG_UHANDLER, UNW_LENGTH, UNW_NUM_REGS, UNW_REG_PSP, UNW_REG_RP, UNW_WHEN_NEVER, UNW_WHERE_BR, UNW_WHERE_NONE, UNW_WHERE_PSPREL, UNW_WHERE_SPREL, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
Referenced by __frame_state_for(), pa_fallback_frame_state(), and uw_init_context_1().
| static _Unwind_Ptr uw_identify_context | ( | struct _Unwind_Context * | context | ) | [inline, static] |
| static void uw_init_context_1 | ( | struct _Unwind_Context * | context, | |
| void * | bsp | |||
| ) | [static] |
Definition at line 1968 of file unwind-ia64.c.
References _URC_NO_REASON, abort, _Unwind_Context::bsp, _Unwind_Context::initial_unat, long, memset, _Unwind_Context::pr, _Unwind_Context::pri_unat_loc, _Unwind_Context::psp, _Unwind_Context::regstk_top, _Unwind_Context::rp, _Unwind_Context::sp, uw_frame_state_for(), and uw_update_context().
| static void uw_update_context | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs | |||
| ) | [static] |
Definition at line 1909 of file unwind-ia64.c.
References _Unwind_Context::bsp, i, ia64_rse_skip_regs(), long, _Unwind_Context::pfs_loc, _Unwind_Context::psp, _Unwind_Context::sp, UNW_NUM_REGS, UNW_REG_BSP, UNW_REG_PRI_UNAT_GR, UNW_REG_PRI_UNAT_MEM, UNW_REG_PSP, UNW_WHERE_NONE, and uw_update_reg_address().
Referenced by pa_fallback_frame_state(), uw_advance_context(), and uw_init_context_1().
| static void uw_update_reg_address | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs, | |||
| enum unw_register_index | regno | |||
| ) | [static] |
Definition at line 1770 of file unwind-ia64.c.
References abort, addr(), _Unwind_Context::br_loc, _Unwind_Context::bsp, _Unwind_Context::bsp_loc, _Unwind_Context::bspstore_loc, _Unwind_Context::fpsr_loc, _Unwind_Context::fr_loc, ia64_rse_skip_regs(), _Unwind_Context::ireg, _Unwind_Context::lc_loc, _Unwind_Context::unw_ireg::loc, _Unwind_Context::unw_ireg::nat, _Unwind_Context::pfs_loc, _Unwind_Context::pr, _Unwind_Context::pri_unat_loc, _Unwind_Context::psp, r, _Unwind_Context::rp, _Unwind_Context::sp, _Unwind_Context::unat_loc, UNW_NAT_MEMSTK, UNW_NAT_NONE, UNW_NAT_VAL, UNW_REG_B0, UNW_REG_B1, UNW_REG_B5, UNW_REG_BSP, UNW_REG_BSPSTORE, UNW_REG_F2, UNW_REG_F31, UNW_REG_FPSR, UNW_REG_LC, UNW_REG_PFS, UNW_REG_PR, UNW_REG_PSP, UNW_REG_R2, UNW_REG_R31, UNW_REG_RP, UNW_REG_UNAT, UNW_WHERE_BR, UNW_WHERE_FR, UNW_WHERE_GR, UNW_WHERE_NONE, UNW_WHERE_PSPREL, UNW_WHERE_SPREL, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
Referenced by uw_update_context().
struct unw_labeled_state emergency_labeled_state[8] [static] |
Definition at line 284 of file unwind-ia64.c.
Referenced by alloc_label_state(), and free_label_state().
int emergency_labeled_state_free = MASK_FOR (emergency_labeled_state) [static] |
Definition at line 285 of file unwind-ia64.c.
Referenced by alloc_label_state(), and free_label_state().
struct unw_reg_state emergency_reg_state[32] [static] |
Definition at line 281 of file unwind-ia64.c.
Referenced by alloc_reg_state(), and free_reg_state().
int emergency_reg_state_free = MASK_FOR (emergency_reg_state) [static] |
Definition at line 282 of file unwind-ia64.c.
Referenced by alloc_reg_state(), and free_reg_state().
unsigned char const save_order[] [static] |
Initial value:
{
UNW_REG_RP, UNW_REG_PFS, UNW_REG_PSP, UNW_REG_PR,
UNW_REG_UNAT, UNW_REG_LC, UNW_REG_FPSR, UNW_REG_PRI_UNAT_GR
}
Definition at line 235 of file unwind-ia64.c.
Referenced by desc_prologue(), and finish_prologue().
const unw_decoder unw_decode_table[2][8] [static] |
Initial value:
{
{
unw_decode_r1,
unw_decode_r1,
unw_decode_r2,
unw_decode_r3,
unw_decode_p1,
unw_decode_p2_p5,
unw_decode_p6,
unw_decode_p7_p10
},
{
unw_decode_r1,
unw_decode_r1,
unw_decode_r2,
unw_decode_r3,
unw_decode_b1,
unw_decode_b1,
unw_decode_b2,
unw_decode_b3_x4
}
}
Definition at line 1404 of file unwind-ia64.c.
1.5.6