GDB (xrefs)
Classes | Functions
/home/stan/gdb/src/gdb/prologue-value.c File Reference
#include "defs.h"
#include "gdb_string.h"
#include "gdb_assert.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 336 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 71 of file prologue-value.c.

References prologue_value::kind.

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

static void do_free_pv_area_cleanup ( void *  arg) [static]

Definition at line 368 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, read]
void free_pv_area ( struct pv_area area)

Definition at line 360 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) [read]
struct pv_area* make_pv_area ( int  base_reg,
int  addr_bit 
) [read]
static int overlaps ( struct pv_area area,
struct area_entry entry,
CORE_ADDR  offset,
CORE_ADDR  size 
) [static]

Definition at line 442 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_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 
)
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_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  )
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines