OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/or1ksim
    from Rev 202 to Rev 220
    Reverse comparison

Rev 202 → Rev 220

/sim-config.h
46,8 → 46,12
/* Number of cycles between checks to runtime.sim.iprompt */
#define CHECK_INT_TIME 100000
 
/* Print to the defined output stream */
#define PRINTF(x...) fprintf (runtime.sim.fout, x)
 
/* Print only if we are not running silently */
#define PRINTFQ(x...) if (!config.sim.quiet) { fprintf (runtime.sim.fout, x); }
 
/*! Data structure for configuration data */
struct config
{
90,6 → 94,8
char* exe_bin_insn_log_fn; /* Binary dump log of exec. instructions name */
long clkcycle_ps; /* Clock duration in ps */
int strict_npc; /* JPB. NPC flushes pipeline when changed */
int quiet; /* Minimize message output */
int report_mem_errs; /* Report out of memory accesses */
} sim;
 
struct
/cpu/or32/or32.c
983,10 → 983,13
return cur;
}
 
/* Constructs new automata based on or32_opcodes array. */
/* -------------------------------------------------------------------------- */
/*!Constructs new automata based on or32_opcodes array.
 
@param[in] quiet If non-zero (TRUE) do not print informational messages. */
/* -------------------------------------------------------------------------- */
void
build_automata ()
build_automata (int quiet)
{
int i;
unsigned long *end;
1001,7 → 1004,10
nuncovered = num_opcodes;
 
#ifdef HAVE_EXECUTION
printf ("Building automata... ");
if (!quiet)
{
printf ("Building automata... ");
}
#endif
 
/* Build temporary information about instructions. */
1026,11 → 1032,17
exit (1);
}
#ifdef HAVE_EXECUTION
printf ("done, num uncovered: %i/%i.\n", nuncovered, num_opcodes);
if (!quiet)
{
printf ("done, num uncovered: %i/%i.\n", nuncovered, num_opcodes);
}
#endif
 
#ifdef HAVE_EXECUTION
printf ("Parsing operands data... ");
if (!quiet)
{
printf ("Parsing operands data... ");
}
#endif
op_data =
(struct insn_op_struct *) malloc (MAX_OP_TABLE_SIZE *
1051,7 → 1063,10
}
}
#ifdef HAVE_EXECUTION
printf ("done.\n");
if (!quiet)
{
printf ("done.\n");
}
#endif
}
 
/cpu/or32/insnset.c
550,12 → 550,12
case NOP_NOP:
break;
case NOP_EXIT:
PRINTF("exit(%"PRIdREG")\n", evalsim_reg (3));
fprintf(stderr, "@reset : cycles %lld, insn #%lld\n",
PRINTFQ("exit(%"PRIdREG")\n", evalsim_reg (3));
PRINTFQ("@reset : cycles %lld, insn #%lld\n",
runtime.sim.reset_cycles, runtime.cpu.reset_instructions);
fprintf(stderr, "@exit : cycles %lld, insn #%lld\n", runtime.sim.cycles,
PRINTFQ("@exit : cycles %lld, insn #%lld\n", runtime.sim.cycles,
runtime.cpu.instructions);
fprintf(stderr, " diff : cycles %lld, insn #%lld\n",
PRINTFQ(" diff : cycles %lld, insn #%lld\n",
runtime.sim.cycles - runtime.sim.reset_cycles,
runtime.cpu.instructions - runtime.cpu.reset_instructions);
if (config.sim.is_library)
/cpu/or32/generate.c
417,7 → 417,7
exit (1);
}
 
build_automata ();
build_automata (0);
if (generate_header (fo)) {
fprintf (stderr, "generate_header\n");
return 1;
/cpu/common/abstract.c
399,8 → 399,12
}
else
{
PRINTF ("EXCEPTION: read out of memory (32-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: read out of memory (32-bit access to %" PRIxADDR
")\n", memaddr);
}
except_handle (EXCEPT_BUSERR, vaddr);
}
 
425,8 → 429,12
}
else
{
PRINTF ("EXCEPTION: read out of memory (16-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: read out of memory (16-bit access to %" PRIxADDR
")\n", memaddr);
}
 
except_handle (EXCEPT_BUSERR, vaddr);
}
 
451,8 → 459,12
}
else
{
PRINTF ("EXCEPTION: read out of memory (8-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: read out of memory (8-bit access to %" PRIxADDR
")\n", memaddr);
}
 
except_handle (EXCEPT_BUSERR, vaddr);
}
 
526,8 → 538,8
return mem->direct_ops.readfunc32 (phys_memaddr & mem->size_mask,
mem->direct_ops.read_dat32);
else
PRINTF ("ERR: 32-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR ")\n", memaddr, phys_memaddr);
fprintf (stderr, "ERR: 32-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR ")\n", memaddr, phys_memaddr);
}
 
return 0;
635,8 → 647,8
return mem->direct_ops.readfunc16 (phys_memaddr & mem->size_mask,
mem->direct_ops.read_dat16);
else
PRINTF ("ERR: 16-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
fprintf (stderr, "ERR: 16-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
}
 
return 0;
695,8 → 707,8
return mem->direct_ops.readfunc8 (phys_memaddr & mem->size_mask,
mem->direct_ops.read_dat8);
else
PRINTF ("ERR: 8-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
fprintf (stderr, "ERR: 8-bit read out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
}
 
return 0;
724,8 → 736,12
}
else
{
PRINTF ("EXCEPTION: write out of memory (32-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: write out of memory (32-bit access to %" PRIxADDR
")\n", memaddr);
}
 
except_handle (EXCEPT_BUSERR, vaddr);
}
}
752,8 → 768,12
}
else
{
PRINTF ("EXCEPTION: write out of memory (16-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: write out of memory (16-bit access to %" PRIxADDR
")\n", memaddr);
}
 
except_handle (EXCEPT_BUSERR, vaddr);
}
}
780,8 → 800,12
}
else
{
PRINTF ("EXCEPTION: write out of memory (8-bit access to %" PRIxADDR
")\n", memaddr);
if (config.sim.report_mem_errs)
{
PRINTF ("EXCEPTION: write out of memory (8-bit access to %" PRIxADDR
")\n", memaddr);
}
 
except_handle (EXCEPT_BUSERR, vaddr);
}
}
862,7 → 886,7
mem->direct_ops.writefunc32 (phys_memaddr & mem->size_mask, value,
mem->direct_ops.write_dat32);
else
PRINTF ("ERR: 32-bit write out of memory area: %" PRIxADDR
fprintf (stderr, "ERR: 32-bit write out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR ")\n", memaddr, phys_memaddr);
}
 
