/[gxemul]/trunk/src/main.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6 by dpavlin, Mon Oct 8 16:18:11 2007 UTC revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: main.c,v 1.236 2005/05/25 06:40:18 debug Exp $   *  $Id: main.c,v 1.243 2005/08/07 17:42:02 debug Exp $
29   */   */
30    
31  #include <stdio.h>  #include <stdio.h>
# Line 217  static void usage(int longusage) Line 217  static void usage(int longusage)
217              "with -E.)\n");              "with -E.)\n");
218    
219          printf("\nOther options:\n");          printf("\nOther options:\n");
220            printf("  -A        disable alignment checks in some cases (for higher"
221                " speed)\n");
222  #ifdef BINTRANS  #ifdef BINTRANS
223          printf("  -B        disable dynamic binary translation completely\n");          printf("  -B        disable dynamic binary translation. (translation"
224          printf("  -b        use the OLD binary translation subsystem\n");              " is turned on\n            by default, if the host "
225                "supports it)\n");
226  #endif  #endif
227          printf("  -C x      try to emulate a specific CPU. (Use -H to get a "          printf("  -C x      try to emulate a specific CPU. (Use -H to get a "
228              "list of types.)\n");              "list of types.)\n");
# Line 337  int get_cmd_args(int argc, char *argv[], Line 340  int get_cmd_args(int argc, char *argv[],
340          int msopts = 0;         /*  Machine-specific options used  */          int msopts = 0;         /*  Machine-specific options used  */
341          struct machine *m = emul_add_machine(emul, "default");          struct machine *m = emul_add_machine(emul, "default");
342    
343          while ((ch = getopt(argc, argv, "BbC:Dd:E:e:HhI:iJj:KM:m:"          while ((ch = getopt(argc, argv, "ABC:Dd:E:e:HhI:iJj:KM:m:"
344              "Nn:Oo:p:QqRrSsTtUu:VvW:XxY:y:Z:z:")) != -1) {              "Nn:Oo:p:QqRrSsTtUu:VvW:XxY:y:Z:z:")) != -1) {
345                  switch (ch) {                  switch (ch) {
346                  case 'B':                  case 'A':
347                          m->bintrans_enable = 0;                          m->dyntrans_alignment_check = 0;
348                          msopts = 1;                          msopts = 1;
349                          break;                          break;
350                  case 'b':                  case 'B':
351                          m->old_bintrans_enable = 1;                          m->bintrans_enable = 0;
352                          msopts = 1;                          msopts = 1;
353                          break;                          break;
354                  case 'C':                  case 'C':
# Line 544  int get_cmd_args(int argc, char *argv[], Line 547  int get_cmd_args(int argc, char *argv[],
547                          msopts = 1;                          msopts = 1;
548                          break;                          break;
549                  default:                  default:
550                          fprintf(stderr, "Invalid option.\n");                          fprintf(stderr, "Run  %s -h  for help on command "
551                          usage(0);                              "line options.\n", progname);
552                          exit(1);                          exit(1);
553                  }                  }
554          }          }
555    
556          if (type != NULL) {          if (type != NULL || subtype != NULL) {
557                    if (type == NULL)
558                            type = "";
559                  if (subtype == NULL)                  if (subtype == NULL)
560                          subtype = "";                          subtype = "";
561                  res = machine_name_to_type(type, subtype,                  res = machine_name_to_type(type, subtype,
# Line 566  int get_cmd_args(int argc, char *argv[], Line 571  int get_cmd_args(int argc, char *argv[],
571          extra_argv = argv;          extra_argv = argv;
572    
573    
         if (!m->bintrans_enable && m->old_bintrans_enable) {  
                 fprintf(stderr, "You cannot both select old bintrans and"  
                     " disable bintrans at the same time.\n");  
                 exit(1);  
         }  
   
         /*  TODO: Remove this once there is a new bintrans system.  */  
         if (m->bintrans_enable && !m->old_bintrans_enable) {  
                 m->bintrans_enable = 0;  
         }  
   
574          if (m->machine_type == MACHINE_NONE && msopts) {          if (m->machine_type == MACHINE_NONE && msopts) {
575                  fprintf(stderr, "Machine specific options used directly on "                  fprintf(stderr, "Machine specific options used directly on "
576                      "the command line, but no machine\nemulation specified?\n");                      "the command line, but no machine\nemulation specified?\n");
# Line 584  int get_cmd_args(int argc, char *argv[], Line 578  int get_cmd_args(int argc, char *argv[],
578          }          }
579    
580    
581          /*  -i, -r, -t are pretty verbose:  */          /*  -i and -r are pretty verbose:  */
582    
583          if (m->instruction_trace && !verbose) {          if (m->instruction_trace && !verbose) {
584                  fprintf(stderr, "Implicitly %sturning on -v, because"                  fprintf(stderr, "Implicitly %sturning on -v, because"
# Line 600  int get_cmd_args(int argc, char *argv[], Line 594  int get_cmd_args(int argc, char *argv[],
594                  quiet_mode = 0;                  quiet_mode = 0;
595          }          }
596    
597          if (m->show_trace_tree && !verbose) {          if ((m->instruction_trace || m->register_dump || m->show_trace_tree)
598                  fprintf(stderr, "Implicitly %sturning on -v, because"              && m->bintrans_enable) {
599                      " of -t\n", quiet_mode? "turning off -q and " : "");                  fprintf(stderr, "Implicitly turning off bintrans.\n");
600                  verbose = 1;                  m->bintrans_enable = 0;
                 quiet_mode = 0;  
601          }          }
602    
603    
# Line 658  int get_cmd_args(int argc, char *argv[], Line 651  int get_cmd_args(int argc, char *argv[],
651                  /*  TODO: Print a warning about this?  */                  /*  TODO: Print a warning about this?  */
652          }          }
653    
654          if (m->n_breakpoints > 0 && m->bintrans_enable) {          if (m->n_breakpoints > 0 &&
655                  fprintf(stderr, "Breakpoints and dynamic translation "              m->bintrans_enable && m->arch == ARCH_MIPS) {
656                    fprintf(stderr, "Breakpoints and MIPS binary translation "
657                      "don't work too well together right now.\n");                      "don't work too well together right now.\n");
658                  exit(1);                  exit(1);
659          }          }
# Line 801  int main(int argc, char *argv[]) Line 795  int main(int argc, char *argv[])
795    
796          if (n_emuls == 0) {          if (n_emuls == 0) {
797                  fprintf(stderr, "No emulations defined. Maybe you forgot to "                  fprintf(stderr, "No emulations defined. Maybe you forgot to "
798                      "use -E xx (and -e yy), to specify\nthe machine type)."                      "use -E xx and/or -e yy, to specify\nthe machine type."
799                      " For example:\n\n    %s -E dec -e 3max -d disk.img\n\n"                      " For example:\n\n    %s -e 3max -d disk.img\n\n"
800                      "to boot an emulated DECstation 5000/200 with a disk "                      "to boot an emulated DECstation 5000/200 with a disk "
801                      "image.\n", progname);                      "image.\n", progname);
802                  exit(1);                  exit(1);

Legend:
Removed from v.6  
changed lines
  Added in v.12

  ViewVC Help
Powered by ViewVC 1.1.26