|
|
|
@ -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); |
|
|
|
|