51a52,55
> m_store_waiting_on_load_cycles = 0;
> m_store_waiting_on_store_cycles = 0;
> m_load_waiting_on_store_cycles = 0;
> m_load_waiting_on_load_cycles = 0;
145a150,157
> void Sequencer::printStats(ostream & out) const {
> out << "Sequencer: " << m_name << endl;
> out << " store_waiting_on_load_cycles: " << m_store_waiting_on_load_cycles << endl;
> out << " store_waiting_on_store_cycles: " << m_store_waiting_on_store_cycles << endl;
> out << " load_waiting_on_load_cycles: " << m_load_waiting_on_load_cycles << endl;
> out << " load_waiting_on_store_cycles: " << m_load_waiting_on_store_cycles << endl;
> }
>
357,358c369,378
< if( m_writeRequestTable.exist(line_address(Address(request.paddr))) ||
< m_readRequestTable.exist(line_address(Address(request.paddr))) ){
---
> bool is_outstanding_store = m_writeRequestTable.exist(line_address(Address(request.paddr)));
> bool is_outstanding_load = m_readRequestTable.exist(line_address(Address(request.paddr)));
> if ( is_outstanding_store ) {
> if ((request.type == RubyRequestType_LD) ||
> (request.type == RubyRequestType_IFETCH) ||
> (request.type == RubyRequestType_RMW_Read)) {
> m_store_waiting_on_load_cycles++;
> } else {
> m_store_waiting_on_store_cycles++;
> }
359a380,387
> } else if ( is_outstanding_load ) {
> if ((request.type == RubyRequestType_ST) ||
> (request.type == RubyRequestType_RMW_Write) ) {
> m_load_waiting_on_store_cycles++;
> } else {
> m_load_waiting_on_load_cycles++;
> }
> return LIBRUBY_ALIASED_REQUEST;
395,396c423,424
< // TODO: issue hardware prefetches here
< return id;
---
> // TODO: issue hardware prefetches here
> return id;
399a428
> return 0;
401,402c430
< }
< else {
---
> } else {