diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/arch/arm-get-next-pcs.c | 24 | ||||
-rw-r--r-- | gdb/arch/arm-get-next-pcs.h | 3 | ||||
-rw-r--r-- | gdb/arm-linux-tdep.c | 2 | ||||
-rw-r--r-- | gdb/arm-tdep.c | 2 | ||||
-rw-r--r-- | gdb/gdbserver/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbserver/linux-arm-low.c | 4 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 4 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.h | 2 |
9 files changed, 38 insertions, 21 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8a4453c..099c10c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2016-01-25 Yao Qi <yao.qi@linaro.org> + + * arch/arm-get-next-pcs.c (thumb_deal_with_atomic_sequence_raw): + Remove argument pc. Get pc by regcache_read_pc. Callers updated. + (arm_deal_with_atomic_sequence_raw): Likewise. + (thumb_get_next_pcs_raw): Likewise. + (arm_get_next_pcs_raw): Likewise. + (arm_get_next_pcs): Remove argument pc. Callers updated. + * arch/arm-get-next-pcs.h (arm_get_next_pcs): Update declaration. + 2016-01-25 Mark Wielaard <mjw@redhat.com> * ada-lang.c (ada_evaluate_subexp): Add proper else block. diff --git a/gdb/arch/arm-get-next-pcs.c b/gdb/arch/arm-get-next-pcs.c index 6b8f38a..e840147 100644 --- a/gdb/arch/arm-get-next-pcs.c +++ b/gdb/arch/arm-get-next-pcs.c @@ -46,11 +46,11 @@ arm_get_next_pcs_ctor (struct arm_get_next_pcs *self, added to the next_pcs list. */ static VEC (CORE_ADDR) * -thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self, - CORE_ADDR pc) +thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self) { int byte_order_for_code = self->byte_order_for_code; CORE_ADDR breaks[2] = {-1, -1}; + CORE_ADDR pc = regcache_read_pc (self->regcache); CORE_ADDR loc = pc; unsigned short insn1, insn2; int insn_count; @@ -183,11 +183,11 @@ thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self, added to the next_pcs list. */ static VEC (CORE_ADDR) * -arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self, - CORE_ADDR pc) +arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self) { int byte_order_for_code = self->byte_order_for_code; CORE_ADDR breaks[2] = {-1, -1}; + CORE_ADDR pc = regcache_read_pc (self->regcache); CORE_ADDR loc = pc; unsigned int insn; int insn_count; @@ -261,10 +261,11 @@ arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self, /* Find the next possible PCs for thumb mode. */ static VEC (CORE_ADDR) * -thumb_get_next_pcs_raw (struct arm_get_next_pcs *self, CORE_ADDR pc) +thumb_get_next_pcs_raw (struct arm_get_next_pcs *self) { int byte_order = self->byte_order; int byte_order_for_code = self->byte_order_for_code; + CORE_ADDR pc = regcache_read_pc (self->regcache); unsigned long pc_val = ((unsigned long) pc) + 4; /* PC after prefetch */ unsigned short inst1; CORE_ADDR nextpc = pc + 2; /* Default is next instruction. */ @@ -641,7 +642,7 @@ thumb_get_next_pcs_raw (struct arm_get_next_pcs *self, CORE_ADDR pc) address in GDB and arm_addr_bits_remove in GDBServer. */ static VEC (CORE_ADDR) * -arm_get_next_pcs_raw (struct arm_get_next_pcs *self, CORE_ADDR pc) +arm_get_next_pcs_raw (struct arm_get_next_pcs *self) { int byte_order = self->byte_order; int byte_order_for_code = self->byte_order_for_code; @@ -650,6 +651,7 @@ arm_get_next_pcs_raw (struct arm_get_next_pcs *self, CORE_ADDR pc) unsigned long status; CORE_ADDR nextpc; struct regcache *regcache = self->regcache; + CORE_ADDR pc = regcache_read_pc (self->regcache); VEC (CORE_ADDR) *next_pcs = NULL; pc_val = (unsigned long) pc; @@ -904,21 +906,21 @@ arm_get_next_pcs_raw (struct arm_get_next_pcs *self, CORE_ADDR pc) /* See arm-get-next-pcs.h. */ VEC (CORE_ADDR) * -arm_get_next_pcs (struct arm_get_next_pcs *self, CORE_ADDR pc) +arm_get_next_pcs (struct arm_get_next_pcs *self) { VEC (CORE_ADDR) *next_pcs = NULL; if (self->ops->is_thumb (self)) { - next_pcs = thumb_deal_with_atomic_sequence_raw (self, pc); + next_pcs = thumb_deal_with_atomic_sequence_raw (self); if (next_pcs == NULL) - next_pcs = thumb_get_next_pcs_raw (self, pc); + next_pcs = thumb_get_next_pcs_raw (self); } else { - next_pcs = arm_deal_with_atomic_sequence_raw (self, pc); + next_pcs = arm_deal_with_atomic_sequence_raw (self); if (next_pcs == NULL) - next_pcs = arm_get_next_pcs_raw (self, pc); + next_pcs = arm_get_next_pcs_raw (self); } return next_pcs; diff --git a/gdb/arch/arm-get-next-pcs.h b/gdb/arch/arm-get-next-pcs.h index 4a0fc16..7cb0858 100644 --- a/gdb/arch/arm-get-next-pcs.h +++ b/gdb/arch/arm-get-next-pcs.h @@ -57,7 +57,6 @@ void arm_get_next_pcs_ctor (struct arm_get_next_pcs *self, struct regcache *regcache); /* Find the next possible PCs after the current instruction executes. */ -VEC (CORE_ADDR) *arm_get_next_pcs (struct arm_get_next_pcs *self, - CORE_ADDR pc); +VEC (CORE_ADDR) *arm_get_next_pcs (struct arm_get_next_pcs *self); #endif /* ARM_GET_NEXT_PCS_H */ diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index f6a831a..3421f3b 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -947,7 +947,7 @@ arm_linux_software_single_step (struct frame_info *frame) 1, regcache); - next_pcs = arm_get_next_pcs (&next_pcs_ctx, regcache_read_pc (regcache)); + next_pcs = arm_get_next_pcs (&next_pcs_ctx); for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++) { diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index ccc2a03..5a2d490 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -6186,7 +6186,7 @@ arm_software_single_step (struct frame_info *frame) 0, regcache); - next_pcs = arm_get_next_pcs (&next_pcs_ctx, regcache_read_pc (regcache)); + next_pcs = arm_get_next_pcs (&next_pcs_ctx); for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++) arm_insert_single_step_breakpoint (gdbarch, aspace, pc); diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 8c1677d..e511de9 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,13 @@ 2016-01-26 Yao Qi <yao.qi@linaro.org> + * linux-arm-low.c (arm_gdbserver_get_next_pcs): Remove argument pc. + * linux-low.c (install_software_single_step_breakpoints): Don't + call regcache_read_pc. + * linux-low.h (struct linux_target_ops) <get_next_pcs>: Remove + argument pc. + +2016-01-26 Yao Qi <yao.qi@linaro.org> + * linux-low.c (install_software_single_step_breakpoints): Call regcache_read_pc instead of get_pc. diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c index c4f43bb..0f62706 100644 --- a/gdb/gdbserver/linux-arm-low.c +++ b/gdb/gdbserver/linux-arm-low.c @@ -923,7 +923,7 @@ arm_arch_setup (void) /* Fetch the next possible PCs after the current instruction executes. */ static VEC (CORE_ADDR) * -arm_gdbserver_get_next_pcs (CORE_ADDR pc, struct regcache *regcache) +arm_gdbserver_get_next_pcs (struct regcache *regcache) { struct arm_get_next_pcs next_pcs_ctx; VEC (CORE_ADDR) *next_pcs = NULL; @@ -936,7 +936,7 @@ arm_gdbserver_get_next_pcs (CORE_ADDR pc, struct regcache *regcache) 1, regcache); - next_pcs = arm_get_next_pcs (&next_pcs_ctx, pc); + next_pcs = arm_get_next_pcs (&next_pcs_ctx); return next_pcs; } diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index b35b569..bce7580 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -4103,9 +4103,7 @@ install_software_single_step_breakpoints (struct lwp_info *lwp) VEC (CORE_ADDR) *next_pcs = NULL; struct cleanup *old_chain = make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs); - pc = regcache_read_pc (regcache); - - next_pcs = (*the_low_target.get_next_pcs) (pc, regcache); + next_pcs = (*the_low_target.get_next_pcs) (regcache); for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); ++i) set_reinsert_breakpoint (pc); diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h index 4845862..0d9eb40 100644 --- a/gdb/gdbserver/linux-low.h +++ b/gdb/gdbserver/linux-low.h @@ -154,7 +154,7 @@ struct linux_target_ops const gdb_byte *(*sw_breakpoint_from_kind) (int kind, int *size); /* Find the next possible PCs after the current instruction executes. */ - VEC (CORE_ADDR) *(*get_next_pcs) (CORE_ADDR pc, struct regcache *regcache); + VEC (CORE_ADDR) *(*get_next_pcs) (struct regcache *regcache); int decr_pc_after_break; int (*breakpoint_at) (CORE_ADDR pc); |