(struct_offset): Delete.
(IA64_LOC_REG): New macro (replaces IA64_LOC() for registers).
(IA64_LOC_ADDR): New macro (replaces IA64_LOC() for addresses).
(IA64_LOC_UC_ADDR): New macro.
(IA64_NULL_LOC): Ditto.
(IA64_IS_NULL_LOC): Ditto.
(IA64_IS_UC_LOC): Ditto.
(struct ia64_state_record): Replace is_signal_frame bit with abi_marker.
(ia64_strloc): New declaration.
(rbs_switch): Change from UNW_ARCH_OBJ() to UNW_OBJ().
(rbs_find_stacked): Ditto.
(rbs_cover_and_flush): Ditto.
(rbs_get_rnat_loc): New inline function.
(rbs_loc): Ditto.
(Logical change 1.84)
Adjust for renaming of Linux sigcontext offset macros.
(check_rbs_switch): Handle Linux-case only if abi_marker==ABI_MARKER_LINUX_SIGTRAMP.
(update_frame_state): For cursor's with a non-zero abi_marker, do special
Linux or HP-UX sigtramp handling as appropriate.
Clear abi_marker instead of is_signal_frame.
(Logical change 1.84)
(emit_nat_info): For registers saved in a general-register, use IA64_INSN_SET_REG
instead of IA64_INSN_SET.
Set insn.dst to register number, instead of unw.preg_index[i].
(compile_reg): Set val directly to register number, instead of unw.preg_index[i].
Use IA64_INSN_INC_PSP instead of IA64_INSN_ADD to pop a fixed stack frame.
(build_script): Handle signal-frames by directly copying abi_marker, rather than
emitting an IA64_INSN_SET instruction.
(run_script): Copy abi_marker into cursor. Rather than updating a word, update
a save-location. Only exceptions are IA64_INSN_INC_PSP and
IA64_INSN_LOAD_PSP.
(Logical change 1.84)
Mask out only the least-significant 2 bits (rather than the least significant
3 bits).
2003/04/22 22:15:48-07:00 mostang.com!davidm
Rename: src/ia64/_Uia64_install_context.S -> src/ia64/_Uia64_install_cursor.S
(Logical change 1.84)
(REASON_SYSCALL): Ditto.
(access_reg): Use __uc_get_reason() to determine how ucontext_t was created.
Handle UNW_IA64_AR_BSP differently depending on whether or not
ucontext_t was created by a syscall. Ditto for UNW_IA64_IP and
UNW_IA64_CFM. Add debug statement.
(Logical change 1.77)
is not defined.
(tdep_find_proc_info) [HAVE_DLMODINFO): Declare new type "struct unwind_header"
to accommodate HP-UX unwind header. Fetch unwind table from this
header.
(Logical change 1.75)
Include <inttypes.h> instead of <stdint.h>. HP-UX doesn't have the latter.
Use "inline" instead of "__inline__" (the former gets properly #define'd by
config.h).
(Logical change 1.63)
(_Uia64_search_unwind_table): Be sure to clear "proc_info" members as documented
by unw_get_proc_info(3).
Include <dlfcn.h> if we have dlmodinfo() (HP-UX only).
(tdep_find_proc_info): Use dl_iterate_phdr() only if we have it (glibc-based
systems). Use dlmodinfo() if we have it (HP-UX).
(Logical change 1.63)
(ia64_get_cached_proc_info): Rename from ia64_script_lookup() and modify it so
it directly updates the proc-info if the necessary script is in the cache.
(script_new): Remove locking comments and adjust formatting.
(ia64_find_save_locs): If global caching is enabled, mask signal delivery and
hold the cache lock while accessing the cache.
(ia64_script_cache_init): Initialize the cache lock.
(Logical change 1.59)
(parse_dynamic): Fix it so it actually works.
(create_state_record_for): Initialize return_link_reg to zero.
Don't print "no unwind info" unconditionally when UNW_DEBUG is
in effect.
(Logical change 1.56)