mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
* gdbarch.sh (software_single_step): Replace REGCACHE argument by
FRAME argument. * gdbarch.c, gdbarch.h: Regenerate. * infrun.c (resume): Pass current frame to SOFTWARE_SINGLE_STEP. * alpha-tdep.c (alpha_next_pc): Add FRAME argument. Retrieve registers from FRAME instead of using read_register. (alpha_software_single_step): Replace REGCACHE by FRAME. Pass FRAME to alpha_next_pc. Use get_frame_pc instead of read_pc. * alpha-tdep.h (alpha_software_single_step): Replace REGCACHE argument by FRAME. * arm-tdep.c (shifted_reg_val): Add FRAME argument. Read registers from FRAME instead of using read_register. (thumb_get_next_pc): Likewise. (arm_get_next_pc): Likewise. (arm_software_single_step): Replace REGCACHE by FRAME. Pass FRAME to arm_get_next_pc. Use get_frame_pc instead of read_register. * arm-tdep.h (arm_software_single_step): Replace REGCACHE argument by FRAME. * cris-tdep.c (find_step_target): Add FRAME argument. Read registers from FRAME instead of using read_register. (cris_software_single_step): Replace REGCACHE by FRAME. Pass FRAME to find_step_target. * mips-tdep.c (mips32_next_pc): Add FRAME argument. Read registers from FRAME instead of using read_register / read_signed_register. (extended_mips16_next_pc): Likewise. (mips16_next_pc): Likewise. (mips_next_pc): Likewise. (mips_software_single_step): Replace REGCACHE by FRAME. Pass FRAME to mips_next_pc. Use get_frame_pc instead of read_pc. * mips-tdep.h (mips_software_single_step): Replace REGCACHE argument by FRAME. * rs6000-tdep.c (branch_dest): Add FRAME argument. Use it instead of current frame. Read registers from FRAME. (deal_with_atomic_sequence): Add FRAME argument. Pass it to branch_dest. Use get_frame_pc instead of read_pc. (rs6000_software_single_step): Likewise. (bl_to_blrl_insn_p): Do not call branch_dest. * rs6000-tdep.h (rs6000_software_single_step): Replace REGCACHE argument by FRAME. * sparc64-linux-tdep.c (sparc64_linux_step_trap): Add FRAME argument. Read registers from FRAME instead of current regcache. * sparc-linux-tdep.c (sparc32_linux_step_trap): Likewise. * sparcnbsd-tdep.c (sparcnbsd_step_trap): Likewise. * sparc-tdep.c (sparc_address_from_register): Remove. (sparc_analyze_control_transfer): Pass FRAME argument instead of GDBARCH. Pass FRAME to step_trap callback. (sparc_step_trap): Add FRAME argument. (space_software_single_step): Replace REGCACHE by FRAME. Pass FRAME to sparc_analyze_control_transfer. Read registers from FRAME instead of calling sparc_address_from_register. * sparc-tdep.h (struct gdbarch_tdep): Add FRAME argument to step_trap callback. (sparc_address_from_register): Remove prototype. (sparc_software_single_step): Replace REGCACHE argument by FRAME. (sparcnbsd_step_trap): Add FRAME argument. * spu-tdep.c (spu_software_single_step): Replace REGCACHE argument by FRAME. Read registers from FRAME instead of REGCACHE.
This commit is contained in:
@ -2059,7 +2059,7 @@ find_cris_op (unsigned short insn, inst_env_type *inst_env)
|
||||
actually an internal error. */
|
||||
|
||||
static int
|
||||
find_step_target (inst_env_type *inst_env)
|
||||
find_step_target (struct frame_info *frame, inst_env_type *inst_env)
|
||||
{
|
||||
int i;
|
||||
int offset;
|
||||
@ -2068,12 +2068,14 @@ find_step_target (inst_env_type *inst_env)
|
||||
/* Create a local register image and set the initial state. */
|
||||
for (i = 0; i < NUM_GENREGS; i++)
|
||||
{
|
||||
inst_env->reg[i] = (unsigned long) read_register (i);
|
||||
inst_env->reg[i] =
|
||||
(unsigned long) get_frame_register_unsigned (frame, i);
|
||||
}
|
||||
offset = NUM_GENREGS;
|
||||
for (i = 0; i < NUM_SPECREGS; i++)
|
||||
{
|
||||
inst_env->preg[i] = (unsigned long) read_register (offset + i);
|
||||
inst_env->preg[i] =
|
||||
(unsigned long) get_frame_register_unsigned (frame, offset + i);
|
||||
}
|
||||
inst_env->branch_found = 0;
|
||||
inst_env->slot_needed = 0;
|
||||
@ -2124,13 +2126,13 @@ find_step_target (inst_env_type *inst_env)
|
||||
Either one ordinary target or two targets for branches may be found. */
|
||||
|
||||
static int
|
||||
cris_software_single_step (struct regcache *regcache)
|
||||
cris_software_single_step (struct frame_info *frame)
|
||||
{
|
||||
inst_env_type inst_env;
|
||||
|
||||
/* Analyse the present instruction environment and insert
|
||||
breakpoints. */
|
||||
int status = find_step_target (&inst_env);
|
||||
int status = find_step_target (frame, &inst_env);
|
||||
if (status == -1)
|
||||
{
|
||||
/* Could not find a target. Things are likely to go downhill
|
||||
|
Reference in New Issue
Block a user