pollution when compiling with debugging enabled. The name-space
pollution came from the fact that functions won't be inlined in this
case and that ended up generating dead code with references to
non-existent functions.
(Logical change 1.154)
name-space pollution when compiling with debugging enabled. The
name-space pollution came from the fact that functions won't be
inlined in this case and that ended up generating dead code with
references to non-existent functions.
(Logical change 1.154)
(_Uia64_get_kernel_table): Define only when UNW_LOCAL_ONLY is not
defined.
(_Uia64_find_dyn_list): Likewise.
(ia64_local_validate_cache): Fix prototype (second argument was
missing).
(Logical change 1.154)
resolved within the library itself.
(is_local_addr_space): Define UNW_LOCAL_ONLY and generic versions.
(read_mem): New function.
(tdep_put_unwind_info): Define only if not UNW_LOCAL_ONLY.
(tdep_search_unwind_table): Rename from _Uia64_search_unwind_table().
Optimize away stuff that isn't needed for UNW_LOCAL_ONLY.
Use read_mem() instead of open-coding accesses via
access_mem() callback.
(get_kernel_table): Rename from _Uia64_get_kernel_table().
(_Uia64_get_kernel_table): Define for non-UNW_LOCAL_ONLY case so
that libunwind-ptrace.a can get to it.
}(Logical change 1.151)
resolved within the library itself.
(is_local_addr_space): Define UNW_LOCAL_ONLY and generic versions.
(read_mem): New function.
(tdep_put_unwind_info): Define only if not UNW_LOCAL_ONLY.
(tdep_search_unwind_table): Rename from _Uia64_search_unwind_table().
Optimize away stuff that isn't needed for UNW_LOCAL_ONLY.
Use read_mem() instead of open-coding accesses via
access_mem() callback.
(get_kernel_table): Rename from _Uia64_get_kernel_table().
(_Uia64_get_kernel_table): Define for non-UNW_LOCAL_ONLY case so
that libunwind-ptrace.a can get to it.
2004/01/03 00:33:30-08:00 hp.com!davidm
Rename: src/ia64/tables-ia64.c -> src/ia64/Gtables-ia64.c
(Logical change 1.151)
(unw_decode_r2): Likewise.
(unw_decode_r3): Likewise.
(unw_decode_p1): Likewise.
(unw_decode_p2_p5): Likewise.
(unw_decode_p6): Likewise.
(unw_decode_p7_p10): Likewise.
(unw_decode_b1): Likewise.
(unw_decode_b3_x4): Likewise.
(unw_decode_table): Remove.
(unw_decode): Do the first-level of decoding inline, rather than
through the unw_decode_table.
(Logical change 1.148)
(regname_len): New macro.
(regname_str): New macro.
(NREGS): New macro.
(unw_regname): Change it from using a regname[] array to using
a single string.
(Logical change 1.148)
the former to avoid compiler-warnings.
(run_script): Before doing the big switch, check for most common
case (IA64_INSN_MOVE_STACKED).
(Logical change 1.130)
(remote_lookup): New function.
(_Uia64_search_unwind_table): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(_Uia64_find_dyn_list): Take unw_dyn_info_t pointer argument instead of its
members and handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
not needed because we default to "no caching" and if the application
turns on caching via unw_set_caching_policy(), the cache will get
initialized at that time.
(Logical change 1.124)
(get_script_cache): Return NULL if caching is disabled. If
HAVE_ATOMIC_OPS_H is defined, set the busy flag and if
the script cache is busy already, return NULL.
(put_script_cache): Don't allow it to be called for UNW_CACHE_NONE case.
If HAVE_ATOMIC_OPS_H is defined, clear the "busy" flag via
AO_CLEAR.
(ia64_get_cached_proc_info): If we're unable to acquire the cache,
return -UNW_ENOINFO.
(script_init): New function.
(script_new): Replace open code with call to script_init().
(uncached_find_save_locs): New function.
(ia64_find_save_locs): Move code for uncached case to
uncached_find_save_locs(). If get_script_cache() is unable to
lock the script-cache, fall back to uncached_find_save_locs().
(ia64_script_cache_init): Delete.
(Logical change 1.124)
early. Always flush cache after changing the policy.
This is to ensure that the per-thread cache gets initialized
and no stale info remains.
(Logical change 1.118)
(ia64_init): Use unw.lock to protect against races during
initialization. Disable signal delivery during initialization
to ensure thread-safety (e.g., unw_init_local() may call
ia64_init() and the former must be thread-safe).
(Logical change 1.111)
personality-routine and LSDA address and dont' forget to
dereference the personality-routine function-pointer, so we
really get the address of the function-descriptor of the
personality routine.
(callback): Set the segment-base based on the segment that contains
the unwind-table. Normally, that the text segment but in
special cases, such as the kernel's gate DSO, it will be
in a different segment.
(Logical change 1.108)
hash-table, collision-chains, and hash-table in addition
to clearing the script's IP value. The latter wasn't nearly
sufficient because it could cause loops on the collision
chain...
(get_script_cache): Also lock the cache if global caching is in
effect. Take additional "saved_sigmaskp" argument.
After flushing the cache, update the cache generation
here.
(put_script_cache): New function.
(ia64_get_cached_proc_info): Adjust for get_script_cache() and
put_script_cache() changes.
(ia64_find_save_locs): Ditto.
(ia64_script_cache_init): Call flush_script_cache() instead of
opening-coding the equivalent code.
(Logical change 1.96)
state-record.
(ia64_fetch_proc_info): Rename from get_proc_info().
(create_state_record_for): Assert that c->pi_valid is TRUE at the
time of entry. Remove call to get_proc_info().
(Logical change 1.95)
a value that is potentially > 31. Casting it to (unsigned long)
is not enough on 32-bit platforms.
(create_state_record_for): Cast 0xf to (unw_word_t) instead of
(unsigned long) to avoid losing bits on 32-bit platforms.
(Logical change 1.92)
Linux kernel "struct pt_regs" layout.
(update_frame_state): Handle ABI_MARKER_OLD_LINUX_SIGTRAMP and
ABI_MARKRE_OLD_LINUX_INTERRUPT. Cast values of type unw_word_t
to (unsigned long) before printing them.
(Logical change 1.91)
(linux_scratch_loc): Add support for new pt_regs layout.
(access_nat): Check last_abi_marker instead of sigcontext_addr and
address-space ABI.
(Logical change 1.91)
(update_frame_state): Handle ABI_MARKER_LINUX_INTERRUPT by calling linux_interrupt().
If c->abi_marker is non-zero, copy it to c->last_abi_marker.
(Logical change 1.89)
(access_reg) [HAVE_SYS_UC_ACCESS_H]: Sanitize and simplify this routine. Turns out
uc_access(3) works pretty much the way we need it, the only problem is that
the unwind info for getcontext() seems to be missing as of HP-UX 11.22.
(ia64_uc_access_reg): New function.
(ia64_uc_access_fpreg): Ditto.
(ia64_local_addr_space_init): Initialize "abi" member of local address space based
on the platform we're compiling on.
(Logical change 1.87)