various other types and constants based on it.
(unw_error_t): A UNW_EINVAL, UNW_EBADVERSION, and UNW_ENOINFO.
(unw_frame_regnum_t): Instead of hardcoding the numbers for the
well-known frame registers, use the architecture-specific
(target-dependent) values instead.
(Logical change 1.5)
as sigcontext). Adjust for the fact that the RSE arithmetic
is now done on values of type unw_word_t rather than long pointers.
(ia64_scratch_loc): Rename from ia64_get_sigcontext() and expand
it such that it returns a scratch register location if
the current frame is not a sigcontext frame.
(ia64_access_reg): Read the address of the personality routine with
ia64_get() rather than trying to dereference the address
directly. When writing the IP or the PR, update the cached
values, too.
(Logical change 1.5)
Use offsets defined in this file instead of calculating the offsets
from sigcontext structure.
(update_frame_state): Rename from ia64_get_frame_state() and make it
static and inlined.
(unw_step): Call update_frame_state() instead of ia64_get_frame_state().
(Logical change 1.5)
unconditionally returns -UNW_EINVAL.
(access_reg): IP is now read via UNW_IA64_IP (instead of
UNW_IA64_BR+0). CFM is now read via UNW_IA64_CFM
instead of UNW_IA64_AR_PFS. For UNW_IA64_AR_BSP
(and UNW_IA64_AR_BSPSTORE), adjust the pointer so
that it points to the first stacked register in
the current frame.
(resume): "rp_loc" has been renamed to "ip_loc".
(unw_init_local): Add an #error directive to prevent compilation
with UNW_LOCAL_ONLY until this case has been implemented.
(Logical change 1.5)
(get_kernel_table): Return -UNW_ENOMEM if unable to allocate buffer
for kernel's unwind info. Initialize the start and end
members in unw_ia64_table_t.
(callback): Initialize the start and end members.
(Logical change 1.5)
(ia64_regnum_t): Define well-known frame registers here and add
TDEP-aliases for use by libunwind.h.
(unw_ia64_table_t): Use unw_tdep_word_t instead of unw_word_t so this
file can be included by libunwind.h.
Change type of "array" member to void *. On OSes that support
ILP32, it may point to a 32-bit unwind table.
(Logical change 1.5)
cfm_loc with UNW_IA64_CFM. Initialize bspstore_loc with
UNW_IA64_AR_BSPSTORE. Renamem rp_loc to ip_loc and initialize
with UNW_IA64_IP. Initialized the cached values of
PR and IP. Initialize sp and psp to value in UNW_IA64_SP.
Initialize exception handling args by reading the corresponding
scratch registers (r15-r18). If the read fails, initialize
with 0. Finish by calling ia64_get_proc_info() instead of
ia64_get_frame_state().
(Logical change 1.5)