aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAlan Hayward <alan.hayward@arm.com>2017-02-27 09:58:35 +0000
committerAlan Hayward <alan.hayward@arm.com>2017-02-27 09:58:35 +0000
commit8e3681243c642d667164bd23ae9a376620da0780 (patch)
treea2311ff7b18870d84e8685aabc08d85692067c09 /gdb
parenta0aa382843fc5ccbeebf99d8d3c3075ca13e8125 (diff)
downloadgdb-8e3681243c642d667164bd23ae9a376620da0780.zip
gdb-8e3681243c642d667164bd23ae9a376620da0780.tar.gz
gdb-8e3681243c642d667164bd23ae9a376620da0780.tar.bz2
Remove MAX_REGISTER_SIZE from remote.c
gdb/ * regcache.c (regcache_raw_update): New function. (regcache_raw_read): Move code to regcache_raw_update. * regcache.h (regcache_raw_update): New declaration. * remote.c (remote_prepare_to_store): Call regcache_raw_update.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/regcache.c15
-rw-r--r--gdb/regcache.h4
-rw-r--r--gdb/remote.c3
4 files changed, 24 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ccfb4e2..c9fdd66 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2017-02-26 Alan Hayward <alan.hayward@arm.com>
+
+ * regcache.c (regcache_raw_update): New function.
+ (regcache_raw_read): Move code to regcache_raw_update.
+ * regcache.h (regcache_raw_update): New declaration.
+ * remote.c (remote_prepare_to_store): Call regcache_raw_update.
+
2017-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2read.c (create_debug_type_hash_table): Initialize
diff --git a/gdb/regcache.c b/gdb/regcache.c
index eed1bd8..0728a03 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -642,15 +642,17 @@ registers_changed (void)
alloca (0);
}
-enum register_status
-regcache_raw_read (struct regcache *regcache, int regnum, gdb_byte *buf)
+void
+regcache_raw_update (struct regcache *regcache, int regnum)
{
- gdb_assert (regcache != NULL && buf != NULL);
+ gdb_assert (regcache != NULL);
gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
+
/* Make certain that the register cache is up-to-date with respect
to the current thread. This switching shouldn't be necessary
only there is still only one target side register cache. Sigh!
On the bright side, at least there is a regcache object. */
+
if (!regcache->readonly_p
&& regcache_register_status (regcache, regnum) == REG_UNKNOWN)
{
@@ -666,6 +668,13 @@ regcache_raw_read (struct regcache *regcache, int regnum, gdb_byte *buf)
if (regcache->register_status[regnum] == REG_UNKNOWN)
regcache->register_status[regnum] = REG_UNAVAILABLE;
}
+}
+
+enum register_status
+regcache_raw_read (struct regcache *regcache, int regnum, gdb_byte *buf)
+{
+ gdb_assert (buf != NULL);
+ regcache_raw_update (regcache, regnum);
if (regcache->register_status[regnum] != REG_VALID)
memset (buf, 0, regcache->descr->sizeof_register[regnum]);
diff --git a/gdb/regcache.h b/gdb/regcache.h
index e5a7cf5..e1495f6 100644
--- a/gdb/regcache.h
+++ b/gdb/regcache.h
@@ -50,6 +50,10 @@ extern struct address_space *get_regcache_aspace (const struct regcache *);
enum register_status regcache_register_status (const struct regcache *regcache,
int regnum);
+/* Make certain that the register REGNUM in REGCACHE is up-to-date. */
+
+void regcache_raw_update (struct regcache *regcache, int regnum);
+
/* Transfer a raw register [0..NUM_REGS) between core-gdb and the
regcache. The read variants return the status of the register. */
diff --git a/gdb/remote.c b/gdb/remote.c
index 3befbd3..87fb6e0 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -7759,7 +7759,6 @@ remote_prepare_to_store (struct target_ops *self, struct regcache *regcache)
{
struct remote_arch_state *rsa = get_remote_arch_state ();
int i;
- gdb_byte buf[MAX_REGISTER_SIZE];
/* Make sure the entire registers array is valid. */
switch (packet_support (PACKET_P))
@@ -7769,7 +7768,7 @@ remote_prepare_to_store (struct target_ops *self, struct regcache *regcache)
/* Make sure all the necessary registers are cached. */
for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
if (rsa->regs[i].in_g_packet)
- regcache_raw_read (regcache, rsa->regs[i].regnum, buf);
+ regcache_raw_update (regcache, rsa->regs[i].regnum);
break;
case PACKET_ENABLE:
break;