URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 1427 to Rev 1428
- ↔ Reverse comparison
Rev 1427 → Rev 1428
/trunk/or1ksim/cpu/or32/execute.c
204,7 → 204,7
dst: flag src: flag always 1 |
*/ |
|
int depend_operands(prev, next) |
static int check_depend(prev, next) |
struct iqueue_entry *prev; |
struct iqueue_entry *next; |
{ |
323,11 → 323,13
{ |
if (config.cpu.dependstats) { |
/* Dynamic, dependency stats. */ |
adddstats(icomplet[0].insn_index, current->insn_index, 1, check_depend()); |
adddstats(icomplet[0].insn_index, current->insn_index, 1, |
check_depend(icomplet, current)); |
|
/* Dynamic, functional units stats. */ |
addfstats(or32_opcodes[icomplet[0].insn_index].func_unit, |
or32_opcodes[current->insn_index].func_unit, 1, check_depend()); |
or32_opcodes[current->insn_index].func_unit, 1, |
check_depend(icomplet, current)); |
|
/* Dynamic, single stats. */ |
addsstats(current->insn_index, 1); |
350,13 → 352,13
|
/* Pseudo multiple issue benchmark */ |
if ((multissue[or32_opcodes[current->insn_index].func_unit] < 1) || |
(check_depend()) || (issued_per_cycle < 1)) { |
(check_depend(icomplet, current)) || (issued_per_cycle < 1)) { |
int i; |
for (i = 0; i < 20; i++) |
multissue[i] = 2; |
issued_per_cycle = 2; |
runtime.cpu.supercycles++; |
if (check_depend()) |
if (check_depend(icomplet, current)) |
runtime.cpu.hazardwait++; |
multissue[it_unknown] = 2; |
multissue[it_shift] = 2; |
/trunk/or1ksim/cpu/common/stats.c
59,14 → 59,6
struct dmmustats_entry dmmu_stats = {0}; /* data mmu stats */ |
struct raw_stats raw_stats = {0}; /* RAW hazard stats */ |
|
/* Dependency */ |
|
int check_depend() |
{ |
debug(5,"check_depend\n"); |
return depend_operands(&icomplet[0], &iqueue[0]); |
} |
|
void addsstats(int item, int cnt_dynamic) |
{ |
int i = 0; |
/trunk/or1ksim/cpu/common/stats.h
102,7 → 102,6
extern struct dmmustats_entry dmmu_stats; |
extern struct raw_stats raw_stats; |
|
extern int check_depend(); |
extern void addsstats(int item, int cnt_dynamic); |
extern void adddstats(int item1, int item2, int cnt_dynamic, int depend); |
extern void addfstats(enum insn_type item1, enum insn_type item2, int cnt_dynamic, int depend); |