[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>
This commit is contained in:
Tom de Vries
2024-11-12 11:37:50 +01:00
parent 510fa4aadb
commit a4a5f05266
7 changed files with 37 additions and 9 deletions

View File

@@ -96,6 +96,12 @@ struct reg_buffer_common
regcache_register_size (this, regnum)));
}
/* Supply part of register REGNUM with zeroed value. Start at OFFSET in
the register, with size SIZE. The rest of the register is left
untouched. */
virtual void raw_supply_part_zeroed (int regnum, int offset, size_t size)
= 0;
/* Collect register REGNUM from this register buffer and store its contents in
DST. */
virtual void raw_collect (int regnum, gdb::array_view<gdb_byte> dst) const