mostang.com!davidm | 1cabc10 | 2003-04-21 18:38:48 +0000 | [diff] [blame] | 1 | Testing: |
| 2 | - ensure that saving r4-r7 in a stacked register properly preserves |
| 3 | the NaT bit, even in the face of register-rotation |
| 4 | - ensure that IA64_INSN_MOVE_STACKED works correctly in the face of |
| 5 | register rotation |
mostang.com!davidm | 9825197 | 2003-04-23 19:22:42 +0000 | [diff] [blame] | 6 | - on Linux, test access to f32-f127 in a signal handler (e.g., verify |
| 7 | that fph partition gets initialized properly) |
mostang.com!davidm | 1cabc10 | 2003-04-21 18:38:48 +0000 | [diff] [blame] | 8 | |
| 9 | === taken care of: |
| 10 | |
mostang.com!davidm | 9240efe | 2003-12-10 07:14:38 +0000 | [diff] [blame^] | 11 | + man-page for unw_is_fpreg() |
| 12 | + man-page for _U_dyn_cancel() |
| 13 | + man-page for _U_dyn_register() |
hp.com!davidm | 2f5a4b5 | 2003-11-19 03:11:25 +0000 | [diff] [blame] | 14 | + global data is not protected by a lock; causes problems if two threads |
| 15 | call ia64_init() at almost the same time |
mostang.com!davidm | 1cabc10 | 2003-04-21 18:38:48 +0000 | [diff] [blame] | 16 | + cache the value of *cfm_loc; each rotate_FOO() call needs it! |
| 17 | + implement the remote-lookup of the dynamic registration list |
| 18 | + when doing sigreturn, must restore fp regs (and perhaps other regs) the same |
| 19 | way as the (user-level) gate.S sigreturn path does! |
| 20 | + unw_resume() must at least restore gp (r1)! consider restoring all |
| 21 | scratch regs (but what's the performance impact on exception handling?); |
| 22 | alternative: restore scratch regs that may be used during procedure |
| 23 | call/return (e.g., r8-r11, f8-f11) |
| 24 | + implement unw_resume() for the case where the current register frame is split |
| 25 | across multiple backing stores |
| 26 | + document restricions on using unw_resume(): |
| 27 | + implement remote cases of unw_resume() |
| 28 | + test both with UNW_LOCAL_ONLY and without where this makes sense |
| 29 | + allow region-length (insn_count) in unw_dyn_region_info_t to be negative |
| 30 | to indicate counting from the end of the procedure (to make it possible |
| 31 | for differently-sized procedures to share the same region list if they |
| 32 | share the same prologue/epilogue). |
| 33 | + it appears that it is currently not possible to read register UNW_IA64_TP; |
| 34 | fix that => no, attempts to access r13 will result in access_reg() callbacks, |
| 35 | as desired; for local-case, access to r13 will fail though (since |
| 36 | getcontext() doesn't, and shouldn't, capture r13) |
| 37 | + document the special nature of UNW_IA64_GP: read-only, but adjusted |
| 38 | automatically if the IP is changed |
| 39 | + use pthread-mutexes where necessary, atomic ops where possible |
| 40 | + man-page for unw_init_local() |
| 41 | + man-page for unw_init_remote() |
| 42 | + man-page for unw_create_addr_space() |
| 43 | + man-page for unw_destroy_addr_space() |
| 44 | + man-page for unw_get_proc_info() |
| 45 | + man-page for unw_get_proc_name() |
| 46 | + man-page for unw_get_accessors() |
| 47 | + man-page for unw_regname() |
| 48 | + man-page for unw_flush_cache() |
| 49 | + man-page for unw_set_caching_policy() |
| 50 | + man-page for unw_getcontext() |
| 51 | + man-page for unw_is_signal_frame() |
| 52 | + man-page for unw_step() |
| 53 | + man-page for unw_get_reg() |
| 54 | + man-page for unw_set_reg() |
| 55 | + man-page for unw_get_fpreg() |
| 56 | + man-page for unw_set_fpreg() |
mostang.com!davidm | 9825197 | 2003-04-23 19:22:42 +0000 | [diff] [blame] | 57 | + test with Intel compiler |