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)); |
} |
} |