201 return (a.
reg == b.
reg && a.
k == b.
k);
251 if (offset.
k <= -size
252 && offset.
k >= array_len * elt_size)
254 else if (offset.
k % elt_size != 0
259 *i = offset.
k / elt_size;
319 memset (a, 0,
sizeof (*a));
350 while (e != area->
entry);
466 while (e &&
overlaps (area, e, offset, size))
560 while (e != area->
entry);
568 void (*
func) (
void *closure,
587 while (e != area->
entry);
pv_t pv_add_constant(pv_t v, CORE_ADDR k)
enum pv_boolean pv_is_array_ref(pv_t addr, CORE_ADDR size, pv_t array_addr, CORE_ADDR array_len, CORE_ADDR elt_size, int *i)
struct cleanup * make_cleanup_free_pv_area(struct pv_area *area)
struct area_entry * entry
int pv_is_register(pv_t a, int r)
int pv_area_find_reg(struct pv_area *area, struct gdbarch *gdbarch, int reg, CORE_ADDR *offset_p)
enum prologue_value_kind kind
pv_t pv_constant(CORE_ADDR k)
int pv_is_identical(pv_t a, pv_t b)
pv_t pv_area_fetch(struct pv_area *area, pv_t addr, CORE_ADDR size)
#define gdb_assert_not_reached(message)
pv_t pv_logical_and(pv_t a, pv_t b)
int pv_is_register_k(pv_t a, int r, CORE_ADDR k)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
void pv_area_store(struct pv_area *area, pv_t addr, CORE_ADDR size, pv_t value)
int pv_area_store_would_trash(struct pv_area *area, pv_t addr)
static void clear_entries(struct pv_area *area)
static void do_free_pv_area_cleanup(void *arg)
void pv_area_scan(struct pv_area *area, void(*func)(void *closure, pv_t addr, CORE_ADDR size, pv_t value), void *closure)
static int overlaps(struct pv_area *area, struct area_entry *entry, CORE_ADDR offset, CORE_ADDR size)
struct pv_area * make_pv_area(int base_reg, int addr_bit)
static void constant_last(pv_t *a, pv_t *b)
int register_size(struct gdbarch *gdbarch, int regnum)
pv_t pv_subtract(pv_t a, pv_t b)
pv_t pv_add(pv_t a, pv_t b)
int pv_is_constant(pv_t a)
void free_pv_area(struct pv_area *area)
pv_t pv_register(int reg, CORE_ADDR k)
static struct area_entry * find_entry(struct pv_area *area, CORE_ADDR offset)