1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-23 07:57:38 +01:00

(IA64_REG_LOC): Pass NULL as third argument to tdep_uc_addr().

(IA64_FPREG_LOC): Likewise.
(IA64_REG_NAT_LOC): New macro to describe a NaT-bit register location.
(rbs_find): Remove declaration.

(Logical change 1.181)
This commit is contained in:
mostang.com!davidm 2004-02-27 08:54:25 +00:00
parent 253fabee2c
commit be1d46b41c

View file

@ -70,9 +70,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#define IA64_IS_REG_LOC(l) 0 #define IA64_IS_REG_LOC(l) 0
#define IA64_IS_UC_LOC(l) 0 #define IA64_IS_UC_LOC(l) 0
#define IA64_REG_LOC(c,r) ((unw_word_t) tdep_uc_addr((c)->as_arg, (r))) #define IA64_REG_LOC(c,r) ((unw_word_t) tdep_uc_addr((c)->as_arg, r, \
NULL))
#define IA64_REG_NAT_LOC(c,r,n) ((unw_word_t) tdep_uc_addr((c)->as_arg, r, n))
#define IA64_FPREG_LOC(c,r) \ #define IA64_FPREG_LOC(c,r) \
((unw_word_t) tdep_uc_addr((c)->as_arg, (r)) | IA64_LOC_TYPE_FP) ((unw_word_t) tdep_uc_addr((c)->as_arg, (r), NULL) | IA64_LOC_TYPE_FP)
# define ia64_find_proc_info(c,ip,n) \ # define ia64_find_proc_info(c,ip,n) \
tdep_find_proc_info(unw_local_addr_space, (ip), &(c)->pi, (n), \ tdep_find_proc_info(unw_local_addr_space, (ip), &(c)->pi, (n), \
@ -161,6 +163,7 @@ ia64_put (struct cursor *c, unw_word_t loc, unw_word_t val)
#define IA64_IS_UC_LOC(l) (((l).w1 & IA64_LOC_TYPE_UC) != 0) #define IA64_IS_UC_LOC(l) (((l).w1 & IA64_LOC_TYPE_UC) != 0)
#define IA64_REG_LOC(c,r) IA64_LOC_REG ((r), 0) #define IA64_REG_LOC(c,r) IA64_LOC_REG ((r), 0)
#define IA64_REG_NAT_LOC(c,r,n) IA64_LOC_REG ((r), 0)
#define IA64_FPREG_LOC(c,r) IA64_LOC_REG ((r), IA64_LOC_TYPE_FP) #define IA64_FPREG_LOC(c,r) IA64_LOC_REG ((r), IA64_LOC_TYPE_FP)
# define ia64_find_proc_info(c,ip,n) \ # define ia64_find_proc_info(c,ip,n) \
@ -376,7 +379,6 @@ struct ia64_labeled_state
#define ia64_strloc UNW_OBJ(strloc) #define ia64_strloc UNW_OBJ(strloc)
#define ia64_install_cursor UNW_OBJ(install_cursor) #define ia64_install_cursor UNW_OBJ(install_cursor)
#define rbs_switch UNW_OBJ(rbs_switch) #define rbs_switch UNW_OBJ(rbs_switch)
#define rbs_find UNW_OBJ(rbs_find)
#define rbs_find_stacked UNW_OBJ(rbs_find_stacked) #define rbs_find_stacked UNW_OBJ(rbs_find_stacked)
#define rbs_cover_and_flush UNW_OBJ(rbs_cover_and_flush) #define rbs_cover_and_flush UNW_OBJ(rbs_cover_and_flush)
@ -392,7 +394,8 @@ extern int ia64_find_save_locs (struct cursor *c);
extern void ia64_validate_cache (unw_addr_space_t as, void *arg); extern void ia64_validate_cache (unw_addr_space_t as, void *arg);
extern int ia64_local_validate_cache (unw_addr_space_t as, void *arg); extern int ia64_local_validate_cache (unw_addr_space_t as, void *arg);
extern void ia64_local_addr_space_init (void); extern void ia64_local_addr_space_init (void);
extern ia64_loc_t ia64_scratch_loc (struct cursor *c, unw_regnum_t reg); extern ia64_loc_t ia64_scratch_loc (struct cursor *c, unw_regnum_t reg,
uint8_t *nat_bitnr);
extern NORETURN void ia64_install_cursor (struct cursor *c, extern NORETURN void ia64_install_cursor (struct cursor *c,
unw_word_t pri_unat, unw_word_t pri_unat,
@ -402,7 +405,6 @@ extern int ia64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
extern int rbs_switch (struct cursor *c, extern int rbs_switch (struct cursor *c,
unw_word_t saved_bsp, unw_word_t saved_bspstore, unw_word_t saved_bsp, unw_word_t saved_bspstore,
ia64_loc_t saved_rnat_loc); ia64_loc_t saved_rnat_loc);
extern struct rbs_area *rbs_find (struct cursor *c, unw_word_t addr);
extern int rbs_find_stacked (struct cursor *c, unw_word_t regs_to_skip, extern int rbs_find_stacked (struct cursor *c, unw_word_t regs_to_skip,
ia64_loc_t *locp, ia64_loc_t *rnat_locp); ia64_loc_t *locp, ia64_loc_t *rnat_locp);
extern int rbs_cover_and_flush (struct cursor *c, unw_word_t nregs); extern int rbs_cover_and_flush (struct cursor *c, unw_word_t nregs);
@ -483,6 +485,11 @@ ia64_get_stacked (struct cursor *c, unw_word_t reg,
return ret; return ret;
} }
/* The UNaT slot # calculation is identical to the one for RNaT slots,
but for readability/clarity, we don't want to use
ia64_rnat_slot_num() directly. */
#define ia64_unat_slot_num(addr) ia64_rse_slot_num(addr)
/* XXX should be in glibc: */ /* XXX should be in glibc: */
#ifndef IA64_SC_FLAG_ONSTACK #ifndef IA64_SC_FLAG_ONSTACK
# define IA64_SC_FLAG_ONSTACK_BIT 0 /* running on signal stack? */ # define IA64_SC_FLAG_ONSTACK_BIT 0 /* running on signal stack? */