2003-03-03  Andrew Cagney  <cagney@redhat.com>

	* frame.c (frame_id_unwind): Delete function.
	(get_prev_frame): Use prev's unwinder to unwind the frame ID.
	* frame.h (frame_id_unwind): Delete declaration.
2003-03-04  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_frame_unwind_cache): Update to work with
	NEXT_FRAME and THIS_CACHE.
	(d10v_frame_pc_unwind): Ditto.
	(d10v_frame_id_unwind): Ditto.
	(saved_regs_unwinder): Ditto.
	(d10v_frame_register_unwind): Ditto.
	* dummy-frame.c (dummy_frame_register_unwind): Ditto.
	(dummy_frame_pc_unwind): Ditto.
	(cached_find_dummy_frame): Ditto.
	(dummy_frame_id_unwind): Ditto.
	(dummy_frame_pop): Ditto.
	* sentinel-frame.c (sentinel_frame_register_unwind): Ditto.
	(sentinel_frame_pc_unwind): Ditto.
	(sentinel_frame_id_unwind): Ditto.
	(sentinel_frame_pop): Ditto.
	* frame.c (frame_id_unwind): Reinstate function.
	* frame.h (frame_id_unwind): Reinstate declaration.
	* frame.c (frame_pc_unwind): Pass frame->next to the PC's unwind
	method.
	(frame_pop, frame_register_unwind): Ditto.
	* frame-unwind.h (frame_unwind_id_ftype, frame_unwind_reg_ftype)
	(frame_unwind_pc_ftype, frame_unwind_pop_ftype): Re-specify
	behavior in terms of PREV_REGNUM, THIS_CACHE and NEXT_FRAME.
2003-03-04  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (struct d10v_unwind_cache): Add field "r11_addr",
	change type of "next_addr" to LONGEST.  Delete member "frameless".
	(prologue_find_regs): Parse "st rn, @r11", save r11's offset.
	(d10v_frame_unwind_cache): Compute both the frame base and the
	previous stack pointer.  Store the previous SP's value in the
	saved_regs array.
	(d10v_frame_id_unwind): Remove commented out code.  Check for
	circular stack.
	(saved_regs_unwinder): When SP_REGNUM, extract the value from the
	saved_regs array.
	(d10v_unwind_dummy_id): New function.
	(d10v_gdbarch_init): Initialize d10v_unwind_dummy_id and
	save_dummy_frame_tos.
	(struct frame_extra_info): Delete.
	(saved_regs_unwind): New function.
	(d10v_frame_pop): Update to match current code.
	(d10v_frame_register_unwind): Don't unwind LR_REGNUM.  Unwind the
	PC_REGNUM by returning the saved LR_REGNUM.
	* frame.c (get_prev_frame): Store this frame's ID in the next
	frame's unwound ID cache.
	(deprecated_update_frame_pc_hack): Update the cached value in NEXT
	as well.

	2003-02-27  Andrew Cagney  <cagney@redhat.com>
	* frame.c (get_prev_frame): Rewrite the frame ID unwind code to
	use unwind_dummy_id when available.
	* gdbarch.sh (get_dummy_frame_id): New multi-arch method with
	predicate.
	* gdbarch.h, gdbarch.c: Regneerate.
2003-03-06  Andrew Cagney  <cagney@redhat.com>

	* gdbarch.sh (gdbarch_unwind_pc): New method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* frame.c (frame_pc_unwind): Rewrite.  Prefer gdbarch_unwind_pc,
	but use read_pc and FRAME_SAVED_PC as fall backs.
	(frame_saved_regs_pc_unwind): Delete function.
	(trad_frame_unwinder): Update.
	* frame-unwind.h (frame_unwind_pc_ftype): Delete declaration.
	(struct frame_unwind): Update.
	* dummy-frame.c (dummy_frame_pc_unwind): Delete function.
	(dummy_frame_unwind): Update.
	* sentinel-frame.c (sentinel_frame_pc_unwind): Delete function.
	(sentinel_frame_unwinder): Update.
	* d10v-tdep.c (d10v_frame_pc_unwind): Delete function.
	(d10v_frame_unwind): Update.
	(d10v_unwind_pc): New function.
	(d10v_gdbarch_init): Set unwind_pc.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* dummy-frame.c (dummy_frame_id_unwind): Abort if called.
	(cached_find_dummy_frame): Add hack to obtain this thread's id
	without calling id unwind.
	* frame.h: Merge with mainline.
	* d10v-tdep.c: Merge with mainline.
	* frame.c: Merge with mainline.
2003-03-06  Andrew Cagney  <cagney@redhat.com>

	* d10v-tdep.c (d10v_frame_pop): Delete function.
	(d10v_frame_unwind): Update.
	* frame.c: Include "reggroups.h".
	* regcache.c (regcache_raw_write): Allow writes to a readonly
	regcache.
	* frame.c (frame_saved_regs_pop): Delete function.
	(trad_frame_unwinder): Update
	(frame_pop): Rewrite.
	* sentinel-frame.c (sentinel_frame_pop): Delete function.
	(sentinel_frame_unwinder): Update.
	* dummy-frame.c (dummy_frame_pop): Delete function.
	(dummy_frame_unwind): Update.
	* frame-unwind.h (frame_unwind_pop_ftype): Delete definition.
	(struct frame_unwind): Update.
2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* frame.c: Merge in posted frame_pop patch.
	* regcache.h, regcache.c: Merge with mainline.
2003-03-11  Andrew Cagney  <cagney@redhat.com>

	* frame-unwind.h (frame_this_id_ftype): Rename
	frame_unwind_id_ftype.
	(frame_prev_register_ftype): Rename frame_unwind_reg_ftype.
	(struct frame_unwind): Update.  Rename "id" to "this_id", and
	"reg" to "prev_register".
	* frame.c (get_prev_frame): Update.  Rename parameter next_frame
	to this frame.
	(frame_register_unwind): Update.