diff --git a/gdb/.Sanitize b/gdb/.Sanitize index 811a1ad268..6de1d5d7d5 100644 --- a/gdb/.Sanitize +++ b/gdb/.Sanitize @@ -494,6 +494,33 @@ else done fi +h8s_files="ChangeLog h8300-tdep.c" +if ( echo $* | grep keep\-h8s > /dev/null ) ; then + for i in $h8s_files ; do + if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping h8s stuff in $i + fi + fi + done +else + for i in $h8s_files ; do + if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"h8s\" from $i... + fi + cp $i new + sed '/start\-sanitize\-h8s/,/end-\sanitize\-h8s/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi for i in * ; do if test ! -d $i && (grep sanitize $i > /dev/null) ; then echo '***' Some mentions of Sanitize are still left in $i! 1>&2 diff --git a/gdb/config/h8300/.Sanitize b/gdb/config/h8300/.Sanitize index b29dad19bc..0c94ff7f81 100644 --- a/gdb/config/h8300/.Sanitize +++ b/gdb/config/h8300/.Sanitize @@ -15,6 +15,33 @@ Do-first: +h8s_files="tm-h8300.h" +if ( echo $* | grep keep\-h8s > /dev/null ) ; then + for i in $h8s_files ; do + if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping h8s stuff in $i + fi + fi + done +else + for i in $h8s_files ; do + if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"h8s\" from $i... + fi + cp $i new + sed '/start\-sanitize\-h8s/,/end-\sanitize\-h8s/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi # All files listed between the "Things-to-keep:" line and the # "Files-to-sed:" line will be kept. All other files will be removed. # Directories listed in this section will have their own Sanitize diff --git a/gdb/config/h8300/tm-h8300.h b/gdb/config/h8300/tm-h8300.h index 52a4ef6c61..d09f47b664 100644 --- a/gdb/config/h8300/tm-h8300.h +++ b/gdb/config/h8300/tm-h8300.h @@ -22,6 +22,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* 1 if debugging H8/300H application */ extern int h8300hmode; +/* start-sanitize-h8s */ +extern int h8300smode; +/* end-sanitize-h8s */ /* Number of bytes in a word */ diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index 262faa8c99..cf455d8500 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -121,7 +121,12 @@ gdb_print_insn_h8300 (memaddr, info) bfd_vma memaddr; disassemble_info *info; { - if (h8300hmode) +/* start-sanitize-h8s */ + if (h8300smode) + return print_insn_h8300s (memaddr, info); + else +/* end-sanitize-h8s */ + if (h8300hmode) return print_insn_h8300h (memaddr, info); else return print_insn_h8300 (memaddr, info); @@ -427,6 +432,9 @@ h8300_command(args, from_tty) { extern int h8300hmode; h8300hmode = 0; +/* start-sanitize-h8s */ + h8300smode = 0; +/* end-sanitize-h8s */ } static void @@ -434,14 +442,31 @@ h8300h_command(args, from_tty) { extern int h8300hmode; h8300hmode = 1; +/* start-sanitize-h8s */ + h8300smode = 0; +/* end-sanitize-h8s */ } +/* start-sanitize-h8s */ +static void +h8300s_command(args, from_tty) +{ + extern int h8300smode; + extern int h8300hmode; + h8300smode = 1; + h8300hmode = 1; +} +/* end-santiize-h8s */ + static void set_machine (args, from_tty) char *args; int from_tty; { - printf_unfiltered ("\"set machine\" must be followed by h8300 or h8300h.\n"); + printf_unfiltered ("\"set machine\" must be followed by h8300, h8300h"); +/* start-sanitize-h8s */ + printf_unfiltered ("or h8300s"); +/* end-sanitize-h8s */ help_list (setmemorylist, "set memory ", -1, gdb_stdout); } @@ -455,7 +480,28 @@ static void set_machine_hook (filename) char *filename; { - h8300hmode = (bfd_get_mach (exec_bfd) == bfd_mach_h8300h); +/* start-sanitize-h8s */ + if (bfd_get_mach (exec_bfd) == bfd_mach_h8300s) + { + h8300smode = 1; + h8300hmode = 1; + } + else +/* end-sanitize-h8s */ + if (bfd_get_mach (exec_bfd) == bfd_mach_h8300h) + { +/* start-sanitize-h8s */ + h8300smode = 0; +/* end-sanitize-h8s */ + h8300hmode = 1; + } + else + { +/* start-sanitize-h8s */ + h8300smode = 0; +/* end-sanitize-h8s */ + h8300hmode = 0; + } } void @@ -471,6 +517,11 @@ _initialize_h8300m () add_cmd ("h8300h", class_support, h8300h_command, "Set machine to be H8/300H.", &setmemorylist); +/* start-sanitize-h8s */ + add_cmd ("h8300s", class_support, h8300s_command, + "Set machine to be H8/300S.", &setmemorylist); +/* end-sanitize-h8s */ + /* Add a hook to set the machine type when we're loading a file. */ specify_exec_file_hook(set_machine_hook);