* h8300s now new target, not alias of h8300h

This commit is contained in:
Andrey Volkov 2002-05-17 19:09:13 +00:00
parent b9c9142c40
commit a8cdafbd4e
6 changed files with 47 additions and 13 deletions

View File

@ -1,3 +1,9 @@
2002-05-17 Andrey Volkov <avolkov@transas.com>
* run.c: Made h8300s as new target, not h8300h alias.
Added new option -S (h8300s target)
* sim-options.c: Ditto.
2002-05-01 Chris Demetriou <cgd@broadcom.com>
* callback.c: Use 'deprecated' rather than 'depreciated.'

View File

@ -115,7 +115,7 @@ main (ac, av)
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 @@ main (ac, av)
/* 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 @@ usage ()
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

View File

@ -110,6 +110,7 @@ typedef enum {
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 @@ static const OPTION standard_options[] =
#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 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
#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

View File

@ -1,3 +1,8 @@
2002-05-17 Andrey Volkov (avolkov@transas.com)
* compile.c: Made h8300s as new target, not h8300h alias.
* inst.h: Ditto.
2002-05-17 Andrey Volkov (avolkov@transas.com)
* compile.c: Add additional CCR flags (I,UI,H,U)

View File

@ -704,7 +704,9 @@ init_pointers ()
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 @@ sim_info (sd, verbose)
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 @@ sim_load (sd, prog, abfd, from_tty)
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 @@ sim_load (sd, prog, abfd, from_tty)
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;

View File

@ -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