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

Subversion Repositories or1k

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1603 to Rev 1604
    Reverse comparison

Rev 1603 → Rev 1604

/trunk/or1ksim/support/dumpverilog.c
47,20 → 47,21
extern char *or1ksim_ver;
extern char *disassembled;
 
void dumpverilog(char *verilog_modname, unsigned int from, unsigned int to)
void dumpverilog(char *verilog_modname, oraddr_t from, oraddr_t to)
{
unsigned int i, done = 0;
struct label_entry *tmp;
char dis[DISWIDTH + 100];
uint32_t insn;
int index;
PRINTF("// This file was generated by or1ksim version %s\n", or1ksim_ver);
PRINTF(OR1K_MEM_VERILOG_HEADER(verilog_modname, from/DWQ, to/DWQ, (DISWIDTH*8)));
for(i = from; i < to; i++)
{
unsigned int _insn = eval_direct32 (i, 0, 0);
int index = insn_decode(_insn);
if (index >= 0)
{
for(i = from; i < to; i++) {
if(!(i & 3)) {
insn = eval_direct32(i, 0, 0);
index = insn_decode(insn);
if (index >= 0) {
if (verify_memoryarea(i) && (tmp = get_label(i)))
if (tmp)
PRINTF("\n//\t%s%s", tmp->name, LABELEND_CHAR);
68,7 → 69,7
PRINTF("\n\tmem['h%x] = %d'h%.8"PRIx32";", i/DWQ, DW,
eval_direct32(i, 0, 0));
disassemble_insn (_insn);
disassemble_insn (insn);
strcpy (dis, disassembled);
if (strlen(dis) < DISWIDTH)
77,16 → 78,18
PRINTF("\n\tdis['h%x] = {\"%s\"};", i/DWQ, dis);
dis[0] = '\0';
i += insn_len(index) - 1;
} else {
if (i % 64 == 0)
PRINTF("\n");
PRINTF("\n\tmem['h%x] = 'h%.2x;", i/DWQ,
eval_direct8(i, 0, 0));
}
done = 1;
done = 1;
continue;
}
}
 
if (i % 64 == 0)
PRINTF("\n");
PRINTF("\n\tmem['h%x] = 'h%.2x;", i/DWQ, eval_direct8(i, 0, 0));
done = 1;
}
if (done)
{
PRINTF(OR1K_MEM_VERILOG_FOOTER);
110,20 → 113,22
PRINTF(OR1K_MEM_VERILOG_FOOTER);
}
 
void dumphex(unsigned int from, unsigned int to)
void dumphex(oraddr_t from, oraddr_t to)
{
unsigned int i;
oraddr_t i;
uint32_t insn;
int index;
for(i = from; i < to; i++) {
unsigned int _insn = eval_direct32 (i, 0, 0);
int index = insn_decode(_insn);
if (index >= 0)
{
PRINTF("%.8"PRIx32"\n", eval_direct32(i, 0, 0));
i += insn_len(index) - 1;
if(!(i & 3)) {
insn = eval_direct32(i, 0, 0);
index = insn_decode(insn);
if(index >= 0) {
PRINTF("%.8"PRIx32"\n", eval_direct32(i, 0, 0));
i += insn_len(index) - 1;
continue;
}
else
PRINTF("%.2x\n", eval_direct8(i, 0, 0));
}
PRINTF("%.2x\n", eval_direct8(i, 0, 0));
}
}

powered by: WebSVN 2.1.0

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