#include "tconfig.h"#include "tsystem.h"#include "coretypes.h"#include "tm.h"#include "unwind.h"#include "unwind-ia64.h"#include "unwind-compat.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 284 of file unwind-ia64.c.
Definition at line 248 of file unwind-ia64.c.
Definition at line 285 of file unwind-ia64.c.
Definition at line 283 of file unwind-ia64.c.
Definition at line 947 of file unwind-ia64.c.
| #define UNW_DEC_BAD_CODE | ( | code | ) | abort (); |
Definition at line 940 of file unwind-ia64.c.
Definition at line 948 of file unwind-ia64.c.
Definition at line 949 of file unwind-ia64.c.
Definition at line 971 of file unwind-ia64.c.
Definition at line 970 of file unwind-ia64.c.
Definition at line 951 of file unwind-ia64.c.
Definition at line 950 of file unwind-ia64.c.
Definition at line 952 of file unwind-ia64.c.
Definition at line 953 of file unwind-ia64.c.
Definition at line 972 of file unwind-ia64.c.
Definition at line 954 of file unwind-ia64.c.
Definition at line 955 of file unwind-ia64.c.
Definition at line 962 of file unwind-ia64.c.
Definition at line 963 of file unwind-ia64.c.
Definition at line 964 of file unwind-ia64.c.
Definition at line 960 of file unwind-ia64.c.
Definition at line 961 of file unwind-ia64.c.
Definition at line 944 of file unwind-ia64.c.
Definition at line 943 of file unwind-ia64.c.
Definition at line 956 of file unwind-ia64.c.
Definition at line 957 of file unwind-ia64.c.
Definition at line 958 of file unwind-ia64.c.
Definition at line 959 of file unwind-ia64.c.
Definition at line 982 of file unwind-ia64.c.
Definition at line 981 of file unwind-ia64.c.
Definition at line 965 of file unwind-ia64.c.
Definition at line 966 of file unwind-ia64.c.
Definition at line 967 of file unwind-ia64.c.
Definition at line 978 of file unwind-ia64.c.
Definition at line 977 of file unwind-ia64.c.
Definition at line 976 of file unwind-ia64.c.
Definition at line 975 of file unwind-ia64.c.
Definition at line 980 of file unwind-ia64.c.
Definition at line 979 of file unwind-ia64.c.
| #define UNW_FLAG_EHANDLER | ( | x | ) | ((x) & 0x0000000100000000L) |
Definition at line 51 of file unwind-ia64.c.
| #define UNW_FLAG_MASK 0x0000ffff00000000 |
Definition at line 49 of file unwind-ia64.c.
| #define UNW_FLAG_OSMASK 0x0000f00000000000 |
Definition at line 50 of file unwind-ia64.c.
| #define UNW_FLAG_UHANDLER | ( | x | ) | ((x) & 0x0000000200000000L) |
Definition at line 52 of file unwind-ia64.c.
| #define UNW_LENGTH | ( | x | ) | ((x) & 0x00000000ffffffffL) |
Definition at line 53 of file unwind-ia64.c.
| #define UNW_VER | ( | x | ) | ((x) >> 48) |
Definition at line 48 of file unwind-ia64.c.
| #define UNW_WHEN_NEVER 0x7fffffff |
Definition at line 123 of file unwind-ia64.c.
| #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 2079 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 1408 of file unwind-ia64.c.
Definition at line 236 of file unwind-ia64.c.
Definition at line 55 of file unwind-ia64.c.
| enum unw_nat_type |
Definition at line 171 of file unwind-ia64.c.
| enum unw_register_index |
Definition at line 69 of file unwind-ia64.c.
| enum unw_where |
Definition at line 108 of file unwind-ia64.c.
| static void __attribute__ | ( | (noreturn) | ) | [static] |
Definition at line 2127 of file unwind-ia64.c.
References i, ia64_rse_rnat_addr(), ia64_rse_skip_regs(), L, long, offsetof, pr, and unw_access_gr().
| static enum unw_register_index __attribute__ | ( | (const) | ) | [static] |
Definition at line 441 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 1735 of file unwind-ia64.c.
References _Unwind_FindTableEntry(), NULL, and unw_table_entry::start_offset.
| _Unwind_Word _Unwind_GetBSP | ( | struct _Unwind_Context * | context | ) |
| _Unwind_Word _Unwind_GetCFA | ( | struct _Unwind_Context * | context | ) |
| _Unwind_Word _Unwind_GetGR | ( | struct _Unwind_Context * | context, | |
| int | index | |||
| ) | [inline] |
Definition at line 1669 of file unwind-ia64.c.
References _Unwind_Context::eh_data, _Unwind_Context::gp, ret, and unw_access_gr().
| _Unwind_Ptr _Unwind_GetIP | ( | struct _Unwind_Context * | context | ) | [inline] |
| _Unwind_Ptr _Unwind_GetIPInfo | ( | struct _Unwind_Context * | context, | |
| int * | ip_before_insn | |||
| ) | [inline] |
Definition at line 1708 of file unwind-ia64.c.
| void* _Unwind_GetLanguageSpecificData | ( | struct _Unwind_Context * | context | ) |
| _Unwind_Ptr _Unwind_GetRegionStart | ( | struct _Unwind_Context * | context | ) |
| void _Unwind_SetGR | ( | struct _Unwind_Context * | context, | |
| int | index, | |||
| _Unwind_Word | val | |||
| ) | [inline] |
Definition at line 1687 of file unwind-ia64.c.
References _Unwind_Context::eh_data, _Unwind_Context::gp, and unw_access_gr().
| void _Unwind_SetIP | ( | struct _Unwind_Context * | context, | |
| _Unwind_Ptr | val | |||
| ) | [inline] |
| static struct unw_labeled_state* alloc_label_state | ( | void | ) | [static, read] |
Definition at line 334 of file unwind-ia64.c.
References atomic_alloc(), emergency_labeled_state, emergency_labeled_state_free, malloc, and n.
| static struct unw_reg_state* alloc_reg_state | ( | void | ) | [static, read] |
Definition at line 301 of file unwind-ia64.c.
References atomic_alloc(), emergency_reg_state, emergency_reg_state_free, malloc, and n.
| 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 477 of file unwind-ia64.c.
References UNW_WHERE_PSPREL, UNW_WHERE_SPILL_HOME, unw_reg_info::val, and unw_reg_info::where.
| static int atomic_alloc | ( | unsigned int * | mask | ) | [inline, static] |
| static void atomic_free | ( | unsigned int * | mask, | |
| int | bit | |||
| ) | [inline, static] |
| static void desc_abi | ( | unsigned char | abi, | |
| unsigned char | context, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
| static void desc_br_gr | ( | unsigned char | brmask, | |
| unsigned char | gr, | |||
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 636 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 651 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 823 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 816 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 697 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 668 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 714 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 729 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 859 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.
| static void desc_label_state | ( | unw_word | label, | |
| struct unw_state_record * | sr | |||
| ) | [inline, static] |
Definition at line 841 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 746 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 753 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 578 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 760 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 767 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 776 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 790 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 873 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 806 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 910 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 888 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 925 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 390 of file unwind-ia64.c.
References alloc_reg_state(), copy, first, memcpy, unw_reg_state::next, NULL, and prev.
| static void finish_prologue | ( | struct unw_state_record * | sr | ) | [static] |
Definition at line 513 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.
| static void free_label_state | ( | struct unw_labeled_state * | ls | ) | [static] |
Definition at line 354 of file unwind-ia64.c.
References atomic_free(), emergency_labeled_state, emergency_labeled_state_free, free(), and PTR_IN.
| static void free_label_states | ( | struct unw_labeled_state * | ls | ) | [static] |
Definition at line 426 of file unwind-ia64.c.
References free_label_state(), free_state_stack(), unw_labeled_state::next, next, and unw_labeled_state::saved_state.
| static void free_reg_state | ( | struct unw_reg_state * | rs | ) | [static] |
Definition at line 321 of file unwind-ia64.c.
References atomic_free(), emergency_reg_state, emergency_reg_state_free, free(), and PTR_IN.
| static void free_state_stack | ( | struct unw_reg_state * | rs | ) | [static] |
Definition at line 411 of file unwind-ia64.c.
References free_reg_state(), next, unw_reg_state::next, NULL, and p.
| static void ia64_copy_rbs | ( | struct _Unwind_Context * | info, | |
| unsigned long | dst, | |||
| unsigned long | src, | |||
| long | len, | |||
| unsigned long | dst_rnat | |||
| ) | [static] |
Definition at line 1505 of file unwind-ia64.c.
References count, first, memcpy, _Unwind_Context::regstk_top, _Unwind_Context::rnat, and second().
Definition at line 1469 of file unwind-ia64.c.
Definition at line 1454 of file unwind-ia64.c.
| static void pop | ( | struct unw_state_record * | sr | ) | [static] |
Definition at line 377 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 369 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 467 of file unwind-ia64.c.
References UNW_WHEN_NEVER, unw_reg_info::val, unw_reg_info::when, and unw_reg_info::where.
| static void spill_next_when | ( | struct unw_reg_info ** | regp, | |
| struct unw_reg_info * | lim, | |||
| unw_word | t | |||
| ) | [inline, static] |
Definition at line 494 of file unwind-ia64.c.
References abort, UNW_WHERE_SPILL_HOME, unw_reg_info::when, and unw_reg_info::where.
| static void unw_access_gr | ( | struct _Unwind_Context * | info, | |
| int | regnum, | |||
| unsigned long * | val, | |||
| char * | nat, | |||
| int | write | |||
| ) | [static] |
Definition at line 1575 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, long, _Unwind_Context::regstk_top, _Unwind_Context::rnat, UNW_NAT_MEMSTK, UNW_NAT_NONE, UNW_NAT_REGSTK, and UNW_NAT_VAL.
| static unsigned char* unw_decode | ( | unsigned char * | dp, | |
| int | inside_body, | |||
| void * | arg | |||
| ) | [inline, static] |
Definition at line 1439 of file unwind-ia64.c.
| static unsigned char* unw_decode_b1 | ( | unsigned char * | dp, | |
| unsigned char | code, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1356 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 1368 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 1378 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 1195 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 1257 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 1161 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 1176 of file unwind-ia64.c.
References R3, UNW_DEC_PROLOGUE, and unw_decode_uleb128().
| static unw_word unw_decode_uleb128 | ( | unsigned char ** | dpp | ) | [static] |
| static unsigned char* unw_decode_x1 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1066 of file unwind-ia64.c.
References UNW_DEC_SPILL_PSPREL, UNW_DEC_SPILL_SPREL, unw_decode_uleb128(), and X1.
| static unsigned char* unw_decode_x2 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1085 of file unwind-ia64.c.
References UNW_DEC_RESTORE, UNW_DEC_SPILL_REG, unw_decode_uleb128(), and x.
| static unsigned char* unw_decode_x3 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1105 of file unwind-ia64.c.
References UNW_DEC_SPILL_PSPREL_P, UNW_DEC_SPILL_SPREL_P, and unw_decode_uleb128().
| static unsigned char* unw_decode_x4 | ( | unsigned char * | dp, | |
| unsigned char code | __attribute__(unused), | |||
| void * | arg | |||
| ) | [static] |
Definition at line 1127 of file unwind-ia64.c.
References UNW_DEC_RESTORE_P, UNW_DEC_SPILL_REG_P, unw_decode_uleb128(), and x.
| static void uw_advance_context | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs | |||
| ) | [static] |
| static _Unwind_Reason_Code uw_frame_state_for | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs | |||
| ) | [static] |
Definition at line 1770 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.
| 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 2087 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::rnat, _Unwind_Context::rp, _Unwind_Context::sp, tmp1, tmp2, uw_frame_state_for(), and uw_update_context().
| static void uw_update_context | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs | |||
| ) | [static] |
Definition at line 2018 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().
| static void uw_update_reg_address | ( | struct _Unwind_Context * | context, | |
| _Unwind_FrameState * | fs, | |||
| enum unw_register_index | regno | |||
| ) | [static] |
Definition at line 1869 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.
struct unw_labeled_state emergency_labeled_state[8] [static] |
Definition at line 290 of file unwind-ia64.c.
unsigned int emergency_labeled_state_free = MASK_FOR (emergency_labeled_state) [static] |
Definition at line 291 of file unwind-ia64.c.
struct unw_reg_state emergency_reg_state[32] [static] |
Definition at line 287 of file unwind-ia64.c.
unsigned int emergency_reg_state_free = MASK_FOR (emergency_reg_state) [static] |
Definition at line 288 of file unwind-ia64.c.
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 241 of file unwind-ia64.c.
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 1410 of file unwind-ia64.c.
1.5.6