Browse Source

* arm-tdep.c (arm_write_pc): New function.

(arm_gdbarch_init): Call set_gdbarch_write_pc.
cagney_bigcore-20040122-branch
Daniel Jacobowitz 23 years ago
parent
commit
756fe439bb
  1. 5
      gdb/ChangeLog
  2. 19
      gdb/arm-tdep.c

5
gdb/ChangeLog

@ -1,3 +1,8 @@
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* arm-tdep.c (arm_write_pc): New function.
(arm_gdbarch_init): Call set_gdbarch_write_pc.
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* breakpoint.c (must_shift_inst_regs): Delete.

19
gdb/arm-tdep.c

@ -1,6 +1,6 @@
/* Common target dependent code for GDB on ARM systems.
Copyright 1988, 1989, 1991, 1992, 1993, 1995, 1996, 1998, 1999, 2000,
2001, 2002, 2003 Free Software Foundation, Inc.
2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GDB.
@ -2689,6 +2689,21 @@ arm_coff_make_msymbol_special(int val, struct minimal_symbol *msym)
MSYMBOL_SET_SPECIAL (msym);
}
static void
arm_write_pc (CORE_ADDR pc, ptid_t ptid)
{
write_register_pid (ARM_PC_REGNUM, pc, ptid);
/* If necessary, set the T bit. */
if (arm_apcs_32)
{
CORE_ADDR val = read_register_pid (ARM_PS_REGNUM, ptid);
if (arm_pc_is_thumb (pc))
write_register_pid (ARM_PS_REGNUM, val | 0x20, ptid);
else
write_register_pid (ARM_PS_REGNUM, val & ~(CORE_ADDR) 0x20, ptid);
}
}
static enum gdb_osabi
arm_elf_osabi_sniffer (bfd *abfd)
@ -2851,6 +2866,8 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_push_dummy_call (gdbarch, arm_push_dummy_call);
set_gdbarch_write_pc (gdbarch, arm_write_pc);
/* Frame handling. */
set_gdbarch_unwind_dummy_id (gdbarch, arm_unwind_dummy_id);
set_gdbarch_unwind_pc (gdbarch, arm_unwind_pc);

Loading…
Cancel
Save