Applications that stress the processor memory queue
usage
Files
stallq.cc
Problem Description
Under certain circumstances, an instruction can pass through address
generation twice (if there was no space for it in the mem system when
it was fetched and if its dependences clear out before it gets added
to the memory system). The fix is a simple one-line change to
stallq.cc.
The code in error says:
inst->addrdep = 0;
if (inst->strucdep == 0) // has a slot in memory system
CalculateAddress(inst,proc);
Change this to:
inst->addrdep = 0;
if (inst->strucdep == 0 && inst->in_memunit) // has a slot in memory system
CalculateAddress(inst,proc);