blob: 5bc82b030a9957edb6adde9b9ede67b69d1df5c9 [file] [log] [blame]
- 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