- man-page for _U_dyn_cancel() - man-page for _U_dyn_register() - man-page for unw_is_fpreg() Testing: - ensure that saving r4-r7 in a stacked register properly preserves the NaT bit, even in the face of register-rotation - ensure that IA64_INSN_MOVE_STACKED works correctly in the face of register rotation - on Linux, test access to f32-f127 in a signal handler (e.g., verify that fph partition gets initialized properly) === taken care of: + global data is not protected by a lock; causes problems if two threads call ia64_init() at almost the same time + cache the value of *cfm_loc; each rotate_FOO() call needs it! + implement the remote-lookup of the dynamic registration list + when doing sigreturn, must restore fp regs (and perhaps other regs) the same way as the (user-level) gate.S sigreturn path does! + unw_resume() must at least restore gp (r1)! consider restoring all scratch regs (but what's the performance impact on exception handling?); alternative: restore scratch regs that may be used during procedure call/return (e.g., r8-r11, f8-f11) + implement unw_resume() for the case where the current register frame is split across multiple backing stores + document restricions on using unw_resume(): + implement remote cases of unw_resume() + test both with UNW_LOCAL_ONLY and without where this makes sense + allow region-length (insn_count) in unw_dyn_region_info_t to be negative to indicate counting from the end of the procedure (to make it possible for differently-sized procedures to share the same region list if they share the same prologue/epilogue). + it appears that it is currently not possible to read register UNW_IA64_TP; fix that => no, attempts to access r13 will result in access_reg() callbacks, as desired; for local-case, access to r13 will fail though (since getcontext() doesn't, and shouldn't, capture r13) + document the special nature of UNW_IA64_GP: read-only, but adjusted automatically if the IP is changed + use pthread-mutexes where necessary, atomic ops where possible + man-page for unw_init_local() + man-page for unw_init_remote() + man-page for unw_create_addr_space() + man-page for unw_destroy_addr_space() + man-page for unw_get_proc_info() + man-page for unw_get_proc_name() + man-page for unw_get_accessors() + man-page for unw_regname() + man-page for unw_flush_cache() + man-page for unw_set_caching_policy() + man-page for unw_getcontext() + man-page for unw_is_signal_frame() + man-page for unw_step() + man-page for unw_get_reg() + man-page for unw_set_reg() + man-page for unw_get_fpreg() + man-page for unw_set_fpreg() + test with Intel compiler