aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorLuis Machado <luis.machado@linaro.org>2020-12-23 16:06:11 -0300
committerLuis Machado <luis.machado@linaro.org>2021-01-19 10:26:52 -0300
commitccbe4c82d5219502806dc62aa1cf51e5b1a4b479 (patch)
tree5e3b6973a19cee71128da07880c85464b702d5ef /gdb
parent26503e2f5eae6019c8649a3dd204a82705efc740 (diff)
downloadgdb-ccbe4c82d5219502806dc62aa1cf51e5b1a4b479.zip
gdb-ccbe4c82d5219502806dc62aa1cf51e5b1a4b479.tar.gz
gdb-ccbe4c82d5219502806dc62aa1cf51e5b1a4b479.tar.bz2
Use gdb::array_view for setting value bytes in trad-frame
This patch updates the functions setting value bytes in trad-frame to use a gdb::array_view instead of passing a buffer and a size. gdb/ChangeLog: 2021-01-19 Luis Machado <luis.machado@linaro.org> * aarch64-linux-tdep.c (aarch64_linux_restore_vreg): Pass in an array_view. * trad-frame.c (trad_frame_set_value_bytes): Use gdb::array_view instead of buffer and size. (trad_frame_set_reg_value_bytes): Likewise. * trad-frame.h (trad_frame_set_reg_value_bytes): Likewise. (trad_frame_set_value_bytes): Likewise.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/aarch64-linux-tdep.c14
-rw-r--r--gdb/trad-frame.c15
-rw-r--r--gdb/trad-frame.h8
4 files changed, 28 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1368930..e31ed43 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2021-01-19 Luis Machado <luis.machado@linaro.org>
+
+ * aarch64-linux-tdep.c (aarch64_linux_restore_vreg): Pass in an
+ array_view.
+ * trad-frame.c (trad_frame_set_value_bytes): Use gdb::array_view
+ instead of buffer and size.
+ (trad_frame_set_reg_value_bytes): Likewise.
+ * trad-frame.h (trad_frame_set_reg_value_bytes): Likewise.
+ (trad_frame_set_value_bytes): Likewise.
+
2021-01-18 Mike Frysinger <vapier@gentoo.org>
* copyright.py (NOT_FSF_LIST): Delete sim/testsuite/sim/bfin/s21.s.
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 4c2caf8..954b05c 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -222,27 +222,27 @@ aarch64_linux_restore_vreg (struct trad_frame_cache *cache, int num_regs,
/* Now we can store the correct bytes for the V register. */
trad_frame_set_reg_value_bytes (cache, AARCH64_V0_REGNUM + vreg_num,
- buf, V_REGISTER_SIZE);
+ {buf, V_REGISTER_SIZE});
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_Q0_REGNUM
- + vreg_num, buf, Q_REGISTER_SIZE);
+ + vreg_num, {buf, Q_REGISTER_SIZE});
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_D0_REGNUM
- + vreg_num, buf, D_REGISTER_SIZE);
+ + vreg_num, {buf, D_REGISTER_SIZE});
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_S0_REGNUM
- + vreg_num, buf, S_REGISTER_SIZE);
+ + vreg_num, {buf, S_REGISTER_SIZE});
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_H0_REGNUM
- + vreg_num, buf, H_REGISTER_SIZE);
+ + vreg_num, {buf, H_REGISTER_SIZE});
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_B0_REGNUM
- + vreg_num, buf, B_REGISTER_SIZE);
+ + vreg_num, {buf, B_REGISTER_SIZE});
if (has_sve)
trad_frame_set_reg_value_bytes (cache,
num_regs + AARCH64_SVE_V0_REGNUM
- + vreg_num, buf, V_REGISTER_SIZE);
+ + vreg_num, {buf, V_REGISTER_SIZE});
}
return;
}
diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c
index 3284c45..53bd097 100644
--- a/gdb/trad-frame.c
+++ b/gdb/trad-frame.c
@@ -229,12 +229,12 @@ trad_frame_set_unknown (trad_frame_saved_reg this_saved_regs[],
void
trad_frame_set_value_bytes (trad_frame_saved_reg this_saved_regs[],
- int regnum, const gdb_byte *bytes,
- size_t size)
+ int regnum,
+ gdb::array_view<const gdb_byte> bytes)
{
/* Allocate the space and copy the data bytes. */
- gdb_byte *data = FRAME_OBSTACK_CALLOC (size, gdb_byte);
- memcpy (data, bytes, size);
+ gdb_byte *data = FRAME_OBSTACK_CALLOC (bytes.size (), gdb_byte);
+ memcpy (data, bytes.data (), bytes.size ());
this_saved_regs[regnum].set_value_bytes (data);
}
@@ -242,13 +242,12 @@ trad_frame_set_value_bytes (trad_frame_saved_reg this_saved_regs[],
void
trad_frame_set_reg_value_bytes (struct trad_frame_cache *this_trad_cache,
- int regnum, const gdb_byte *bytes,
- size_t size)
+ int regnum,
+ gdb::array_view<const gdb_byte> bytes)
{
/* External interface for users of trad_frame_cache
(who cannot access the prev_regs object directly). */
- trad_frame_set_value_bytes (this_trad_cache->prev_regs, regnum, bytes,
- size);
+ trad_frame_set_value_bytes (this_trad_cache->prev_regs, regnum, bytes);
}
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h
index cdc937c..dc29bab 100644
--- a/gdb/trad-frame.h
+++ b/gdb/trad-frame.h
@@ -55,8 +55,8 @@ void trad_frame_set_reg_value (struct trad_frame_cache *this_cache,
/* Given the cache in THIS_TRAD_CACHE, set the value of REGNUM to the bytes
contained in BYTES with size SIZE. */
void trad_frame_set_reg_value_bytes (struct trad_frame_cache *this_trad_cache,
- int regnum, const gdb_byte *bytes,
- size_t size);
+ int regnum,
+ gdb::array_view<const gdb_byte> bytes);
struct value *trad_frame_get_register (struct trad_frame_cache *this_trad_cache,
struct frame_info *this_frame,
@@ -204,8 +204,8 @@ void trad_frame_set_unknown (trad_frame_saved_reg this_saved_regs[],
/* Encode REGNUM value in the trad-frame as a sequence of bytes. This is
useful when the value is larger than what primitive types can hold. */
void trad_frame_set_value_bytes (trad_frame_saved_reg this_saved_regs[],
- int regnum, const gdb_byte *bytes,
- size_t size);
+ int regnum,
+ gdb::array_view<const gdb_byte> bytes);
/* Convenience functions, return non-zero if the register has been
encoded as specified. */