This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re:[PATCH/RFA] h8300 Multiple changes to gdb/sim-stage4
- From: Andrew Volkov <Andrew dot Volkov at transas dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Thu, 16 May 2002 16:16:02 +0400
- Subject: Re:[PATCH/RFA] h8300 Multiple changes to gdb/sim-stage4
Splitting after suggestions of Andrew Cagney.
Andrey Volkov
2002-05-15 Andrey Volkov <avolkov@sources.redhat.com>
* sim/run: Made h8300s as new target, not h8300h alias.
Added new option -S (h8300s target)
* sim/h8300/compile.c: Ditto.
* sim/h8300/inst.h: Ditto.
diff -ruN gdb.old/sim/common/run.c gdb/sim/common/run.c
--- gdb.old/sim/common/run.c Fri Dec 21 03:47:18 2001
+++ gdb/sim/common/run.c Wed May 15 20:07:51 2002
@@ -115,7 +115,7 @@
do all argv processing. */
#ifdef SIM_H8300 /* FIXME: quick hack */
- while ((i = getopt (ac, av, "a:c:m:op:s:htv")) != EOF)
+ while ((i = getopt (ac, av, "a:c:m:op:s:hStv")) != EOF)
#else
while ((i = getopt (ac, av, "a:c:m:op:s:tv")) != EOF)
#endif
@@ -173,8 +173,11 @@
/* FIXME: Quick hack, to be replaced by more general facility. */
#ifdef SIM_H8300
case 'h':
- set_h8300h (1);
+ set_h8300h (1,0);
break;
+ case 'S':
+ set_h8300h (1,1);
+ break;
#endif
default:
usage ();
@@ -318,7 +321,8 @@
fprintf (stderr, "-c size Set simulator cache size to
`size'.\n");
#endif
#ifdef SIM_H8300
- fprintf (stderr, "-h Executable is for H8/300H or H8/S.\n");
+ fprintf (stderr, "-h Executable is for h8/300h.\n");
+ fprintf (stderr, "-S Executable is for h8/300s.\n");
#endif
fprintf (stderr, "-m size Set memory size of simulator, in
bytes.\n");
#ifdef SIM_HAVE_ENVIRONMENT
diff -ruN gdb.old/sim/common/sim-options.c gdb/sim/common/sim-options.c
--- gdb.old/sim/common/sim-options.c Sat Nov 25 12:16:22 2000
+++ gdb/sim/common/sim-options.c Wed May 15 20:11:12 2002
@@ -110,6 +110,7 @@
OPTION_HELP,
#ifdef SIM_H8300 /* FIXME: Should be movable to h8300 dir. */
OPTION_H8300,
+ OPTION_H8300S,
#endif
OPTION_LOAD_LMA,
OPTION_LOAD_VMA,
@@ -152,7 +153,10 @@
#ifdef SIM_H8300 /* FIXME: Should be movable to h8300 dir. */
{ {"h8300h", no_argument, NULL, OPTION_H8300},
- 'h', NULL, "Indicate the CPU is h8/300h or h8/300s",
+ 'h', NULL, "Indicate the CPU is h8/300h",
+ standard_option_handler },
+ { {"h8300s", no_argument, NULL, OPTION_H8300S},
+ 'S', NULL, "Indicate the CPU is h8/300s",
standard_option_handler },
#endif
@@ -354,7 +358,10 @@
#ifdef SIM_H8300 /* FIXME: Can be moved to h8300 dir. */
case OPTION_H8300:
- set_h8300h (1);
+ set_h8300h (1,0);
+ break;
+ case OPTION_H8300S:
+ set_h8300h (1,1);
break;
#endif
diff -ruN gdb.old/sim/h8300/compile.c gdb/sim/h8300/compile.c
--- gdb.old/sim/h8300/compile.c Wed May 15 19:52:44 2002
+++ gdb/sim/h8300/compile.c Wed May 15 20:15:46 2002
@@ -704,7 +704,9 @@
init = 1;
littleendian.i = 1;
- if (h8300hmode)
+ if (h8300smode)
+ memory_size = H8300S_MSIZE;
+ else if (h8300hmode)
memory_size = H8300H_MSIZE;
else
memory_size = H8300_MSIZE;
@@ -2008,13 +2010,14 @@
FLAG is non-zero for the H8/300H. */
void
-set_h8300h (flag)
- int flag;
+set_h8300h (h_flag, s_flag)
+ int h_flag, s_flag;
{
/* FIXME: Much of the code in sim_load can be moved to sim_open.
This function being replaced by a sim_open:ARGV configuration
option. */
- h8300hmode = flag;
+ h8300hmode = h_flag;
+ h8300smode = s_flag;
}
SIM_DESC
@@ -2069,8 +2072,8 @@
if (bfd_check_format (prog_bfd, bfd_object))
{
unsigned long mach = bfd_get_mach (prog_bfd);
- set_h8300h (mach == bfd_mach_h8300h
- || mach == bfd_mach_h8300s);
+ set_h8300h (mach == bfd_mach_h8300h || mach == bfd_mach_h8300s,
+ mach == bfd_mach_h8300s);
}
}
@@ -2088,7 +2091,10 @@
so we just reallocate memory now; this will also allow us to handle
switching between H8/300 and H8/300H programs without exiting
gdb. */
- if (h8300hmode)
+
+ if (h8300smode)
+ memory_size = H8300S_MSIZE;
+ else if (h8300hmode)
memory_size = H8300H_MSIZE;
else
memory_size = H8300_MSIZE;
diff -ruN gdb.old/sim/h8300/inst.h gdb/sim/h8300/inst.h
--- gdb.old/sim/h8300/inst.h Fri Apr 16 05:35:02 1999
+++ gdb/sim/h8300/inst.h Wed May 15 20:21:48 2002
@@ -15,7 +15,13 @@
can only happen when simulating H8/300H programs). We make no attempt
to catch overlapping addresses, wrapped addresses, etc etc. */
#define H8300_MSIZE (1<<16)
-#define H8300H_MSIZE (1<<18)
+
+/* avolkov:
+ Next 2 macros are ugly for any workstation, but while they're work.
+ Memory size MUST be configurable.
+ */
+#define H8300H_MSIZE (1<<18)
+#define H8300S_MSIZE (1<<24)
#define CSIZE 1000