aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-06-18 23:29:39 +0000
committerJeff Law <law@redhat.com>1996-06-18 23:29:39 +0000
commitd15396dfe53119c52686697c4651bd646f74ee41 (patch)
tree24291f294fde9be3806c3196ec58d74a88c60e14
parent934f9fa0ff4d46e9a0b66fb1f7993b75d953f23c (diff)
downloadgdb-d15396dfe53119c52686697c4651bd646f74ee41.zip
gdb-d15396dfe53119c52686697c4651bd646f74ee41.tar.gz
gdb-d15396dfe53119c52686697c4651bd646f74ee41.tar.bz2
* h8300-dep.c (gdb_print_insn_h8300): Handle the H8/S.
(h8300_command): Likewise. (set_machine): Likewise. (set_machine_hook): Likewise. (_initialize_h8300m): Likewise. * config/h8300/tm-h8300.h (h8300smode): Declare. More sanitized H8/S work.
-rw-r--r--gdb/.Sanitize27
-rw-r--r--gdb/config/h8300/.Sanitize27
-rw-r--r--gdb/config/h8300/tm-h8300.h3
-rw-r--r--gdb/h8300-tdep.c57
4 files changed, 111 insertions, 3 deletions
diff --git a/gdb/.Sanitize b/gdb/.Sanitize
index 811a1ad..6de1d5d 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 b29dad1..0c94ff7 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 52a4ef6..d09f47b 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 262faa8..cf455d8 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);