943,8 → 967,8
mem->direct_ops.writefunc16 (phys_memaddr & mem->size_mask, value,
mem->direct_ops.write_dat16);
else
PRINTF ("ERR: 16-bit write out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
fprintf (stderr, "ERR: 16-bit write out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
}
 
if (cur_area && cur_area->log)
1010,8 → 1034,8
mem->direct_ops.writefunc8 (phys_memaddr & mem->size_mask, value,
mem->direct_ops.write_dat8);
else
PRINTF ("ERR: 8-bit write out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
fprintf (stderr, "ERR: 8-bit write out of memory area: %" PRIxADDR
" (physical: %" PRIxADDR "\n", memaddr, phys_memaddr);
}
 
if (cur_area && cur_area->log)
/cpu/common/parse.c
125,7 → 125,7
{
/* Page modified */
set_direct32 (transl_table + i + 8, -2, 0, 0);
PRINTF ("found paddr=%" PRIx32 "\n",
PRINTFQ ("found paddr=%" PRIx32 "\n",
eval_direct32 (transl_table + i + 4, 0, 0) |
(laddr & (PAGE_SIZE - 1)));
return (oraddr_t) eval_direct32 (transl_table + i + 4, 0, 0) |
144,12 → 144,12
set_direct32 (transl_table + i + 4, (i / 16) * PAGE_SIZE, 0, 0);
/* Page modified */
set_direct32 (transl_table + i + 8, -2, 0, 0);
PRINTF ("newly allocated ppn=%" PRIx32 "\n",
PRINTFQ ("newly allocated ppn=%" PRIx32 "\n",
eval_direct32 (transl_table + i + 4, 0, 0));
PRINTF ("newly allocated .ppn=%" PRIxADDR "\n", transl_table + i + 4);
PRINTF ("newly allocated ofs=%" PRIxADDR "\n",
PRINTFQ ("newly allocated .ppn=%" PRIxADDR "\n", transl_table + i + 4);
PRINTFQ ("newly allocated ofs=%" PRIxADDR "\n",
(laddr & (PAGE_SIZE - 1)));
PRINTF ("newly allocated paddr=%" PRIx32 "\n",
PRINTFQ ("newly allocated paddr=%" PRIx32 "\n",
eval_direct32 (transl_table + i + 4, 0,
0) | (laddr & (PAGE_SIZE - 1)));
return (oraddr_t) eval_direct32 (transl_table + i + 4, 0, 0) |
160,7 → 160,7
/* If we come this far then all phy memory is used and we can't find our
page nor allocate new page. */
transl_error = 1;
PRINTF ("can't translate %" PRIxADDR "\n", laddr);
PRINTFQ ("can't translate %" PRIxADDR "\n", laddr);
exit (1);
 
return -1;
363,11 → 363,11
perror ("readfile_coff");
exit (1);
}
PRINTF ("Section: %s,", coffscnhdr.s_name);
PRINTF (" paddr: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_paddr));
PRINTF (" vaddr: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_vaddr));
PRINTF (" size: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_size));
PRINTF (" scnptr: 0x%.8lx\n", COFF_LONG_H (coffscnhdr.s_scnptr));
PRINTFQ ("Section: %s,", coffscnhdr.s_name);
PRINTFQ (" paddr: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_paddr));
PRINTFQ (" vaddr: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_vaddr));
PRINTFQ (" size: 0x%.8lx,", COFF_LONG_H (coffscnhdr.s_size));
PRINTFQ (" scnptr: 0x%.8lx\n", COFF_LONG_H (coffscnhdr.s_scnptr));
 
sectsize = COFF_LONG_H (coffscnhdr.s_size);
++firstthree;
396,18 → 396,18
}
if (firstthree < 3)
{
PRINTF ("One or more missing sections. At least");
PRINTF (" three sections expected (.text, .data, .bss).\n");
PRINTFQ ("One or more missing sections. At least");
PRINTFQ (" three sections expected (.text, .data, .bss).\n");
exit (1);
}
if (firstthree > 3)
{
PRINTF ("Warning: one or more extra sections. These");
PRINTF (" sections were handled as .data sections.\n");
PRINTFQ ("Warning: one or more extra sections. These");
PRINTFQ (" sections were handled as .data sections.\n");
}
 
fclose (inputfs);
PRINTF ("Finished loading COFF.\n");
PRINTFQ ("Finished loading COFF.\n");
return;
 
} /* readfile_coff () */
492,7 → 492,7
}
 
fclose (inputfs);
PRINTF ("Finished loading symbols.\n");
PRINTFQ ("Finished loading symbols.\n");
return;
}
 
694,14 → 694,19
 
 
if (ELF_LONG_H (elf_spnt->sh_name) && s_str)
PRINTF ("Section: %s,", &s_str[ELF_LONG_H (elf_spnt->sh_name)]);
{
PRINTFQ ("Section: %s,", &s_str[ELF_LONG_H (elf_spnt->sh_name)]);
}
else
PRINTF ("Section: noname,");
PRINTF (" vaddr: 0x%.8lx,", ELF_LONG_H (elf_spnt->sh_addr));
PRINTF (" paddr: 0x%" PRIx32, padd);
PRINTF (" offset: 0x%.8lx,", ELF_LONG_H (elf_spnt->sh_offset));
PRINTF (" size: 0x%.8lx\n", ELF_LONG_H (elf_spnt->sh_size));
{
PRINTFQ ("Section: noname,");
}
 
PRINTFQ (" vaddr: 0x%.8lx,", ELF_LONG_H (elf_spnt->sh_addr));
PRINTFQ (" paddr: 0x%" PRIx32, padd);
PRINTFQ (" offset: 0x%.8lx,", ELF_LONG_H (elf_spnt->sh_offset));
PRINTFQ (" size: 0x%.8lx\n", ELF_LONG_H (elf_spnt->sh_size));
 
freemem = padd;
sectsize = ELF_LONG_H (elf_spnt->sh_size);
 
777,19 → 782,19
if (COFF_SHORT_H (coffhdr.f_magic) == 0x17a)
{
uint32_t opthdr_size;
PRINTF ("COFF magic: 0x%.4x\n", COFF_SHORT_H (coffhdr.f_magic));
PRINTF ("COFF flags: 0x%.4x\n", COFF_SHORT_H (coffhdr.f_flags));
PRINTF ("COFF symptr: 0x%.8lx\n", COFF_LONG_H (coffhdr.f_symptr));
PRINTFQ ("COFF magic: 0x%.4x\n", COFF_SHORT_H (coffhdr.f_magic));
PRINTFQ ("COFF flags: 0x%.4x\n", COFF_SHORT_H (coffhdr.f_flags));
PRINTFQ ("COFF symptr: 0x%.8lx\n", COFF_LONG_H (coffhdr.f_symptr));
if ((COFF_SHORT_H (coffhdr.f_flags) & COFF_F_EXEC) != COFF_F_EXEC)
{
PRINTF ("This COFF is not an executable.\n");
PRINTFQ ("This COFF is not an executable.\n");
exit (1);
}
opthdr_size = COFF_SHORT_H (coffhdr.f_opthdr);
if (opthdr_size != sizeof (COFF_AOUTHDR))
{
PRINTF ("COFF optional header is missing or not recognized.\n");
PRINTF ("COFF f_opthdr: 0x%" PRIx32 "\n", opthdr_size);
PRINTFQ ("COFF optional header is missing or not recognized.\n");
PRINTFQ ("COFF f_opthdr: 0x%" PRIx32 "\n", opthdr_size);
exit (1);
}
fclose (inputfs);
800,7 → 805,7
}
else
{
PRINTF ("Not COFF file format\n");
PRINTFQ ("Not COFF file format\n");
fseek (inputfs, 0, SEEK_SET);
}
}
809,13 → 814,13
if (elfhdr.e_ident[0] == 0x7f && elfhdr.e_ident[1] == 0x45
&& elfhdr.e_ident[2] == 0x4c && elfhdr.e_ident[3] == 0x46)
{
PRINTF ("ELF type: 0x%.4x\n", ELF_SHORT_H (elfhdr.e_type));
PRINTF ("ELF machine: 0x%.4x\n", ELF_SHORT_H (elfhdr.e_machine));
PRINTF ("ELF version: 0x%.8lx\n", ELF_LONG_H (elfhdr.e_version));
PRINTF ("ELF sec = %d\n", ELF_SHORT_H (elfhdr.e_shnum));
PRINTFQ ("ELF type: 0x%.4x\n", ELF_SHORT_H (elfhdr.e_type));
PRINTFQ ("ELF machine: 0x%.4x\n", ELF_SHORT_H (elfhdr.e_machine));
PRINTFQ ("ELF version: 0x%.8lx\n", ELF_LONG_H (elfhdr.e_version));
PRINTFQ ("ELF sec = %d\n", ELF_SHORT_H (elfhdr.e_shnum));
if (ELF_SHORT_H (elfhdr.e_type) != ET_EXEC)
{
PRINTF ("This ELF is not an executable.\n");
PRINTFQ ("This ELF is not an executable.\n");
exit (1);
}
fclose (inputfs);
824,7 → 829,7
}
else
{
PRINTF ("Not ELF file format.\n");
PRINTFQ ("Not ELF file format.\n");
fseek (inputfs, 0, SEEK_SET);
}
}
857,7 → 862,7
transl_error = 0;
transl_table = virtphy_transl;
freemem = startaddr;
PRINTF ("loadcode: filename %s startaddr=%" PRIxADDR " virtphy_transl=%"
PRINTFQ ("loadcode: filename %s startaddr=%" PRIxADDR " virtphy_transl=%"
PRIxADDR "\n", filename, startaddr, virtphy_transl);
identifyfile (filename);
 
864,15 → 869,15
#if IMM_STATS
{
int i = 0, a = 0, b = 0, c = 0;
PRINTF ("index:arith/branch/jump\n");
PRINTFQ ("index:arith/branch/jump\n");
for (i = 0; i < 33; i++)
PRINTF ("%2i:\t%3.0f%% / %3.0f%%/ %3.0f%%\t%5i / %5i / %5i\n", i,
PRINTFQ ("%2i:\t%3.0f%% / %3.0f%%/ %3.0f%%\t%5i / %5i / %5i\n", i,
100. * (a += bcnt[i][0]) / bsum[0], 100. * (b +=
bcnt[i][1]) /
bsum[1], 100. * (c +=
bcnt[i][2]) / bsum[2], bcnt[i][0],
bcnt[i][1], bcnt[i][2]);
PRINTF ("\nsum %i %i %i\n", bsum[0], bsum[1], bsum[2]);
PRINTFQ ("\nsum %i %i %i\n", bsum[0], bsum[1], bsum[2]);
}
#endif
 
/cpu/or1k/opcode/or32.h
188,7 → 188,7
extern CONST char *insn_name PARAMS ((int index));
 
/* MM: Constructs new FSM, based on or32_opcodes. */
extern void build_automata PARAMS ((void));
extern void build_automata PARAMS ((int quiet));
 
/* MM: Destructs FSM. */
extern void destruct_automata PARAMS ((void));
/configure.ac
28,7 → 28,7
 
# Use a full version number (x.y.z, possibly with "rcn" as a suffix) when
# preparing a release, otherwise use a the date version (yyyy-mm-dd).
AC_INIT([or1ksim], [2010-06-31], [openrisc@opencores.org])
AC_INIT([or1ksim], [2010-07-23], [openrisc@opencores.org])
AC_CONFIG_MACRO_DIR([m4])
 
# Generically use extensions such as _GNU_SOURCE if available.
/doc/or1ksim.info
1,5 → 1,5
This is ../../or1ksim/doc/or1ksim.info, produced by makeinfo version
4.13 from ../../or1ksim/doc/or1ksim.texi.
This is ../../doc/or1ksim.info, produced by makeinfo version 4.13 from
../../doc/or1ksim.texi.
 
INFO-DIR-SECTION Embedded development
START-INFO-DIR-ENTRY
64,7 → 64,7
Unpack the software and create a _separate_ directory in which to build
it:
 
tar jxf or1ksim-2010-06-31.tar.bz2
tar jxf or1ksim-2010-07-23.tar.bz2
mkdir builddir_or1ksim
cd builddir_or1ksim
 
81,7 → 81,7
OpenRISC 1000 32-bit architecture. If this argument is omitted, it will
default to OpenRISC 1000 32-bit with a warning
 
../or1ksim-2010-06-31/configure --target=or32-uclinux ...
../or1ksim-2010-07-23/configure --target=or32-uclinux ...
 
There are several other options available, many of which are standard
to GNU `configure' scripts. Use `configure --help' to see all the
258,7 → 258,7
=============================
 
The following problems and issues are known about with Or1ksim
2010-06-31. The OpenRISC tracker may be used to see the current state
2010-07-23. The OpenRISC tracker may be used to see the current state
of these issues and to raise new problems and feature requests. It may
be found at `http://www.opencores.org/ptracker.cgi/view/or1k/398'.
 
933,8 → 933,8
format. This is helpful for off-line dynamic execution analysis.
 
Note: Execution logs can be _very_ big. For example, while
booting the Linux kernel, version 2.6.34, a log file
1.2Gbytes in size was generated.
booting the Linux kernel, version 2.6.34, a log file 1.2GB in
size was generated.
 
`exe_bin_insn_log_file = FILENAME'
Filename for the binary execution log filename if
4326,55 → 4326,55
 

Tag Table:
Node: Top830
Node: Installation1240
Node: Preparation1487
Node: Configuring the Build1782
Node: Build and Install7896
Node: Known Issues8742
Node: Usage11804
Node: Standalone Simulator12018
Node: Profiling Utility14921
Node: Memory Profiling Utility15831
Node: Simulator Library17196
Node: Configuration24974
Node: Configuration File Format25583
Node: Configuration File Preprocessing25875
Node: Configuration File Syntax26246
Node: Simulator Configuration29031
Node: Simulator Behavior29322
Node: Verification API Configuration33855
Node: CUC Configuration35795
Node: Core OpenRISC Configuration37712
Node: CPU Configuration38214
Node: Memory Configuration42332
Node: Memory Management Configuration48790
Node: Cache Configuration51167
Node: Interrupt Configuration53553
Node: Power Management Configuration54289
Node: Branch Prediction Configuration55566
Node: Debug Interface Configuration56926
Node: Peripheral Configuration61146
Node: Memory Controller Configuration61772
Node: UART Configuration65186
Node: DMA Configuration68705
Node: Ethernet Configuration70572
Node: GPIO Configuration74548
Node: Display Interface Configuration76181
Node: Frame Buffer Configuration78490
Node: Keyboard Configuration80354
Node: Disc Interface Configuration82592
Node: Generic Peripheral Configuration87535
Node: Interactive Command Line89830
Node: Verification API96804
Node: Code Internals101234
Node: Coding Conventions101817
Node: Global Data Structures106244
Node: Concepts108901
Ref: Output Redirection109046
Node: Internal Debugging109585
Node: Regression Testing110109
Node: GNU Free Documentation License113904
Node: Index136311
Node: Top814
Node: Installation1224
Node: Preparation1471
Node: Configuring the Build1766
Node: Build and Install7880
Node: Known Issues8726
Node: Usage11788
Node: Standalone Simulator12002
Node: Profiling Utility14905
Node: Memory Profiling Utility15815
Node: Simulator Library17180
Node: Configuration24958
Node: Configuration File Format25567
Node: Configuration File Preprocessing25859
Node: Configuration File Syntax26230
Node: Simulator Configuration29015
Node: Simulator Behavior29306
Node: Verification API Configuration33835
Node: CUC Configuration35775
Node: Core OpenRISC Configuration37692
Node: CPU Configuration38194
Node: Memory Configuration42312
Node: Memory Management Configuration48770
Node: Cache Configuration51147
Node: Interrupt Configuration53533
Node: Power Management Configuration54269
Node: Branch Prediction Configuration55546
Node: Debug Interface Configuration56906
Node: Peripheral Configuration61126
Node: Memory Controller Configuration61752
Node: UART Configuration65166
Node: DMA Configuration68685
Node: Ethernet Configuration70552
Node: GPIO Configuration74528
Node: Display Interface Configuration76161
Node: Frame Buffer Configuration78470
Node: Keyboard Configuration80334
Node: Disc Interface Configuration82572
Node: Generic Peripheral Configuration87515
Node: Interactive Command Line89810
Node: Verification API96784
Node: Code Internals101214
Node: Coding Conventions101797
Node: Global Data Structures106224
Node: Concepts108881
Ref: Output Redirection109026
Node: Internal Debugging109565
Node: Regression Testing110089
Node: GNU Free Documentation License113884
Node: Index136291

End Tag Table
/doc/version.texi
1,4 → 1,4
@set UPDATED 17 July 2010
@set UPDATED 23 July 2010
@set UPDATED-MONTH July 2010
@set EDITION 2010-06-31
@set VERSION 2010-06-31
@set EDITION 2010-07-23
@set VERSION 2010-07-23
/or1ksim.h
47,8 → 47,8
extern "C" {
#endif
 
int or1ksim_init (const char *config_file,
const char *image_file,
int or1ksim_init (int argc,
char *argv[],
void *class_ptr,
int (*upr) (void *class_ptr,
unsigned long int addr,
/ChangeLog
1,4 → 1,35
2010-07-17 Julius Baxter <julius.baxter@orsoc.se>
2010-06-31 Jeremy Bennett <jeremy.bennett@embecosm.co>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* cpu/common/abstract.c (setsim_mem32, setsim_mem16, setsim_mem8)
(evalsim_mem32, evalsim_mem16, evalsim_mem8): Only report out of
memory writes if --report-memory-errors is set.
(set_direct32, set_direct16, set_direct8, eval_direct32)
(eval_direct16, eval_direct8): Report memory errors to standard
error.
* cpu/common/parse.c (readfile_elf, identifyfile, loadcode): Use
PRINTFQ for informative messages.
* cpu/or1k/opcode/or32.h <build_automata>: Function declaration
now takes argument.
* cpu/or32/generate.c (main): build_automata takes argument.
* cpu/or32/insnset.c <l_nop>: all output from NOP_EXIT is via
PRINTFQ.
* cpu/or32/or32.c (build_automata). Takes an argument. Only prints
informative output if argument is zero.
* libtoplevel.c (or1ksim_init): Changed syntax to use full
argument vector.
* or1ksim.h <or1ksim_init>: Changed prototype.
* pic/pic.c (pic_reset): Reset message uses PRINTFQ.
* sim-config.c (parse_args): Added new args -q/--quiet and
--report-memory-errors.
* sim-config.h <struct config>: New fields sim.quiet and
sim.report_mem_errs.
* toplevel-support.c (sim_init): Identification message is printed
using PRINTFQ, call to build_automata takes parameter.
 
2010-07-17 Julius Baxter <julius.baxter@orsoc.se>
 
* sim-config.c: Adding binary execution trace support
* sim-config.h: Adding binary execution trace options to config struct
* toplevel.c: do_stats variable now set when binary insn. trace enabled
5,8 → 36,9
* toplevel-support.c: Added file handling for binary execution trace
* cpu/or32/execute.c: Adding binary execution dump function
* cpu/common/execute.h: Adding proptoype for binary dump function
2010-06-31 Jeremy Bennett <jeremy.bennett@embecosm.co>
 
2010-06-31 Jeremy Bennett <jeremy.bennett@embecosm.co>
 
* argtable2/argtable2.c (arg_print_formatted): Cast argument to
* configure: Regenerated.
* configure.ac: Version changed to current date.
17,7 → 49,8
(rsp_write_mem, rsp_write_mem_bin): Invalidate caches before writing.
* NEWS: Updated for new version
 
2010-06-29 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-29 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* cpu/or32/insnset.c <l_nop>: On exit, mark cpu as halted if this
33,12 → 66,14
* sim-config.h <struct config>: Added field sim.is_library.
<struct runtime>: Added field cpu.halted.
 
2010-06-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to 0.4.0.
* NEWS: Updated for 0.4.0.
 
2010-06-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to 0.4.0rc2. New conditional to
allow l.xori to have unsigned immediate operand.
48,7 → 83,8
option.
* NEWS: Updated with new bugs fixed.
 
2010-06-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date. enable-arith-flag
and enable-ov-flag config options removed.
62,7 → 98,8
enable-ov-flag config options.
* NEWS: Updated with new bugs fixed.
 
2010-06-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* cpu/or32/generate.c (gen_eval_operands): Generate macro
74,7 → 111,8
* cpu/or32/or32.c <or32_opcodes>: l.ror and l.rori enabled.
* NEWS: Updated with new bugs fixed.
 
2010-06-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* cpu/or32/generate.c (generate_header): stdint.h included in header.
84,7 → 122,8
* cpu/or32/or32.c <or32_opcodes>: l.mulu enabled.
* NEWS: Updated with new bugs fixed.
 
2010-06-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/insnset.c <l_maci>: Intermediate result computed as 32
bits, then sign extended.
<l_macrc>: Computation corrected.
91,12 → 130,14
* cpu/or32/or32.c <or32_opcodes>: l.maci bit pattern corrected.
* NEWS: Updated with new bugs fixed.
 
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/insnset.c <l_fl1>: New entry.
* cpu/or32/or32.c <or32_opcodes>: l.fl1 enabled.
* NEWS: Updated with new bugs fixed.
 
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* peripheral/Makefile.am: mc-defines.h added to sources.
* cpu/or32/insnset.c <l_addc>: Updated to handle overflow and
exceptions correctly.
103,7 → 144,8
* cpu/or32/or32.c <or32_opcodes>: l.addic enabled.
* NEWS: Updated with new bugs fixed.
 
2010-06-09 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-09 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date. Removed
enable_ov_flag as option for configuration.
112,17 → 154,20
* peripheral/Makefile.am: mc-defines.h added to sources.
* NEWS: Updated with new bugs fixed.
 
2010-06-08 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-08 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* peripheral/mc.h: mc_defines.h -> mc-defines.h.
* peripherals/mc-defines.h: Renamed from mc_defines.h
 
2010-06-08 Julius Baxter <julius.baxter@orsoc.se>
2010-06-08 Julius Baxter <julius.baxter@orsoc.se>
 
* peripherals/mc.h: Moved defines to peripherals/mc_defines.h
* peripherals/mc_defines.h: Created.
 
2010-06-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure: Regenerated.
* configure.ac: Version changed to current date.
* cpu/or32/insnset.c <l_div, l_divu>: Corrected divide by zero
129,7 → 174,8
exception. Set carry flag on divide by zero.
* NEWS: Updated with bugs fixed.
 
2010-06-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/generate.c (generate_header): Include math.h.
* cpu/or32/insnset.c <l_lws>: Added definition.
* cpu/or32/insnset.c <lf_rem_s>: Corrected implementation.
136,16 → 182,19
* cpu/or32/or32.c <or32_opcodes>: Made l.lws valid, rather than
ignored.
 
2010-05-31 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-31 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/insnset.c <lf_cust2, lf_cust3, lf_cust4>: Removed since
invalid.
 
2010-05-25 Julius Baxter <julius.baxter@orsoc.se>
2010-05-25 Julius Baxter <julius.baxter@orsoc.se>
 
* profiler.c: PROF_DEBUG added as symbol, MAX_STACK increased.
(prof_acquire): Conditional debugging statements added.
* profiler.h: MAX_FUNCS increased.
 
2010-05-25 Jungsook yang <jungsook.yang@uci.edu>
2010-05-25 Jungsook yang <jungsook.yang@uci.edu>
 
* cpu/common/labels.c (add_label): Improved commenting.
* cpu/or32/generate.c (generate_header): extend typedef generation
for FP opcodes.
173,7 → 222,8
* sim-config.c (init_defconfig): config.cpu.hardfloat initialized.
* sim-config.h <struct config>: cpu.hardfloat field added.
 
2010-05-25 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-25 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/common/abstract.c (reg_mem_area): Remove debugging printf ().
* peripheral/generic.c (generic_read_byte): Pass class ptr to upcall.
(generic_write_byte): Pass class ptr to upcall.
182,15 → 232,18
(generic_read_word): Pass class ptr to upcall.
(generic_write_word): Pass class ptr to upcall.
 
2010-05-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
configure.ac: Date of version updated.
configure: Regenerated.
 
2010-05-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (wishbone_write): Corrected writing when invalid
address.
 
2010-05-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (go_command_read): Change in calling convention to
spr_read and wishbone_read.
(go_command_write): Change in calling convention to spr_write () and
202,7 → 255,8
(wishbone_read): Correcly handle under- and over-run.
(wishbone_write): Correcly handle under- and over-run.
 
2010-05-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (construct_response): Return type changed to void.
(go_command): Number of bits passed as arg and on to subsidiary
functions. Return type changed to void. Error message with invalid
258,7 → 312,8
* or1ksim.h: Proforma for or1ksim_jtag_shift_ir and
or1ksim_jtag_shift_ir changed to include number of bits in reg.
 
2010-05-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (validate_spr_fields): More concise warnings,
corrected length to 4, not 1.
(reverse_bits): Fixed typo in one constant.
265,7 → 320,8
* cpu/or1k/sprs.c (mtspr): Undocumented audio SPRs 0xfffd-0xffff
and associated static vars "fo" and "audio_cnt" removed.
 
2010-05-12 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-12 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (go_command_read): Ensure null bytes set if no data
due to error and correct CRC calcuated. Give warning for length of
zero as well as too long.
282,7 → 338,8
(write_command): Warnings in terms of bytes requested, not actual
field. Separate warning for zero.
 
2010-05-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (validate_spr_fields): Check for length changed to
4 bytes (was 1 word).
(module_select): Save module ID, even if invalid.
290,7 → 347,8
module undefined.
(wishbone_read): Corrected shifts by bit-off for JTAG bytes.
 
2010-05-04 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-04 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/jtag.c (module_select): Corrected parenthesis for
computation of crc_in.
(construct_response): Corrected parenthesis for computation of
309,7 → 367,8
(wishbone_write); Correctly compute value of byte when bit-off is
not zero (shift MS bits left not right).
 
2010-05-02 Mark Jarvin <mark.jarvin@opencores.org>
2010-05-02 Mark Jarvin <mark.jarvin@opencores.org>
 
* debug/jtag.c (go_command_read): Initialize crc_out at
declaration.
* cpu/or32/generate.c (output_function): Close file if fgets ()
319,7 → 378,8
generator machine.
* port/strndup.c: also include stdlib.h and string.h.
 
2010-04-28 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-28 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.h <or1ksim_init>: Upcall arguments redefined.
* libtoplevel.c (or1ksim_init): Upcall arguments redefined.
* sim-config.h <struct config.ext>: definition of read_up and
330,7 → 390,8
(generic_write_hw, generic_read_word, generic_write_word): Changed
to use new upcall interface.
 
2010-04-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* sim-config.c (read_script_file): Check cur_section is defined
before dereferencing to identify parameter.
* peripheral/generic.c (generic_read_byte, generic_write_byte)
338,23 → 399,28
(generic_read_word, generic_write_word): Use upcall availability
as test for upcall.
 
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* NEWS: updated
* mprofile.c (main_mprofiler): Bug 1710 fixed.
 
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* NEWS: updated
* peripheral/ps2kbd.c (kbd_reset): Bug 1723 fixed.
 
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* AUTHORS: Corrected spelling of Mark Jarvin.
* debug/rsp-server.c (rsp_get_client): Set len before calling
accept ().
 
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cache/icache-model.c (ic_end_sec): Use -1 as the invalid tag value.
 
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* doc/or1ksim.texi: Updated with new testing instructions.
* README: Updated.
* configure.ac: Check for rl_event_hook declaration.
363,7 → 429,8
* peripheral/atadevice.c: Added conditional includes for Apple MAC.
* port/strndup.c: Include stddef.h to define size_t.
 
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or1k/spr-defs.h: NOP_PRINTF removed.
* support/simprintf.h, support/simprintf.h: Deleted
* support/dbchs.h: simprintf channel removed.
393,7 → 460,8
* cuc/bb.c (detect_bb): Array bound check added
* cuc/timings.c (load_timing_table): index initialized.
 
2010-04-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* COPYING: Updated to v3.
* peripheral/gpio.c: #defines transfered to gpio.h
* peripheral/gpio.h: #defines transfered from gpio.c
400,20 → 468,24
* peripheral/mc.c: #defines transfered to mc.h
* peripheral/mc.h: #defines transfered from mc.c
 
2010-04-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/insnset.c: Added support for new timing NOPs.
* cpu/or1k/spr-defs.h: NOP_GET_TICKS and NOP_GET_PS added.
 
2010-04-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* peripheral/eth.c: #defines transfered to eth.h
* peripheral/eth.h: #defines transfered from eth.c
 
2009-03-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
2009-03-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* README: Reference to installation instructions updated
* NEWS: Updated for release 0.3.0
* doc/or1ksim.texi: Copyright date updated
 
2009-02-24 Jeremy Bennett <jeremy.bennett@embecosm.com>
2009-02-24 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure.ac: Version number upped
* cpu/common/execute.h: cpu_state.npc_not_valid added
* cpu/or1k/spr-defs.h: SPR_DRR_FPE added
432,21 → 504,25
functionality added.
* toplevel-support.c (sim_init): Version number printed out
 
2008-11-17 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-11-17 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* sim-config.c: MERROR deleted (not used). WARNING replaced by
explicit fprintf calls.
* sim-config.h, sim-config.c, peripheral/16450.c: CONFIG_ERROR
replaced by fprintf.
 
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* debug/gdbcomm.c (get_server_socket): server_ip flag getting by
fcntl corrected (wrong syntax used for GETFL).
 
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* doc/or1ksim.texi: Documentation of the various configuration
options added.
 
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or32/op-mftspr-op.h, cpu/or32/op.c, cpu/or32/dyn32-defs.h,
cpu/or32/def_op_t.h, cpu/or32/op-support.c, cpu/or32/op-swhb-op.h,
cpu/or32/dyn-rec.c, cpu/or32/execute.c, cpu/or32/op-arith-op.h,
455,7 → 531,8
Numerous changes to ensure compilation succeeds with
DYNAMIC_EXECUTION.
 
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-11-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* cpu/or1k/opcode/or32.h: Change include of simple32_defs.h to
simple32-defs.h and dyn32_defs.h to dyn32-defs.h
* cpu/or32/simple32-defs.h: Made conditional and added include of
462,7 → 539,8
* cpu/or32/Makefile.am: For simple execution removed insnset.c
from the sources and added it to EXTRA sources.
 
2008-10-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-10-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure.ac: Corrected gcc args for --enabled-profiling
* cpu/common/stats.h, cpu/common/stats.c: Moved definition of
RAW_RANGE to stats.h from stats.c. Made declaration of raw_stats
470,7 → 548,8
* cpu/common/stats.c (printstats): Changed MAX_RANGE to RAW_RANGE
* cpu/or32/execute.c (evalsim_reg): Changed MAX_RAW_RANGE to RAW_RANGE
 
2008-10-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-10-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* all: Removed redundant headers added missing GPL statements,
formatted to GNU standard. Made all non-global functions and top
level variables explicitly static, eliminated most typedefs.
563,11 → 642,8
generate.c to or32.c, renamed or32_debug and declared static, to
avoid confusion with main debug function in toplevel-support.c.
 
2008-09-08 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
 
2008-09-08 Jeremy Bennett <jeremy.bennett@embecosm.com>
* argtable2: This directory is a direct inclusion of the argtable2
library <argtable.sourceforge.net>
* artable2/Makefile.am: Modified so the library and header are not
584,12 → 660,12
* sim-config.c (parse_args): profile and mprofile options on
command line removed.
 
2008-09-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-09-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* toplevel_support.c, sim-config.c, support/dumpverilog.c:
or1ksim_ver replaced by PACKAGE_VERSION
 
2008-09-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-09-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* AUTHORS: Added Jeremy Bennett
* bpb/Makefile.am: Updated to use libtool libraries
628,7 → 704,7
* toplevel_support.c: New file
* vapi/Makefile.am: Updated to use libtool libraries
 
2008-09-04 15:04 Jeremy Bennett <jeremy.bennett@embecosm.com>
2008-09-04 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* bpb/Makefile.am: Added header to SOURCES, so included in TAGS
file
/testsuite/libsim.tests/jtag-write-control.exp
354,7 → 354,6
"Execution step completed OK." \
"Processing WRITE_CONTROL." \
" shifting in: 0x000000000059613d0e00000000000024" \
"Resetting PIC." \
" shifted out: 0x164841bc600000000000000000000000" \
" status: 0x0" \
" time taken:" \
382,7 → 381,6
"Execution step completed OK." \
"Processing WRITE_CONTROL." \
" shifting in: 0x0000000001c61b4e3600000000000064" \
"Resetting PIC." \
" shifted out: 0x164841bc600000000000000000000000" \
" status: 0x0" \
" time taken:" \
416,7 → 414,6
"Execution step completed with breakpoint." \
"Processing WRITE_CONTROL." \
" shifting in: 0x000000000059613d0e00000000000024" \
"Resetting PIC." \
" shifted out: 0x164841bc600000000000000000000000" \
" status: 0x0" \
" time taken:" \
/testsuite/libsim.tests/upcalls.exp
45,8 → 45,7
"Read half word at 0x98000008 = 0xcafe." \
"Read half word at 0x9800000a = 0xbabe." \
"All done." \
"report(0xdeaddead);" \
"exit(0)"] \
"report(0xdeaddead);"] \
"lib-upcalls/lib-upcalls" "upcalls.cfg" "upcalls/upcall-basic" \
"14" "32"
 
72,7 → 71,6
"Reading full word at 0x98000012: misalignment exception." \
"Reading full word at 0x98000017: misalignment exception." \
"Read full word at 0x9800001c = 0xbaadbabe." \
"report(0xdeaddead);" \
"exit(0)"] \
"report(0xdeaddead);"] \
"lib-upcalls/lib-upcalls" "upcalls.cfg" "upcalls/upcall-misaligned" \
"8" "32"
/testsuite/or1ksim.tests/except-test.exp
29,16 → 29,10
[list "except_test" \
"dtlb_test" \
"buserr_test" \
"!EXCEPTION: read out of memory (32-bit access to 0400e000)" \
"!EXCEPTION: read out of memory (32-bit access to 04000000)" \
"!EXCEPTION: read out of memory (32-bit access to 04006000)" \
"!EXCEPTION: read out of memory (32-bit access to 04004000)" \
"illegal_insn_test" \
"align_test" \
"trap_test" \
"except_priority_test" \
"!EXCEPTION: read out of memory (32-bit access to 0400c000)" \
"!EXCEPTION: read out of memory (32-bit access to 04004000)" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"" "except-test/except-test"
/testsuite/ChangeLog
1,35 → 1,66
2010-06-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-07-23 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/except-test.exp: Output no longer reports out of
memory exceptions.
* libsim.tests/jtag-write-control.exp
<JTAG WRITE_CONTROL CPU0 reset>: No PIC reset.
<JTAG WRITE_CONTROL CPU0 stall and reset>: No PIC reset.
<JTAG WRITE_CONTROL CPU0 stall then reset>: No PIC reset.
* libsim.tests/upcalls.exp <upcalls - basic, upcalls - misaligned>:
No output from exit.
* test-code/lib-iftest/lib-iftest.c (main): New interface to
or1ksim_init.
* test-code/lib-inttest/lib-inttest-edge.c (main): New interface to
or1ksim_init.
* test-code/lib-inttest/lib-inttest-level.c (main): New interface to
or1ksim_init.
* test-code/lib-jtag/lib-jtag.c (main): New interface to
or1ksim_init.
* test-code/lib-jtag/lib-jtag-full.c (main): New interface to
or1ksim_init.
* test-code/lib-upcalls/lib-upcalls.c (main): New interface to
or1ksim_init.
 
2010-06-15 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Added tests for l.mfspr and
l.mtspr, l.sub, logical and shift instructions.
 
2010-06-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Modified output from RANGE
exception. Added tests for jump and rotate right instructions.
 
2010-06-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Added multiplication
tests. Extended divistion tests. Changed output to match new
format from existing tests.
* README: Updated with new tests.
 
2010-06-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-11 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Added MAC tests.
* or1ksim.tests/mul.exp: Corrected erroneous expected results.
* README: Updated with new tests.
 
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Added find tests.
* README: Updated with new tests.
 
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-10 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Extended addition tests.
* README: Updated with new tests.
 
2010-06-09 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-09 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.exp: Added division and addition tests.
* README: Updated with new tests.
 
2010-06-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-06 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/inst-set-test.cfg: Created.
* or1ksim.tests/inst-set-test.exp: Created.
* or1ksim.tests/Makefile.am: Updated to reflect added and deleted
39,13 → 70,15
inst-set-test.ex).
* README: Updated to reflect new structure.
 
2010-06-03 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-03 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/fp.exp: Removed timeout change
* or1ksim.tests/lws-test.exp: Created.
* or1ksim/test/Makefile.am: Added lws-test & config.
* or1ksim/test/Makefile.in: Regenerated.
 
2010-06-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-06-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* lib/or1ksim.exp: Use same matching as libsim.exp, treat each
match as a pass.
* or1ksim/test/basic.exp: Unreported test entries marked.
74,7 → 107,8
* or1ksim/test/mycompress.exp: Unreported test entries marked.
* or1ksim/test/tick.exp: Unreported test entries marked.
 
2010-05-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* lib/libsim.exp (run_libsim): Expect clause corrected to detect
all unexpected warning/errors.
* libsim.tests/jtag-go-command-read.exp
86,17 → 120,20
<JTAG WRITE_COMMAND CPU0 read words>: Missing error added.
<JTAG WRITE_COMMAND CPU0 access type 7>: Missing error added.
 
2010-05-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/Makefile.am: upcalls.exp added to distribution.
* libsim.tests/Makefile.in: Regenerated.
 
2010-05-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-18 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/default.cfg: Disabled MC, replaced with memory block
and set CPU to take vectors at high address.
* test-code/lib-jtag/lib-jtag-full.c: Increase time quanta to 3ms to
allow time for messages.
 
2010-05-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/Makefile.am: Added new test files to dist
* libsim.tests/Makefile: Regenerated.
* libsim.tests/jtag-go-command-read.exp: New file.
114,7 → 151,8
with bit lengths.
 
 
2010-05-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/jtag-read-command.exp: Better test naming.
* libsim.tests/jtag-select-module.exp: Better test naming.
* libsim.tests/jtag-write-command.exp: Better test naming.
126,7 → 164,8
<SELECT_MODULE READ_COMMAND module 14>: Check for correct access
type.
 
2010-05-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-13 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/default.cfg: Add memory block at top of memory.
* libsim.tests/lib-jtag-full.c: Corrected some error messages.
* libsim.tests/Makefile.am: Added new JTAG test files.
138,7 → 177,8
* test-code/lib-jtag/lib-jtag-full.c (process_read_command):
Corrected printout of access_type.
 
2010-05-04 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-04 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* configure.ac: lib-jtag/Makefile.am added as output
* configure: Regenerated
* libsim.tests/jtag-basic.exp: Created for low level JTAG tests.
156,10 → 196,12
* test-code/Makefile.am: lib-jtag added as subdir
* test-code/Makefile.in: Regenerated.
 
2010-05-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* test-code/lib-upcalls/lib-upcalls.c (main): Commenting corrected.
 
2010-05-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-05-02 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* global-conf.exp: Renamed from default-global-conf.exp.
* lib/or1ksim.exp (run_or1ksim): Use $srcdir instead of
environment variable and use $objdir.
166,7 → 208,8
* lib/or1ksim.exp (run_libsim): Use $srcdir instead of
environment variable and use $objdir.
 
2010-04-30 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-30 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* lib/or1ksim.exp (run_or1ksim): Make timeout return UNRESOLVED
rather than FAIL.
* lib/libsim.exp (run libsim): Make timeout return UNRESOLVED
173,7 → 216,8
rather than FAIL.
* or1ksim.tests/fbtest.exp: Restore timeout correctly.
 
2010-04-28 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-28 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/upcalls.exp: Created.
* libsim.tests/upcalls.cfg: Created.
* test-code/lib-upcalls/lib-upcalls.c: Changed to use new upcall
182,7 → 226,8
* test-code/lib-inttest/lib-inttest-level.c: Changed to use new
upcall interface.
 
2010-04-25 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-25 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libsim.tests/int-level.exp: Created.
* test-code/lib-upcalls: Created.
* test-code/lib-upcalls/lib-upcalls.c: Created.
191,23 → 236,27
function to print chars more clearly.
* or1ksim.tests/kbd.exp: Updated for new test output format.
 
2010-04-23 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-23 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* test-code/lib-inttest/lib-inttest-level.c: Created.
* Makefile.am: Updated for new tests
* Makefile.in: Regenerated.
* README: Updated for new library test results.
 
2010-04-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-22 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or1ksim.tests/cbasic.exp: Errors due to buggy printf fixed.
* or1ksim.tests/mmu.exp: Errors due to buggy printf fixed.
* or1ksim.tests/mul.exp: Errors due to buggy printf fixed.
 
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-21 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* test-code-or1k: Renamed from test-code.
* configure.ac, configure: Moved to test-code-or1k.
* AUTHORS, NEWS, INSTALL, COPYING: Moved to test-code-or1k.
 
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-20 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* test-code/support/spr-defs.h: NOP_PRINTF definition removed.
* test-code/except-test/except-test.c (illegal_insn_test):
Generate and check a correct sequence for illegal instruction.
214,7 → 263,8
* test-code/except-test/except-test.c (except_priority_test):
Generate a properly illegal instruction.
 
2010-04-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
2010-04-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* AUTHORS: Created to refer to parent file.
* config: Directory for board configurations.
* config/unix.exp: Created.
/testsuite/test-code/lib-iftest/lib-iftest.c
69,9 → 69,22
return 1;
}
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Put the initialization message afterwards, or it will get swamped by the
Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, NULL, NULL))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, NULL, NULL))
{
printf ("Initalization succeeded.\n");
}
/testsuite/test-code/lib-upcalls/lib-upcalls.c
322,9 → 322,23
(void)memset (&(regv[next_free_byte]), 0, regc - next_free_byte);
}
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Initialize the program. Put the initialization message afterwards, or it
will get swamped by the Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, &read_upcall, &write_upcall))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, &read_upcall,
&write_upcall))
{
printf ("Initalization succeeded.\n");
}
/testsuite/test-code/lib-jtag/lib-jtag-full.c
1349,9 → 1349,22
return 1;
}
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Initialize the program. Put the initialization message afterwards, or it
will get swamped by the Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, NULL, NULL))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, NULL, NULL))
{
printf ("Initalization succeeded.\n");
}
/testsuite/test-code/lib-jtag/lib-jtag.c
246,9 → 246,22
return 1;
}
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Initialize the program. Put the initialization message afterwards, or it
will get swamped by the Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, NULL, NULL))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, NULL, NULL))
{
printf ("Initalization succeeded.\n");
}
/testsuite/test-code/lib-inttest/lib-inttest-edge.c
173,9 → 173,23
return 1;
}
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Initialize the program. Put the initialization message afterwards, or it
will get swamped by the Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, &read_upcall, &write_upcall))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, &read_upcall,
&write_upcall))
{
printf ("Initalization succeeded.\n");
}
/testsuite/test-code/lib-inttest/lib-inttest-level.c
249,9 → 249,23
next_raise = 0;
next_clear = 0;
 
