2005/05/17 14:14:24-07:00 hp.com!davidm
ia64: Fix AR.EC-handling for interrupt/signal-frames.
Call-frames created in response to an interruption are special because
CR.IFS contains only the current frame-marker, not the full function-state
(as normally saved in AR.PFS). Thus, in those frames we cannot use CR.IFS
(as pointed to by c->cfm_loc) to access AR.EC. Instead, we need to track
where AR.PFS was previously saved and use that location instead. We do
this now via the c->ec_loc member: by default, it is set to c->cfm_loc, but
the ABI-specific handlers can override this default-value with something
else (such as the previous c->cfm_loc).
BKrev: 428a61f3a7DlCyx8iAN6oWxAsLuqVw
2005/05/17 14:14:23-07:00 hp.com!davidm
(linux_sigtramp): Add "prev_cfm_loc" argument. Use it to set c->ec_loc.
(linux_interrupt): Likewise.
(hpux_sigtramp): Likewise.
(update_frame_state): Copy old cfm_loc to prev_cfm_loc and pass it to
ABI-specific handlers. Initialize c->ec_loc to c->cfm_loc by default.
(Logical change 1.293)
into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind
2005/05/17 06:10:15-07:00 hp.com!davidm
ia64: Fix and clarify access to UNW_IA64_PR.
Access to the rotating portion of UNW_IA64_PR was busted. Also, libunwind
incorrectly attempted to rotate this portion when it should work like the
"move predicates" instructions and access them in unrotated form.
BKrev: 4289f0a1ct0tnWPxRhGJtsqeWkLfyA
2005/05/17 06:10:13-07:00 hp.com!davidm
(save_pr): Declare
(check_pr): New function.
(all_funcs): Mention save_pr/check_pr.
(random_word): New function.
(check_pr): Likewise.
(check_rotate_regs): Call check_pr().
(run_check): Use random_word() instead of random() to get a word full of
pseudo-random bits.
(Logical change 1.292)
to create NTHREADS threads. With NTHREADS==128 and the stack-size
rlimit set to "unlimited", the test is otherwise likely to fail because
on ia64 it will default to using 32MB of stack per thread.
(Logical change 1.291)
(consume_some_stack_space): New function.
(main): Call consume_some_stack_space() before establishing the
rlimit. Otherwise, stack-expansion may bump into
the address-space rlimit.
(Logical change 1.290)
Abstract ia64-specific code into bsp_match() routine.
Support any platform with at least 2 EH argument registers.
2004/12/06 01:33:16-08:00 mostang.com!davidm
Rename: src/longjmp.c -> src/setjmp/longjmp.c
(Logical change 1.290)
2004/11/17 02:43:39-08:00 mostang.com!davidm
(struct callback_data): New structure.
(linear_search): New function.
(callback): Convert to getting auxiliary info passed via a pointer to
a callback_data structure, rather than an unw_dyn_info_t
structure.
Keep track of the maximum load address in max_load_addr.
If an object doesn't have a binary search-table, fall back
on a linear search.
(dwarf_find_proc_info): Fill in callback-data structure before calling
dl_iterate_phdr(). Upon returning, check whether
cb_data.single_fde is set and, if so, return directly, without
searching the DWARF unwind-table.
(dwarf_search_unwind_table): Adjust for renaming of
dwarf_parse_fde() to dwarf_extract_proc_info_from_fde().
If IP doesn't fall into the IP-range of the FDE-entry found
by the search, return UNW_ENOINFO.
(Logical change 1.290)
2004/12/15 15:40:09-08:00 hp.com!davidm
Include "tdep.h" on ia64 (we need the cursor).
(bsp_match): Fix it so it compiles again.
(resume_restore_sigmask): Likewise.
2004/12/06 10:40:49-08:00 mostang.com!davidm
(Logical change 1.290)
2004/11/23 16:59:56-08:00 mostang.com!davidm
(_UPT_access_reg): If the register is out of range, set errno
to EINVAL.
When encountering an error while accessing a register,
print the corresponding error string.
(Logical change 1.290)