Support for partial save/restore of the registers.
Support for partial save/restore of the registers.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* i386-tdep.c: Include "reggroups.h".
	(i386_register_reggroup_p): New function.
	(i386_add_reggroups, i386_init_reggroups): New function.
	(i386_gdbarch_init): Call i386_add_reggroups.  Set
	register_reggroup_p.
	(_initialize_i386_tdep): Call i386_init_reggroups.

	* infcmd.c: Include <ctype.h>.
	(registers_info): Rewrite.  Handle reggroups.
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Use gdbarch_register_reggroup_p.

	* regcache.c: Include "reggroups.h".
	(regcache_dump): Include the register groups in the ``maint print
	registers'' command.

	* infcmd.c: Include "regroup.h".
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Ditto.

	* gdbarch.sh: Include "reggroups.h".
	(register_reggroup_p): New method.
	(struct reggroup): Add opaque declaration.
	* gdbarch.h, gdbarch.c: Regenerate.

	* Makefile.in (SFILES): Add reggroups.c.
	(reggroups_h): Define.
	(COMMON_OBS): Add reggroups.o.
	(reggroups.o): Specify dependencies.
	(gdbarch.o, infcmd.o, i386-tdep.o): Update dependencies.

	* reggroups.c: New file.
	* reggroups.h: New file.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* i386-tdep.c: Include "reggroups.h".
	(i386_register_reggroup_p): New function.
	(i386_add_reggroups, i386_init_reggroups): New function.
	(i386_gdbarch_init): Call i386_add_reggroups.  Set
	register_reggroup_p.
	(_initialize_i386_tdep): Call i386_init_reggroups.

	* infcmd.c: Include <ctype.h>.
	(registers_info): Rewrite.  Handle reggroups.
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Use gdbarch_register_reggroup_p.

	* regcache.c: Include "reggroups.h".
	(regcache_dump): Include the register groups in the ``maint print
	registers'' command.

	* infcmd.c: Include "regroup.h".
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Ditto.

	* gdbarch.sh: Include "reggroups.h".
	(register_reggroup_p): New method.
	(struct reggroup): Add opaque declaration.
	* gdbarch.h, gdbarch.c: Regenerate.

	* Makefile.in (SFILES): Add reggroups.c.
	(reggroups_h): Define.
	(COMMON_OBS): Add reggroups.o.
	(reggroups.o): Specify dependencies.
	(gdbarch.o, infcmd.o, i386-tdep.o): Update dependencies.

	* reggroups.c: New file.
	* reggroups.h: New file.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* i386-tdep.c: Include "reggroups.h".
	(i386_register_reggroup_p): New function.
	(i386_add_reggroups, i386_init_reggroups): New function.
	(i386_gdbarch_init): Call i386_add_reggroups.  Set
	register_reggroup_p.
	(_initialize_i386_tdep): Call i386_init_reggroups.

	* infcmd.c: Include <ctype.h>.
	(registers_info): Rewrite.  Handle reggroups.
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Use gdbarch_register_reggroup_p.

	* regcache.c: Include "reggroups.h".
	(regcache_dump): Include the register groups in the ``maint print
	registers'' command.

	* infcmd.c: Include "regroup.h".
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Ditto.

	* gdbarch.sh: Include "reggroups.h".
	(register_reggroup_p): New method.
	(struct reggroup): Add opaque declaration.
	* gdbarch.h, gdbarch.c: Regenerate.

	* Makefile.in (SFILES): Add reggroups.c.
	(reggroups_h): Define.
	(COMMON_OBS): Add reggroups.o.
	(reggroups.o): Specify dependencies.
	(gdbarch.o, infcmd.o, i386-tdep.o): Update dependencies.

	* reggroups.c: New file.
	* reggroups.h: New file.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* i386-tdep.c: Include "reggroups.h".
	(i386_register_reggroup_p): New function.
	(i386_add_reggroups, i386_init_reggroups): New function.
	(i386_gdbarch_init): Call i386_add_reggroups.  Set
	register_reggroup_p.
	(_initialize_i386_tdep): Call i386_init_reggroups.

	* infcmd.c: Include <ctype.h>.
	(registers_info): Rewrite.  Handle reggroups.
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Use gdbarch_register_reggroup_p.

	* regcache.c: Include "reggroups.h".
	(regcache_dump): Include the register groups in the ``maint print
	registers'' command.

	* infcmd.c: Include "regroup.h".
	(default_print_registers_info): Use gdbarch_register_reggroup_p.
	(print_float_info): Ditto.

	* gdbarch.sh: Include "reggroups.h".
	(register_reggroup_p): New method.
	(struct reggroup): Add opaque declaration.
	* gdbarch.h, gdbarch.c: Regenerate.

	* Makefile.in (SFILES): Add reggroups.c.
	(reggroups_h): Define.
	(COMMON_OBS): Add reggroups.o.
	(reggroups.o): Specify dependencies.
	(gdbarch.o, infcmd.o, i386-tdep.o): Update dependencies.

	* reggroups.c: New file.
	* reggroups.h: New file.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* arch-utils.c (next_raw_register): Rename next_cooked_register.
	(default_next_cooked_register_to_save): Use.
	(default_next_cooked_register_to_restore): Use.
2002-08-26  Andrew Cagney  <ac131313@redhat.com>

	* arch-utils.c (next_raw_register): Rename next_cooked_register.
	(default_next_cooked_register_to_save): Use.
	(default_next_cooked_register_to_restore): Use.
