aboutsummaryrefslogtreecommitdiff
path: root/gdb/regcache.c
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2024-11-12 11:37:50 +0100
committerTom de Vries <tdevries@suse.de>2024-11-12 11:37:50 +0100
commita4a5f05266b69ebe8172433217d47cc7a737e51d (patch)
tree6d9411eb6ea8c52aa4c2f67bb6bc5033693a6c7c /gdb/regcache.c
parent510fa4aadb1c6509ebbbe55b901231c45039efd8 (diff)
downloadgdb-a4a5f05266b69ebe8172433217d47cc7a737e51d.zip
gdb-a4a5f05266b69ebe8172433217d47cc7a737e51d.tar.gz
gdb-a4a5f05266b69ebe8172433217d47cc7a737e51d.tar.bz2
[gdb/tdep] Use raw_supply_part_zeroed for AArch64
In gdb/aarch64-linux-tdep.c we find: ... gdb::byte_vector za_zeroed (za_bytes, 0); regcache->raw_supply (tdep->sme_za_regnum, za_zeroed); ... We can't use reg_buffer::raw_supply_zeroed here because only part of the register is written. Add raw_supply_part_zeroed, and use it instead. Likewise elsewhere in AArch64 tdep code. Tested on aarch64-linux. Approved-By: Luis Machado <luis.machado@arm.com>
Diffstat (limited to 'gdb/regcache.c')
-rw-r--r--gdb/regcache.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/regcache.c b/gdb/regcache.c
index f04354d..ab3f616 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1190,6 +1190,16 @@ reg_buffer::raw_supply_zeroed (int regnum)
/* See gdbsupport/common-regcache.h. */
void
+reg_buffer::raw_supply_part_zeroed (int regnum, int offset, size_t size)
+{
+ gdb::array_view<gdb_byte> dst = register_buffer (regnum).slice (offset, size);
+ memset (dst.data (), 0, dst.size ());
+ m_register_status[regnum] = REG_VALID;
+}
+
+/* See gdbsupport/common-regcache.h. */
+
+void
reg_buffer::raw_collect (int regnum, gdb::array_view<gdb_byte> dst) const
{
gdb::array_view<const gdb_byte> src = register_buffer (regnum);