Line 942... |
Line 942... |
struct arg_str *dbg;
|
struct arg_str *dbg;
|
struct arg_lit *command;
|
struct arg_lit *command;
|
struct arg_lit *quiet;
|
struct arg_lit *quiet;
|
struct arg_lit *verbose;
|
struct arg_lit *verbose;
|
struct arg_lit *trace;
|
struct arg_lit *trace;
|
|
struct arg_lit *trace_phy;
|
|
struct arg_lit *trace_virt;
|
struct arg_lit *report_mem_errs;
|
struct arg_lit *report_mem_errs;
|
struct arg_lit *strict_npc;
|
struct arg_lit *strict_npc;
|
struct arg_lit *profile;
|
struct arg_lit *profile;
|
struct arg_lit *mprofile;
|
struct arg_lit *mprofile;
|
struct arg_file *load_file;
|
struct arg_file *load_file;
|
Line 966... |
Line 968... |
dbg = arg_str0 ("d", "debug-config", "<str>", "Debug config string");
|
dbg = arg_str0 ("d", "debug-config", "<str>", "Debug config string");
|
command = arg_lit0 ("i", "interactive", "launch interactive prompt");
|
command = arg_lit0 ("i", "interactive", "launch interactive prompt");
|
quiet = arg_lit0 ("q", "quiet", "minimal message output");
|
quiet = arg_lit0 ("q", "quiet", "minimal message output");
|
verbose = arg_lit0 ("V", "verbose", "verbose message output");
|
verbose = arg_lit0 ("V", "verbose", "verbose message output");
|
trace = arg_lit0 ("t", "trace", "trace each instruction");
|
trace = arg_lit0 ("t", "trace", "trace each instruction");
|
|
trace_phy = arg_lit0 (NULL, "trace-physical",
|
|
"show physical instruction address when tracing");
|
|
trace_virt = arg_lit0 (NULL, "trace-virtual",
|
|
"show virtual instruction address when tracing");
|
report_mem_errs = arg_lit0 (NULL, "report-memory-errors",
|
report_mem_errs = arg_lit0 (NULL, "report-memory-errors",
|
"Report out of memory accesses");
|
"Report out of memory accesses");
|
strict_npc = arg_lit0 (NULL, "strict-npc", "setting NPC flushes pipeline");
|
strict_npc = arg_lit0 (NULL, "strict-npc", "setting NPC flushes pipeline");
|
profile = arg_lit0 (NULL, "enable-profile", "enable profiling");
|
profile = arg_lit0 (NULL, "enable-profile", "enable profiling");
|
mprofile = arg_lit0 (NULL, "enable-mprofile", "enable memory profiling");
|
mprofile = arg_lit0 (NULL, "enable-mprofile", "enable memory profiling");
|
Line 987... |
Line 993... |
dbg,
|
dbg,
|
command,
|
command,
|
quiet,
|
quiet,
|
verbose,
|
verbose,
|
trace,
|
trace,
|
|
trace_phy,
|
|
trace_virt,
|
report_mem_errs,
|
report_mem_errs,
|
strict_npc,
|
strict_npc,
|
profile,
|
profile,
|
mprofile,
|
mprofile,
|
load_file,
|
load_file,
|
Line 1044... |
Line 1052... |
else
|
else
|
{
|
{
|
config.sim.verbose = verbose->count;
|
config.sim.verbose = verbose->count;
|
}
|
}
|
|
|
/* Request for tracing */
|
/* Request for tracing. We may ask for instructions to be recorded with
|
|
either the physical or virtual address. */
|
runtime.sim.hush = trace->count ? 0 : 1;
|
runtime.sim.hush = trace->count ? 0 : 1;
|
|
runtime.sim.trace_phy = trace_phy->count ? 1 : 0;
|
|
runtime.sim.trace_virt = trace_virt->count ? 1 : 0;
|
|
|
|
/* Ensure we have a least one address type in use. */
|
|
if (!runtime.sim.trace_phy && !runtime.sim.trace_virt)
|
|
{
|
|
runtime.sim.trace_virt = 1;
|
|
}
|
|
|
/* Request for memory errors */
|
/* Request for memory errors */
|
config.sim.report_mem_errs = report_mem_errs->count;
|
config.sim.report_mem_errs = report_mem_errs->count;
|
|
|
/* Process config file next (if given), so any other command args will
|
/* Process config file next (if given), so any other command args will
|