1 /* main.c --- main function for stand-alone M32C simulator.
3 Copyright (C) 2005 Free Software Foundation, Inc.
4 Contributed by Red Hat, Inc.
6 This file is part of the GNU simulators.
8 The GNU simulators are free software; you can redistribute them and/or
9 modify them under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of the
11 License, or (at your option) any later version.
13 The GNU simulators are distributed in the hope that they will be
14 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with the GNU simulators; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
40 static int disassemble
= 0;
41 static unsigned int cycles
= 0;
50 printf ("insns: %14s\n", comma (cycles
));
56 main (int argc
, char **argv
)
62 while ((o
= getopt (argc
, argv
, "tvdm:")) != -1)
75 if (strcmp (optarg
, "r8c") == 0 || strcmp (optarg
, "m16c") == 0)
76 default_machine
= bfd_mach_m16c
;
77 else if (strcmp (optarg
, "m32cm") == 0
78 || strcmp (optarg
, "m32c") == 0)
79 default_machine
= bfd_mach_m32c
;
82 fprintf (stderr
, "Invalid machine: %s\n", optarg
);
88 "usage: run [-v] [-t] [-d] [-m r8c|m16c|m32cm|m32c]"
93 prog
= bfd_openr (argv
[optind
], 0);
96 fprintf (stderr
, "Can't read %s\n", argv
[optind
]);
100 if (!bfd_check_format (prog
, bfd_object
))
102 fprintf (stderr
, "%s not a m32c program\n", argv
[optind
]);
112 sim_disasm_init (prog
);
124 enable_counting
= verbose
;
126 rc
= decode_opcode ();
129 if (M32C_HIT_BREAK (rc
))
131 else if (M32C_EXITED (rc
))
132 done (M32C_EXIT_STATUS (rc
));
134 assert (M32C_STEPPED (rc
));
136 trace_register_changes ();