2003-03-12 Andrew Cagney <cagney@redhat.com>
* regcache.c (regcache_cooked_write_signed): New function. (regcache_cooked_write_unsigned): New function. (regcache_cooked_read_unsigned): Fix regnum in range assertion. (regcache_cooked_read_signed): Fix regnum in range assertion. * regcache.h (regcache_cooked_write_signed): Declare. (regcache_cooked_write_unsigned): Declare.
This commit is contained in:
parent
3db0a37f80
commit
a66a9c2331
3 changed files with 39 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
|||
2003-03-12 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* regcache.c (regcache_cooked_write_signed): New function.
|
||||
(regcache_cooked_write_unsigned): New function.
|
||||
(regcache_cooked_read_unsigned): Fix regnum in range assertion.
|
||||
(regcache_cooked_read_signed): Fix regnum in range assertion.
|
||||
* regcache.h (regcache_cooked_write_signed): Declare.
|
||||
(regcache_cooked_write_unsigned): Declare.
|
||||
|
||||
2003-03-12 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
|
||||
|
|
|
@ -884,7 +884,7 @@ regcache_cooked_read_signed (struct regcache *regcache, int regnum,
|
|||
{
|
||||
char *buf;
|
||||
gdb_assert (regcache != NULL);
|
||||
gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
|
||||
gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers);
|
||||
buf = alloca (regcache->descr->sizeof_register[regnum]);
|
||||
regcache_cooked_read (regcache, regnum, buf);
|
||||
(*val) = extract_signed_integer (buf,
|
||||
|
@ -897,13 +897,37 @@ regcache_cooked_read_unsigned (struct regcache *regcache, int regnum,
|
|||
{
|
||||
char *buf;
|
||||
gdb_assert (regcache != NULL);
|
||||
gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
|
||||
gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers);
|
||||
buf = alloca (regcache->descr->sizeof_register[regnum]);
|
||||
regcache_cooked_read (regcache, regnum, buf);
|
||||
(*val) = extract_unsigned_integer (buf,
|
||||
regcache->descr->sizeof_register[regnum]);
|
||||
}
|
||||
|
||||
void
|
||||
regcache_cooked_write_signed (struct regcache *regcache, int regnum,
|
||||
LONGEST val)
|
||||
{
|
||||
void *buf;
|
||||
gdb_assert (regcache != NULL);
|
||||
gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers);
|
||||
buf = alloca (regcache->descr->sizeof_register[regnum]);
|
||||
store_signed_integer (buf, regcache->descr->sizeof_register[regnum], val);
|
||||
regcache_cooked_write (regcache, regnum, buf);
|
||||
}
|
||||
|
||||
void
|
||||
regcache_cooked_write_unsigned (struct regcache *regcache, int regnum,
|
||||
ULONGEST val)
|
||||
{
|
||||
void *buf;
|
||||
gdb_assert (regcache != NULL);
|
||||
gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers);
|
||||
buf = alloca (regcache->descr->sizeof_register[regnum]);
|
||||
store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], val);
|
||||
regcache_cooked_write (regcache, regnum, buf);
|
||||
}
|
||||
|
||||
/* Write register REGNUM at MYADDR to the target. MYADDR points at
|
||||
REGISTER_RAW_BYTES(REGNUM), which must be in target byte-order. */
|
||||
|
||||
|
|
|
@ -75,6 +75,10 @@ extern void regcache_cooked_read_signed (struct regcache *regcache,
|
|||
int regnum, LONGEST *val);
|
||||
extern void regcache_cooked_read_unsigned (struct regcache *regcache,
|
||||
int regnum, ULONGEST *val);
|
||||
extern void regcache_cooked_write_signed (struct regcache *regcache,
|
||||
int regnum, LONGEST val);
|
||||
extern void regcache_cooked_write_unsigned (struct regcache *regcache,
|
||||
int regnum, ULONGEST val);
|
||||
|
||||
/* Partial transfer of a cooked register. These perform read, modify,
|
||||
write style operations. */
|
||||
|
|
Loading…
Reference in a new issue