GDB (xrefs)
Classes | Functions
/tmp/gdb-7.10/gdb/prologue-value.c File Reference
#include "defs.h"
#include "prologue-value.h"
#include "regcache.h"

Go to the source code of this file.

Classes

struct  area_entry
 
struct  pv_area
 

Functions

pv_t pv_unknown (void)
 
pv_t pv_constant (CORE_ADDR k)
 
pv_t pv_register (int reg, CORE_ADDR k)
 
static void constant_last (pv_t *a, pv_t *b)
 
pv_t pv_add (pv_t a, pv_t b)
 
pv_t pv_add_constant (pv_t v, CORE_ADDR k)
 
pv_t pv_subtract (pv_t a, pv_t b)
 
pv_t pv_logical_and (pv_t a, pv_t b)
 
int pv_is_identical (pv_t a, pv_t b)
 
int pv_is_constant (pv_t a)
 
int pv_is_register (pv_t a, int r)
 
int pv_is_register_k (pv_t a, int r, 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 pv_areamake_pv_area (int base_reg, int addr_bit)
 
static void clear_entries (struct pv_area *area)
 
void free_pv_area (struct pv_area *area)
 
static void do_free_pv_area_cleanup (void *arg)
 
struct cleanupmake_cleanup_free_pv_area (struct pv_area *area)
 
int pv_area_store_would_trash (struct pv_area *area, pv_t addr)
 
static struct area_entryfind_entry (struct pv_area *area, CORE_ADDR offset)
 
static int overlaps (struct pv_area *area, struct area_entry *entry, CORE_ADDR offset, CORE_ADDR size)
 
void pv_area_store (struct pv_area *area, pv_t addr, CORE_ADDR size, pv_t value)
 
pv_t pv_area_fetch (struct pv_area *area, pv_t addr, CORE_ADDR size)
 
int pv_area_find_reg (struct pv_area *area, struct gdbarch *gdbarch, int reg, CORE_ADDR *offset_p)
 
void pv_area_scan (struct pv_area *area, void(*func)(void *closure, pv_t addr, CORE_ADDR size, pv_t value), void *closure)
 

Function Documentation

static void clear_entries ( struct pv_area area)
static

Definition at line 334 of file prologue-value.c.

References pv_area::entry, area_entry::next, and xfree().

Referenced by free_pv_area(), and pv_area_store().

static void constant_last ( pv_t a,
pv_t b 
)
static

Definition at line 69 of file prologue-value.c.

References prologue_value::kind, and pvk_constant.

Referenced by pv_add(), pv_logical_and(), and pv_subtract().

static void do_free_pv_area_cleanup ( void *  arg)
static

Definition at line 366 of file prologue-value.c.

References free_pv_area().

Referenced by make_cleanup_free_pv_area().

static struct area_entry* find_entry ( struct pv_area area,
CORE_ADDR  offset 
)
static
void free_pv_area ( struct pv_area area)

Definition at line 358 of file prologue-value.c.

References clear_entries(), and xfree().

Referenced by do_free_pv_area_cleanup(), and s390_analyze_prologue().

struct cleanup* make_cleanup_free_pv_area ( struct pv_area area)
struct pv_area* make_pv_area ( int  base_reg,
int  addr_bit 
)
static int overlaps ( struct pv_area area,
struct area_entry entry,
CORE_ADDR  offset,
CORE_ADDR  size 
)
static

Definition at line 440 of file prologue-value.c.

References pv_area::addr_mask, area_entry::offset, and area_entry::size.

Referenced by pv_area_store().

pv_t pv_add ( pv_t  a,
pv_t  b 
)
pv_t pv_add_constant ( pv_t  v,
CORE_ADDR  k 
)
pv_t pv_area_fetch ( struct pv_area area,
pv_t  addr,
CORE_ADDR  size 
)
int pv_area_find_reg ( struct pv_area area,
struct gdbarch gdbarch,
int  reg,
CORE_ADDR offset_p 
)
void pv_area_scan ( struct pv_area area,
void(*)(void *closure, pv_t addr, CORE_ADDR size, pv_t value func,
void *  closure 
)
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 
)
pv_t pv_constant ( 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 
)
int pv_is_constant ( pv_t  a)
int pv_is_identical ( pv_t  a,
pv_t  b 
)
int pv_is_register ( pv_t  a,
int  r 
)
int pv_is_register_k ( pv_t  a,
int  r,
CORE_ADDR  k 
)
pv_t pv_logical_and ( pv_t  a,
pv_t  b 
)
pv_t pv_register ( int  reg,
CORE_ADDR  k 
)
pv_t pv_subtract ( pv_t  a,
pv_t  b 
)
pv_t pv_unknown ( void  )