forked from Imagelibrary/binutils-gdb
Share regcache function regcache_raw_read_unsigned
This patch is in preparation for software single step support on ARM in
GDBServer. It adds a new shared function regcache_raw_read_unsigned and
regcache_raw_get_unsigned so that GDB and GDBServer can use the same call
to fetch a raw register into an integer.
No regressions, tested on ubuntu 14.04 ARMv7 and x86.
With gdbserver-{native,extended} / { -marm -mthumb }
gdb/ChangeLog:
* Makefile.in (SFILES): Append common/common-regcache.c.
(COMMON_OBS): Append common/common-regcache.o.
(common-regcache.o): New rule.
* common/common-regcache.h (register_status) New enum.
(regcache_raw_read_unsigned): New declaration.
* common/common-regcache.c: New file.
* regcache.h (enum register_status): Move to common-regcache.h.
(regcache_raw_read_unsigned): Likewise.
(regcache_raw_get_unsigned): Likewise.
gdb/gdbserver/ChangeLog:
* Makefile.in (SFILES): Append common/common-regcache.c.
(OBS): Append common-regcache.o.
(common-regcache.o): New rule.
* regcache.c (init_register_cache): Initialize cache to
REG_UNAVAILABLE.
(regcache_raw_read_unsigned): New function.
* regcache.h (REG_UNAVAILABLE, REG_VALID): Replaced by shared
register_status enum.
This commit is contained in:
@@ -715,21 +715,6 @@ regcache_raw_read_unsigned (struct regcache *regcache, int regnum,
|
||||
return status;
|
||||
}
|
||||
|
||||
/* Return the register's value or throw if it's not available. */
|
||||
|
||||
ULONGEST
|
||||
regcache_raw_get_unsigned (struct regcache *regcache, int regnum)
|
||||
{
|
||||
ULONGEST value;
|
||||
enum register_status status;
|
||||
|
||||
status = regcache_raw_read_unsigned (regcache, regnum, &value);
|
||||
if (status == REG_UNAVAILABLE)
|
||||
throw_error (NOT_AVAILABLE_ERROR,
|
||||
_("Register %d is not available"), regnum);
|
||||
return value;
|
||||
}
|
||||
|
||||
void
|
||||
regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user