sim/erc32: Added -v command line switch for verbose output
authorJiri Gaisler <jiri@gaisler.se>
Tue, 17 Mar 2015 21:02:38 +0000 (22:02 +0100)
committerMike Frysinger <vapier@gentoo.org>
Tue, 17 Mar 2015 22:51:44 +0000 (18:51 -0400)
sim/erc32/ChangeLog
sim/erc32/func.c
sim/erc32/help.c
sim/erc32/sis.c
sim/erc32/sis.h

index 8211b4a3cfc6c347fe348d5aadbcf5c28e1ac0ca..253b450c89cfff6a00a88f9bdc5ce682d30ad919 100644 (file)
@@ -1,3 +1,12 @@
+2015-03-17  Jiri Gaisler  <jiri@gaisler.se>
+
+       * func.c (show_stat): Print simulation time in portable long long
+       format.
+       * help.c (usage): Update usage help print-out.
+       * sis.c (run_sim): Increase debug level with -v. Also print
+       simulation time in portable long long format.
+       * sis.h: Use stdint.h for portable 32- and 64-bit ints.
+
 2015-03-16  Mike Frysinger  <vapier@gentoo.org>
 
        * config.in, configure: Regenerate.
index 69d5ebaa703a37f98a2af0df9c40d6867c5a042e..260ceff0f693069ac5cf7443742476f5d83421ec 100644 (file)
@@ -28,6 +28,7 @@
 #include "sis.h"
 #include <dis-asm.h>
 #include "sim-config.h"
+#include <inttypes.h>
 
 
 #define        VAL(x)  strtoul(x,(char **)NULL,0)
@@ -642,8 +643,8 @@ show_stat(sregs)
        sregs->nbranch;
 #endif
 
-    printf("\n Cycles       : %9d\n\r", ebase.simtime - sregs->simstart);
-    printf(" Instructions : %9d\n", sregs->ninst);
+    printf("\n Cycles       : %9" PRIu64 "\n\r", ebase.simtime - sregs->simstart);
+    printf(" Instructions : %9" PRIu64 "\n", sregs->ninst);
 
 #ifdef STAT
     printf("   integer    : %9.2f %%\n", 100.0 * (float) iinst / (float) sregs->ninst);
index 21c2a77a39612154ebf4f57085ef2ff04664e430..9813bdaf46663129133cf9c2fd399b958518719b 100644 (file)
@@ -7,8 +7,8 @@ usage()
 {
 
     printf("usage: sis [-uart1 uart_device1] [-uart2 uart_device2]\n");
+    printf("[-sparclite] [-dumbio] [-v] \n");
     printf("[-nfp] [-freq frequency] [-c batch_file] [files]\n");
-    printf("[-sparclite] [-dumbio]\n");
 }
 
 void
index ce9b3d0c642f9acceb300beb33741f4c3380b776..931e3f3153097bf1d62af9e182c07bef77ffc077 100644 (file)
@@ -30,6 +30,7 @@
 #include "sis.h"
 #include <dis-asm.h>
 #include "sim-config.h"
+#include <inttypes.h>
 
 #define        VAL(x)  strtol(x,(char **)NULL,0)
 
@@ -113,7 +114,7 @@ run_sim(sregs, icount, dis)
                                sregs->histind = 0;
                        }
                        if (dis) {
-                           printf(" %8u ", ebase.simtime);
+                           printf(" %8" PRIu64 " ", ebase.simtime);
                            dis_mem(sregs->pc, 1, &dinfo);
                        }
                    }
@@ -205,6 +206,8 @@ main(argc, argv)
 #endif
             } else if (strcmp(argv[stat], "-dumbio") == 0) {
                dumbio = 1;
+            } else if (strcmp(argv[stat], "-v") == 0) {
+               sis_verbose += 1;
            } else {
                printf("unknown option %s\n", argv[stat]);
                usage();
@@ -271,7 +274,7 @@ main(argc, argv)
        case CTRL_C:
            printf("\b\bInterrupt!\n");
        case TIME_OUT:
-           printf(" Stopped at time %d (%.3f ms)\n", ebase.simtime, 
+           printf(" Stopped at time %" PRIu64 " (%.3f ms)\n", ebase.simtime,
              ((double) ebase.simtime / (double) sregs.freq) / 1000.0);
            break;
        case BPT_HIT:
@@ -281,7 +284,7 @@ main(argc, argv)
        case ERROR:
            printf("IU in error mode (%d)\n", sregs.trap);
            stat = 0;
-           printf(" %8d ", ebase.simtime);
+           printf(" %8" PRIu64 " ", ebase.simtime);
            dis_mem(sregs.pc, 1, &dinfo);
            break;
        default:
index 6820cb45f3de07cc9a56dd608cbaa7059ee0bd5f..74466aef8fec132ecf2a354b4cc4793bafa9cafa 100644 (file)
@@ -24,7 +24,8 @@
 #include "gdb/callback.h"
 #include "gdb/remote-sim.h"
 #include <sim-config.h>
+#include <stdint.h>
+
 #if WITH_HOST_BYTE_ORDER == BIG_ENDIAN
 #define HOST_BIG_ENDIAN
 #else
@@ -56,11 +57,8 @@ typedef unsigned int uint32; /* 32-bit unsigned int */
 typedef float   float32;       /* 32-bit float */
 typedef double  float64;       /* 64-bit float */
 
-/* FIXME: what about host compilers that don't support 64-bit ints? */
-typedef unsigned long long uint64; /* 64-bit unsigned int */
-typedef long long int64;          /* 64-bit signed int */
-
-#define UINT64_MAX 18446744073709551615ULL
+typedef uint64_t uint64; /* 64-bit unsigned int */
+typedef int64_t int64;    /* 64-bit signed int */
 
 struct pstate {