{
copy (src, dst);
#ifndef IN_PROCESS_AGENT
- if (register_status != NULL)
- register_status[n] = REG_VALID;
+ set_register_status (n, REG_VALID);
#endif
}
else
{
memset (dst.data (), 0, dst.size ());
#ifndef IN_PROCESS_AGENT
- if (register_status != NULL)
- register_status[n] = REG_UNAVAILABLE;
+ set_register_status (n, REG_UNAVAILABLE);
#endif
}
}
auto dst = register_data (regcache, n);
memset (dst.data (), 0, dst.size ());
#ifndef IN_PROCESS_AGENT
- if (regcache->register_status != NULL)
- regcache->register_status[n] = REG_VALID;
+ regcache->set_register_status (n, REG_VALID);
#endif
}
auto dst = register_data (this, regnum).slice (offset, size);
memset (dst.data (), 0, dst.size ());
#ifndef IN_PROCESS_AGENT
- if (register_status != NULL)
- register_status[regnum] = REG_VALID;
+ set_register_status (regnum, REG_VALID);
#endif
}
memcpy (regcache->registers, buf, tdesc->registers_size);
#ifndef IN_PROCESS_AGENT
- {
- int i;
-
- for (i = 0; i < tdesc->reg_defs.size (); i++)
- regcache->register_status[i] = REG_VALID;
- }
+ for (int i = 0; i < tdesc->reg_defs.size (); i++)
+ regcache->set_register_status (i, REG_VALID);
#endif
}
else
memset (regcache->registers, 0, tdesc->registers_size);
#ifndef IN_PROCESS_AGENT
- {
- int i;
-
- for (i = 0; i < tdesc->reg_defs.size (); i++)
- regcache->register_status[i] = REG_UNAVAILABLE;
- }
+ for (int i = 0; i < tdesc->reg_defs.size (); i++)
+ regcache->set_register_status (i, REG_UNAVAILABLE);
#endif
}
}
#endif
}
+void
+regcache::set_register_status (int regnum, enum register_status status)
+{
+#ifndef IN_PROCESS_AGENT
+ gdb_assert (regnum >= 0 && regnum < tdesc->reg_defs.size ());
+ if (register_status != nullptr)
+ register_status[regnum] = status;
+#endif
+}
+
/* See gdbsupport/common-regcache.h. */
bool