diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-15 22:44:56 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-15 22:44:56 +0000 |
commit | 61a1198acf6397fc68016561e165a8ca89dcbc16 (patch) | |
tree | 8169ab1f776d5f5063cae391bd81cfa0141af3fa /gdb/mips-tdep.c | |
parent | e4fd649ae26abcf2528f0d64593bce95d94321e5 (diff) | |
download | gdb-61a1198acf6397fc68016561e165a8ca89dcbc16.zip gdb-61a1198acf6397fc68016561e165a8ca89dcbc16.tar.gz gdb-61a1198acf6397fc68016561e165a8ca89dcbc16.tar.bz2 |
* gdbarch.sh (read_pc): Add REGCACHE argument. Remove PTID argument.
(write_pc): Likewise. Remove default implementation, add predicate.
* gdbarch.c, gdbarch.h: Regenerate.
* regcache.c (read_pc_pid): Use current regcache instead of calling
read_register_pid.
(write_pc_pid): Check gdbarch_write_pc predicate, implement default
case inline.
(generic_target_write_pc): Remove.
* inferior.h (generic_target_write_pc): Remove.
* frv-tdep.c (frv_gdbarch_init): Do not install it.
* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
* sh64-tdep.c (sh64_gdbarch_init): Likewise.
* sh-tdep.c (sh_gdbarch_init): Likewise.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
* avr-tdep.c (avr_read_pc): Add REGCACHE argument. Remove PTID
argument. Use REGCACHE instead of calling read_register_pid.
* hppa-hpux-tdep.c (hppa_hpux_read_pc): Likewise.
* hppa-tdep.c (hppa_read_pc): Likewise.
* hppa-tdep.h (hppa_read_pc): Likewise.
* ia64-tdep.c (ia64_read_pc): Likewise.
* m32r-tdep.c (m32r_read_pc): Likewise.
* mep-tdep.c (mep_read_pc): Likewise.
* mn10300-tdep.c (mn10300_read_pc): Likewise.
* spu-tdep.c (spu_read_pc): Likewise.
* arm-tdep.c (arm_write_pc): Add REGCACHE argument. Remove PTID
argument. Use REGCACHE instead of calling write_register_pid.
* avr-tdep.c (avr_write_pc): Likewise.
* hppa-hpux-tdep.c (hppa_hpux_write_pc): Likewise.
* hppa-tdep.c (hppa_write_pc): Likewise.
* hppa-tdep.h (hppa_write_pc): Likewise.
* i386-linux-tdep.c (i386_linux_write_pc): Likewise.
* amd64-linux-tdep.c (amd64_linux_write_pc): Likewise.
* ia64-linux-tdep.c (ia64_linux_write_pc): Likewise.
* ia64-tdep.c (ia64_write_pc): Likewise.
* ia64-tdep.h (ia64_write_pc): Likewise.
* m32r-tdep.c (m32r_write_pc): Likewise.
* m88k-tdep.c (m88k_write_pc): Likewise.
* mep-tdep.c (mep_write_pc): Likewise.
* mips-tdep.c (mips_write_pc): Likewise.
* mips-linux-tdep.c (mips_linux_write_pc): Likewise.
* mn10300-tdep.c (mn10300_write_pc): Likewise.
* sparc-tdep.c (sparc_write_pc): Likewise.
* spu-tdep.c (spu_write_pc): Likewise.
* mips-tdep.c (read_signed_register): Remove.
(read_signed_register_pid): Likewise.
(mips_read_pc): Add REGCACHE argument. Remove PTID argument.
Use REGCACHE instead of calling read_signed_register_pid.
Diffstat (limited to 'gdb/mips-tdep.c')
-rw-r--r-- | gdb/mips-tdep.c | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index da46b35..0597191 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -266,36 +266,6 @@ unmake_mips16_addr (CORE_ADDR addr) return ((addr) & ~(CORE_ADDR) 1); } -/* Return the contents of register REGNUM as a signed integer. */ - -static LONGEST -read_signed_register (int regnum) -{ - LONGEST val; - regcache_cooked_read_signed (current_regcache, regnum, &val); - return val; -} - -static LONGEST -read_signed_register_pid (int regnum, ptid_t ptid) -{ - ptid_t save_ptid; - LONGEST retval; - - if (ptid_equal (ptid, inferior_ptid)) - return read_signed_register (regnum); - - save_ptid = inferior_ptid; - - inferior_ptid = ptid; - - retval = read_signed_register (regnum); - - inferior_ptid = save_ptid; - - return retval; -} - /* Return the MIPS ABI associated with GDBARCH. */ enum mips_abi mips_abi (struct gdbarch *gdbarch) @@ -926,9 +896,12 @@ mips_pc_is_mips16 (CORE_ADDR memaddr) all registers should be sign extended for simplicity? */ static CORE_ADDR -mips_read_pc (ptid_t ptid) +mips_read_pc (struct regcache *regcache) { - return read_signed_register_pid (mips_regnum (current_gdbarch)->pc, ptid); + ULONGEST pc; + int regnum = mips_regnum (get_regcache_arch (regcache))->pc; + regcache_cooked_read_signed (regcache, regnum, &pc); + return pc; } static CORE_ADDR @@ -963,9 +936,10 @@ mips_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame) } static void -mips_write_pc (CORE_ADDR pc, ptid_t ptid) +mips_write_pc (struct regcache *regcache, CORE_ADDR pc) { - write_register_pid (mips_regnum (current_gdbarch)->pc, pc, ptid); + int regnum = mips_regnum (get_regcache_arch (regcache))->pc; + regcache_cooked_write_unsigned (regcache, regnum, pc); } /* Fetch and return instruction from the specified location. If the PC |