/* Dummy argv array to pass arguments to or1ksim_init. Varies depending on
whether an image file is specified. */
int dummy_argc;
char *dummy_argv[5];
 
dummy_argv[0] = "libsim";
dummy_argv[1] = "-q";
dummy_argv[2] = "-f";
dummy_argv[3] = argv[1];
dummy_argv[4] = argv[2];
 
dummy_argc = 5;
 
/* Initialize the program. Put the initialization message afterwards, or it
will get swamped by the Or1ksim header. */
if (0 == or1ksim_init (argv[1], argv[2], NULL, &read_upcall, &write_upcall))
if (0 == or1ksim_init (dummy_argc, dummy_argv, NULL, &read_upcall,
&write_upcall))
{
printf ("Initalization succeeded.\n");
}
/config.h.in
237,9 → 237,6
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
 
/* Define to the home page for this package. */
#undef PACKAGE_URL
 
/* Define to the version of this package. */
#undef PACKAGE_VERSION
 
/configure
1,7 → 1,7
#! /bin/sh
# From configure.ac Id: configure.ac 1067 2010-06-28 18:27:28Z jeremy using automake version AC_ACVERSION.
# From configure.ac Id: configure.ac 1102 2010-07-23 15:35:59Z jeremy using automake version AC_ACVERSION.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.63 for or1ksim 2010-06-31.
# Generated by GNU Autoconf 2.63 for or1ksim 2010-07-23.
#
# Report bugs to <openrisc@opencores.org>.
#
766,8 → 766,8
# Identity of this package.
PACKAGE_NAME='or1ksim'
PACKAGE_TARNAME='or1ksim'
PACKAGE_VERSION='2010-06-31'
PACKAGE_STRING='or1ksim 2010-06-31'
PACKAGE_VERSION='2010-07-23'
PACKAGE_STRING='or1ksim 2010-07-23'
PACKAGE_BUGREPORT='openrisc@opencores.org'
 