2002-08-28  Andrew Cagney  <ac131313@redhat.com>

	* infcmd.c (registers_info): Pass start, instead of addr_exp, to
	target_map_name_to_register.
	(default_print_registers_info): Use all_reggroup and
	general_reggroup to decide if all, general registers should be
	displayed.
	* i386-tdep.c (i386_register_reggroup_p): Move mxcsr to SSE group.
2002-08-28  Andrew Cagney  <ac131313@redhat.com>

	* infcmd.c (registers_info): Pass start, instead of addr_exp, to
	target_map_name_to_register.
	(default_print_registers_info): Use all_reggroup and
	general_reggroup to decide if all, general registers should be
	displayed.
	* i386-tdep.c (i386_register_reggroup_p): Move mxcsr to SSE group.
2002-08-28  Andrew Cagney  <cagney@redhat.com>

	* osabi.c (gdbarch_init_osabi): Allow a NULL abfd.
	(gdb_osabi_names): Add "RedBoot".
	* osabi.h (gdb_osabi): Add GDB_OSABI_REDBOOT.
	* i386-tdep.c (i386_gdbarch_init): Force RedBoot OSABI.

	* i386-tdep.h (i386_pseudo_register_read): Declare.
	(i386_pseudo_register_write): Declare.
	(i386_register_virtual_type): Declare.
	(i386_register_reggroup_p): Declare.
	* i386-tdep.c (i386_pseudo_register_read): Make global.
	(i386_pseudo_register_write): Make global.
	(i386_register_reggroup_p): Make global.
	(i386_register_virtual_type): Make global.

	* config/i386/embed.mt (TDEPFILES): Add i386-rb-tdep.c.
	(TM_FILE): Set to tm-embed.h.
	* config/i386/tm-embed.h: New file.
	* i386-rb-tdep.c: New file.  Based on code by Fernando Nasser.

	* remote.c (remote_fetch_registers): Call fetch_register_using_p.
	(fetch_register_using_p): New function.
	(init_remote_state): If defined, use GPACKET_UPPER_BOUND_HACK to
	identify a register that isn't in the G packet.
2002-08-28  Andrew Cagney  <cagney@redhat.com>

	* osabi.c (gdbarch_init_osabi): Allow a NULL abfd.
	(gdb_osabi_names): Add "RedBoot".
	* osabi.h (gdb_osabi): Add GDB_OSABI_REDBOOT.
	* i386-tdep.c (i386_gdbarch_init): Force RedBoot OSABI.

	* i386-tdep.h (i386_pseudo_register_read): Declare.
	(i386_pseudo_register_write): Declare.
	(i386_register_virtual_type): Declare.
	(i386_register_reggroup_p): Declare.
	* i386-tdep.c (i386_pseudo_register_read): Make global.
	(i386_pseudo_register_write): Make global.
	(i386_register_reggroup_p): Make global.
	(i386_register_virtual_type): Make global.

	* config/i386/embed.mt (TDEPFILES): Add i386-rb-tdep.c.
	(TM_FILE): Set to tm-embed.h.
	* config/i386/tm-embed.h: New file.
	* i386-rb-tdep.c: New file.  Based on code by Fernando Nasser.

	* remote.c (remote_fetch_registers): Call fetch_register_using_p.
	(fetch_register_using_p): New function.
	(init_remote_state): If defined, use GPACKET_UPPER_BOUND_HACK to
	identify a register that isn't in the G packet.
2002-09-13  Andrew Cagney  <cagney@redhat.com>

	* i386-tdep.c (i386_add_reggroups): Add save_reggroup and
	restore_reggroup.
	(i386_register_reggroup_p): Rewrite.  Use
	default_register_reggroup_p.

	* reggroups.h (save_reggroup, restore_reggroup): Declare.
	* reggroups.c (save_reggroup, restore_reggroup): Define.
	(_initialize_reggroup): Add save_reggroup and restore_reggroup to
	default_groups.
	* regcache.c (regcache_restore): Restore the registers in
	restore_reggroup.
	(regcache_save): Save registers in save_reggroup.
2002-09-13  Andrew Cagney  <cagney@redhat.com>

	* i386-tdep.c (i386_add_reggroups): Add save_reggroup and
	restore_reggroup.
	(i386_register_reggroup_p): Rewrite.  Use
	default_register_reggroup_p.

	* reggroups.h (save_reggroup, restore_reggroup): Declare.
	* reggroups.c (save_reggroup, restore_reggroup): Define.
	(_initialize_reggroup): Add save_reggroup and restore_reggroup to
	default_groups.
	* regcache.c (regcache_restore): Restore the registers in
	restore_reggroup.
	(regcache_save): Save registers in save_reggroup.
2002-09-19  Andrew Cagney  <cagney@redhat.com>

	* i386-tdep.c (i386_sse_reggroup, i386_mmx_reggroup): Replace
	i368_sse_reggroup and i368_mmx_reggroup.
	(i386_register_reggroup_p, i386_init_reggroups): Update.
	(i386_add_reggroups): Update.
2002-09-19  Andrew Cagney  <cagney@redhat.com>

	* i386-tdep.c (i386_sse_reggroup, i386_mmx_reggroup): Replace
	i368_sse_reggroup and i368_mmx_reggroup.
	(i386_register_reggroup_p, i386_init_reggroups): Update.
	(i386_add_reggroups): Update.