Support x86 pseudo byte, word and dword registers.
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 2 Mar 2010 13:14:36 +0000 (13:14 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 2 Mar 2010 13:14:36 +0000 (13:14 +0000)
commit1ba53b71caf9544b0c1dc040af4052561c32d47b
tree8e3eb732fad2c1b52dc3a76c54ab65e5d1c198f2
parent5488d830ec018f8528fe806eeeaa39ce5ff7ffb1
Support x86 pseudo byte, word and dword registers.

gdb/

2010-03-02  H.J. Lu  <hongjiu.lu@intel.com>

* amd64-tdep.c (amd64_byte_names): New.
(amd64_word_names): Likewise.
(amd64_dword_names): Likewise.
(amd64_pseudo_register_name): Likewise.
(amd64_pseudo_register_read): Likewise.
(amd64_pseudo_register_write): Likewise.
(amd64_init_abi): Set num_byte_regs, num_word_regs, num_dword_regs
and num_mmx_regs.  Call set_gdbarch_pseudo_register_read,
set_gdbarch_pseudo_register_write and
set_tdesc_pseudo_register_name.  Don't call
set_gdbarch_num_pseudo_regs.  Don't set mm0_regnum.

* i386-tdep.c (i386_num_mmx_regs): Removed.
(i386_num_pseudo_regs): Likewise.
(i386_byte_names): New.
(i386_word_names): Likewise.
(i386_byte_regnum_p): Likewise.
(i386_word_regnum_p): Likewise.
(i386_mmx_regnum_p): Updated.
(i386_pseudo_register_name): Make it global.  Handle byte and
word pseudo-registers.
(i386_pseudo_register_read): Likewise.
(i386_pseudo_register_write): Likewise.
(i386_pseudo_register_type): Handle byte, word and dword
pseudo-registers
(i386_register_reggroup_p): Don't include pseudo
registers, except for MXX, in any register groups.  Don't
include pseudo byte, word, dword registers in general_reggroup.
(i386_gdbarch_init): Set num_byte_regs, num_word_regs,
num_dword_regs, al_regnum, ax_regnum and eax_regnum.  Put MMX
pseudo-registers after word pseudo-registers.  Call
set_gdbarch_num_pseudo_regs after calling gdbarch_init_osabi.

* i386-tdep.h (gdbarch_tdep): Add num_mmx_regs, num_byte_regs,
al_regnum, num_word_regs, ax_regnum, num_dword_regs and
eax_regnum.
(i386_byte_regnum_p): New.
(i386_word_regnum_p): Likewise.
(i386_dword_regnum_p): Likewise.
(i386_pseudo_register_name): Likewise.
(i386_pseudo_register_read): Likewise.
(i386_pseudo_register_write): Likewise.

gdb/testsuite/

2010-03-02  H.J. Lu  <hongjiu.lu@intel.com>

* gdb.arch/amd64-byte.exp: New.
* gdb.arch/amd64-dword.exp: Likewise.
* gdb.arch/amd64-pseudo.c: Likewise.
* gdb.arch/amd64-word.exp: Likewise.
* gdb.arch/i386-byte.exp: Likewise.
* gdb.arch/i386-pseudo.c: Likewise.
* gdb.arch/i386-word.exp: Likewise.
12 files changed:
gdb/ChangeLog
gdb/amd64-tdep.c
gdb/i386-tdep.c
gdb/i386-tdep.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/amd64-byte.exp [new file with mode: 0644]
gdb/testsuite/gdb.arch/amd64-dword.exp [new file with mode: 0644]
gdb/testsuite/gdb.arch/amd64-pseudo.c [new file with mode: 0644]
gdb/testsuite/gdb.arch/amd64-word.exp [new file with mode: 0644]
gdb/testsuite/gdb.arch/i386-byte.exp [new file with mode: 0644]
gdb/testsuite/gdb.arch/i386-pseudo.c [new file with mode: 0644]
gdb/testsuite/gdb.arch/i386-word.exp [new file with mode: 0644]