/* Traditional frame unwind support, for GDB the GNU Debugger.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GDB.
#include "frame.h" /* For "struct frame_id". */
struct frame_info;
+struct regcache_map_entry;
struct trad_frame_cache;
/* A simple, or traditional frame cache.
int regnum, int realreg);
void trad_frame_set_reg_addr (struct trad_frame_cache *this_trad_cache,
int regnum, CORE_ADDR addr);
+void trad_frame_set_reg_regmap (struct trad_frame_cache *this_trad_cache,
+ const struct regcache_map_entry *regmap,
+ CORE_ADDR addr, size_t size);
void trad_frame_set_reg_value (struct trad_frame_cache *this_cache,
int regnum, LONGEST val);
void trad_frame_set_value (struct trad_frame_saved_reg this_saved_regs[],
int regnum, LONGEST val);
+/* Encode REGNUM is in REALREG in the trad-frame. */
+void trad_frame_set_realreg (struct trad_frame_saved_reg this_saved_regs[],
+ int regnum, int realreg);
+
+/* Encode REGNUM is at address ADDR in the trad-frame. */
+void trad_frame_set_addr (struct trad_frame_saved_reg this_trad_cache[],
+ int regnum, CORE_ADDR addr);
+
/* Mark REGNUM as unknown. */
void trad_frame_set_unknown (struct trad_frame_saved_reg this_saved_regs[],
int regnum);
int trad_frame_realreg_p (struct trad_frame_saved_reg this_saved_regs[],
int regnum);
+/* Reset the save regs cache, setting register values to -1. */
+void trad_frame_reset_saved_regs (struct gdbarch *gdbarch,
+ struct trad_frame_saved_reg *regs);
/* Return a freshly allocated (and initialized) trad_frame array. */
struct trad_frame_saved_reg *trad_frame_alloc_saved_regs (struct frame_info *);
+struct trad_frame_saved_reg *trad_frame_alloc_saved_regs (struct gdbarch *);
/* Given the trad_frame info, return the location of the specified
register. */