# Factoring default headers for most tests.
1529,7 → 1529,7
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures or1ksim 2010-06-31 to adapt to many kinds of systems.
\`configure' configures or1ksim 2010-07-23 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
1600,7 → 1600,7
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of or1ksim 2010-06-31:";;
short | recursive ) echo "Configuration of or1ksim 2010-07-23:";;
esac
cat <<\_ACEOF
 
1707,7 → 1707,7
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
or1ksim configure 2010-06-31
or1ksim configure 2010-07-23
generated by GNU Autoconf 2.63
 
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
1741,7 → 1741,7
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by or1ksim $as_me 2010-06-31, which was
It was created by or1ksim $as_me 2010-07-23, which was
generated by GNU Autoconf 2.63. Invocation command line was
 
$ $0 $@
11284,7 → 11284,7
 
# Define the identity of the package.
PACKAGE='or1ksim'
VERSION='2010-06-31'
VERSION='2010-07-23'
 
 
cat >>confdefs.h <<_ACEOF
18260,7 → 18260,7
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by or1ksim $as_me 2010-06-31, which was
This file was extended by or1ksim $as_me 2010-07-23, which was
generated by GNU Autoconf 2.63. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
18323,7 → 18323,7
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
or1ksim config.status 2010-06-31
or1ksim config.status 2010-07-23
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
/toplevel-support.c
221,11 → 221,11
void
sim_init ()
{
printf ("Or1ksim " PACKAGE_VERSION "\n" );
PRINTFQ ("Or1ksim " PACKAGE_VERSION "\n" );
init_labels ();
init_breakpoints ();
initstats ();
build_automata ();
build_automata (config.sim.quiet);
 
#if DYNAMIC_EXECUTION
/* Note: This must be called before the scheduler is used */
/libtoplevel.c
51,11 → 51,11
/*---------------------------------------------------------------------------*/
/*!Initialize the simulator.
 
Allows specification of an (optional) config file and an image file. Builds
up dummy argc/argv to pass to the existing argument parser.
The user can pass in any arguments acceptable to the standalone
simulator. Not all make any sense in a library environment.
 
@param[in] config_file Or1ksim configuration file name
@param[in] image_file The program image to execute
@param[in] argc Size of argument vector
@param[in] argv Argument vector
@param[in] class_ptr Pointer to a C++ class instance (for use when
called by C++)
@param[in] upr Upcall routine for reads
64,8 → 64,8
@return 0 on success and an error code on failure */
/*---------------------------------------------------------------------------*/
int
or1ksim_init (const char *config_file,
const char *image_file,
or1ksim_init (int argc,
char *argv[],
void *class_ptr,
int (*upr) (void *class_ptr,
unsigned long int addr,
78,24 → 78,12
unsigned char wdata[],
int data_len))
{
int dummy_argc;
char *dummy_argv[4];
 
/* Dummy argv array. Varies depending on whether an image file is
specified. */
dummy_argv[0] = "libsim";
dummy_argv[1] = "-f";
dummy_argv[2] = (char *) ((NULL != config_file) ? config_file : "sim.cfg");
dummy_argv[3] = (char *) image_file;
 
dummy_argc = (NULL == image_file) ? 3 : 4;
 
/* Initialization copied from existing main() */
srand (getpid ());
init_defconfig ();
reg_config_secs ();
 
if (parse_args (dummy_argc, dummy_argv))
if (parse_args (argc, argv))
{
return OR1KSIM_RC_BADINIT;
}
/pic/pic.c
55,7 → 55,7
void
pic_reset (void)
{
PRINTF ("Resetting PIC.\n");
PRINTFQ ("Resetting PIC.\n");
cpu_state.sprs[SPR_PICMR] = 0;
cpu_state.sprs[SPR_PICPR] = 0;
cpu_state.sprs[SPR_PICSR] = 0;
/sim-config.c
282,6 → 282,8
struct arg_int *srv;
struct arg_str *dbg;
struct arg_lit *command;
struct arg_lit *quiet;
struct arg_lit *report_mem_errs;
struct arg_lit *strict_npc;
struct arg_lit *profile;
struct arg_lit *mprofile;
288,7 → 290,7
struct arg_file *load_file;
struct arg_end *end;
 
void *argtab[12];
void *argtab[14];
int nerrors;
 
/* Specify each argument, with fall back values */
303,6 → 305,9
srv->hdr.flag |= ARG_HASOPTVALUE;
dbg = arg_str0 ("d", "debug-config", "<str>", "Debug config string");
command = arg_lit0 ("i", "interactive", "launch interactive prompt");
quiet = arg_lit0 ("q", "quiet", "minimal message output");
report_mem_errs = arg_lit0 (NULL, "report-memory-errors",
"Report out of memory accesses");
strict_npc = arg_lit0 (NULL, "strict-npc", "setting NPC flushes pipeline");
profile = arg_lit0 (NULL, "enable-profile", "enable profiling");
mprofile = arg_lit0 (NULL, "enable-mprofile", "enable memory profiling");
317,11 → 322,13
argtab[ 4] = srv;
argtab[ 5] = dbg;
argtab[ 6] = command;
argtab[ 7] = strict_npc;
argtab[ 8] = profile;
argtab[ 9] = mprofile;
argtab[10] = load_file;
argtab[11] = end;
argtab[ 7] = quiet;
argtab[ 8] = report_mem_errs;
argtab[ 9] = strict_npc;
argtab[10] = profile;
argtab[11] = mprofile;
argtab[12] = load_file;
argtab[13] = end;
 
/* Parse */
nerrors = arg_parse (argc, argv, argtab);
400,6 → 407,12
/* Interactive operation */
runtime.sim.iprompt = command->count;
 
/* Request for quiet running */
config.sim.quiet = quiet->count;
 
/* Request for quiet running */
config.sim.report_mem_errs = report_mem_errs->count;
 
/* Request for strict NPC behavior (flush the pipeline on change) */
config.sim.strict_npc = strict_npc->count;
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.