aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/mips/.Sanitize2
-rw-r--r--sim/mips/interp.c108
2 files changed, 11 insertions, 99 deletions
diff --git a/sim/mips/.Sanitize b/sim/mips/.Sanitize
index c8a8563..57ed578 100644
--- a/sim/mips/.Sanitize
+++ b/sim/mips/.Sanitize
@@ -41,7 +41,7 @@ fi
sky_files="ChangeLog.sky sky-device.c sky-device.h sky-dma.c sky-dma.h sky-bits.h"
sky_files="$sky_files sky-engine.c sky-gpuif.c sky-gpuif.h"
sky_files="$sky_files sky-gs.c sky-gs.h"
-sky_files="$sky_files sky-hardware.c sky-hardware.h sky-gdb.c"
+sky_files="$sky_files sky-hardware.c sky-hardware.h sky-gdb.c sky-gdb.h"
sky_files="$sky_files sky-libvpe.c sky-libvpe.h sky-pke.c sky-pke.h"
sky_files="$sky_files sky-vpe.h sky-vu.h sky-vu.c sky-vudis.h sky-vudis.c"
sky_files="$sky_files sky-console.h sky-console.c"
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index 104e0d8..25a2ee2 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -45,9 +45,9 @@ code on the hardware.
#include "sky-vpe.h"
#include "sky-libvpe.h"
#include "sky-pke.h"
-#include "sky-gpuif.h"
#include "idecode.h"
#include "support.h"
+#include "sky-gdb.h"
#undef SD
#endif
/* end-sanitize-sky */
@@ -177,19 +177,9 @@ static char* board = NULL;
static DECLARE_OPTION_HANDLER (mips_option_handler);
enum {
- OPTION_DINERO_TRACE = OPTION_START,
- OPTION_DINERO_FILE
-/* start-sanitize-sky */
-#ifdef TARGET_SKY
-#ifdef SKY_FUNIT
- ,OPTION_FLOAT_TYPE
-#endif
- ,OPTION_GS_ENABLE
- ,OPTION_GS_REFRESH1
- ,OPTION_GS_REFRESH2
-#endif
-/* end-sanitize-sky */
- ,OPTION_BOARD
+ OPTION_DINERO_TRACE = OPTION_START,
+ OPTION_DINERO_FILE,
+ OPTION_BOARD
};
@@ -256,65 +246,6 @@ Re-compile simulator with \"-DTRACE\" to enable this option.\n");
#endif /* TRACE */
return SIM_RC_OK;
-/* start-sanitize-sky */
-#ifdef TARGET_SKY
-#ifdef SKY_FUNIT
- case OPTION_FLOAT_TYPE:
- /* Use host (fast) or target (accurate) floating point implementation. */
- if (arg && strcmp (arg, "fast") == 0)
- STATE_FP_TYPE_OPT (sd) &= ~STATE_FP_TYPE_OPT_ACCURATE;
- else if (arg && strcmp (arg, "accurate") == 0)
- STATE_FP_TYPE_OPT (sd) |= STATE_FP_TYPE_OPT_ACCURATE;
- else
- {
- fprintf (stderr, "Unrecognized float-type option `%s'\n", arg);
- return SIM_RC_FAIL;
- }
- /*printf ("float-type=0x%08x\n", STATE_FP_TYPE_OPT (sd));*/
- return SIM_RC_OK;
-#endif
-
- case OPTION_GS_ENABLE:
- /* Enable GS libraries. */
- if ( arg && strcmp (arg, "on") == 0 )
- gif_options (&GIF_full,GIF_OPT_GS_ENABLE,1,0,0);
- else if ( arg && strcmp (arg, "off") == 0 )
- gif_options (&GIF_full,GIF_OPT_GS_ENABLE,0,0,0);
- else
- {
- fprintf (stderr, "Unrecognized enable-gs option `%s'\n", arg);
- return SIM_RC_FAIL;
- }
- return SIM_RC_OK;
-
- case OPTION_GS_REFRESH1:
- case OPTION_GS_REFRESH2:
- {
- /* The GS has defineable register and register values. */
- unsigned_4 address[2];
- long long value[2];
- char c[3];
-
- if ( arg && strlen (arg) == 59 && arg[10] == '=' &&
- arg[29] == ':' && arg[40] == '=' &&
- ( sscanf (arg,"%lx%c%Lx%c%lx%c%Lx", &address[0],&c[0],&value[0],
- &c[1],&address[1],&c[2],&value[1]) == 7 ))
- {
- gif_options (&GIF_full, ( opt == OPTION_GS_REFRESH1 ) ?
- GIF_OPT_GS_REFRESH1:GIF_OPT_GS_REFRESH2,
- 0,&address[0],&value[0]);
- }
- else
- {
- fprintf (stderr, "Unrecognized gs-refresh option `%s'\n", arg);
- return SIM_RC_FAIL;
- }
- }
- return SIM_RC_OK;
-
-#endif
-/* end-sanitize-sky */
-
case OPTION_BOARD:
{
if (arg)
@@ -338,25 +269,6 @@ static const OPTION mips_options[] =
{ {"dinero-file", required_argument, NULL, OPTION_DINERO_FILE},
'\0', "FILE", "Write dinero trace to FILE",
mips_option_handler },
-/* start-sanitize-sky */
-#ifdef TARGET_SKY
-#ifdef SKY_FUNIT
- { {"float-type", required_argument, NULL, OPTION_FLOAT_TYPE},
- '\0', "fast|accurate", "Use fast (host) or accurate (target) floating point",
- mips_option_handler },
-#endif
- { {"enable-gs", required_argument, NULL, OPTION_GS_ENABLE},
- '\0', "on|off", "Enable GS library routines",
- mips_option_handler },
- { {"gs-refresh1", required_argument, NULL, OPTION_GS_REFRESH1},
- '\0', "0xaddress0=0xvalue0:0xaddress1=0xvalue1", "GS refresh buffer 1 addresses and values",
- mips_option_handler },
- { {"gs-refresh2", required_argument, NULL, OPTION_GS_REFRESH2},
- '\0', "0xaddress0=0xvalue0:0xaddress1=0xvalue1", "GS refresh buffer 2 addresses and values",
- mips_option_handler },
-#endif
-/* end-sanitize-sky */
-
{ {"board", required_argument, NULL, OPTION_BOARD},
'\0', "none" /* rely on compile-time string concatenation for other options */
@@ -417,13 +329,7 @@ sim_open (kind, cb, abfd, argv)
sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-/* start-sanitize-sky */
-#if defined(TARGET_SKY) && defined(SKY_FUNIT)
- /* Set "--float-type fast" as the default. */
- STATE_FP_TYPE_OPT (sd) &= ~STATE_FP_TYPE_OPT_ACCURATE;
-#endif
-/* end-sanitize-sky */
/* FIXME: watchpoints code shouldn't need this */
STATE_WATCHPOINTS (sd)->pc = &(PC);
@@ -436,6 +342,12 @@ sim_open (kind, cb, abfd, argv)
return 0;
sim_add_option_table (sd, NULL, mips_options);
+/* start-sanitize-sky */
+#ifdef TARGET_SKY
+ sky_command_options (sd);
+#endif
+/* end-sanitize-sky */
+
/* getopt will print the error message so we just have to exit if this fails.
FIXME: Hmmm... in the case of gdb we need getopt to call
print_filtered. */