diff options
author | Alan Hayward <alan.hayward@arm.com> | 2019-04-10 15:58:27 +0100 |
---|---|---|
committer | Alan Hayward <alan.hayward@arm.com> | 2019-04-11 09:51:07 +0100 |
commit | 68811f8ff84895ef1cad37ac6947f1a340dd2ae2 (patch) | |
tree | 11d0455129367a4550515a1ab977366e482e2606 /gdb/trad-frame.c | |
parent | 795e3bb7de9ce2eb1ec3de3faf8f6bc925a58c9e (diff) | |
download | gdb-68811f8ff84895ef1cad37ac6947f1a340dd2ae2.zip gdb-68811f8ff84895ef1cad37ac6947f1a340dd2ae2.tar.gz gdb-68811f8ff84895ef1cad37ac6947f1a340dd2ae2.tar.bz2 |
AArch64: Ensure regcache is reset between tests
A recent change made the AArch64 self tests resuse the saved regs
cache, rather than creating a new one. Ensure it is reset to default
values between tests.
Do this by splitting the reset functionality from trad_frame_alloc_saved_regs
into a new function.
Fixes selftest on AArch64.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_analyze_prologue_test): Reset saved regs.
* trad-frame.c (trad_frame_reset_saved_regs): New function.
(trad_frame_alloc_saved_regs): Call trad_frame_reset_saved_regs.
* trad-frame.h (trad_frame_reset_saved_regs): New declaration.
Diffstat (limited to 'gdb/trad-frame.c')
-rw-r--r-- | gdb/trad-frame.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c index 3cb2953..d911475 100644 --- a/gdb/trad-frame.c +++ b/gdb/trad-frame.c @@ -44,19 +44,28 @@ trad_frame_cache_zalloc (struct frame_info *this_frame) return this_trad_cache; } +/* See trad-frame.h. */ + +void +trad_frame_reset_saved_regs (struct gdbarch *gdbarch, + struct trad_frame_saved_reg *regs) +{ + int numregs = gdbarch_num_cooked_regs (gdbarch); + for (int regnum = 0; regnum < numregs; regnum++) + { + regs[regnum].realreg = regnum; + regs[regnum].addr = -1; + } +} + struct trad_frame_saved_reg * trad_frame_alloc_saved_regs (struct gdbarch *gdbarch) { - int regnum; int numregs = gdbarch_num_cooked_regs (gdbarch); struct trad_frame_saved_reg *this_saved_regs = FRAME_OBSTACK_CALLOC (numregs, struct trad_frame_saved_reg); - for (regnum = 0; regnum < numregs; regnum++) - { - this_saved_regs[regnum].realreg = regnum; - this_saved_regs[regnum].addr = -1; - } + trad_frame_reset_saved_regs (gdbarch, this_saved_regs); return this_saved_regs; } |