Sequencer.cc (6505:a2306c563df2) Sequencer.cc (6506:e9e7ca667575)
1
2/*
3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 260 unchanged lines hidden (view full) ---

269 (request->ruby_request.type == RubyRequestType_RMW_Read) ||
270 (request->ruby_request.type == RubyRequestType_RMW_Write) ||
271 (request->ruby_request.type == RubyRequestType_Locked_Read) ||
272 (request->ruby_request.type == RubyRequestType_Locked_Write));
273 // POLINA: the assumption is that atomics are only on data cache and not instruction cache
274 if (request->ruby_request.type == RubyRequestType_Locked_Read) {
275 m_dataCache_ptr->setLocked(address, m_version);
276 }
1
2/*
3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 260 unchanged lines hidden (view full) ---

269 (request->ruby_request.type == RubyRequestType_RMW_Read) ||
270 (request->ruby_request.type == RubyRequestType_RMW_Write) ||
271 (request->ruby_request.type == RubyRequestType_Locked_Read) ||
272 (request->ruby_request.type == RubyRequestType_Locked_Write));
273 // POLINA: the assumption is that atomics are only on data cache and not instruction cache
274 if (request->ruby_request.type == RubyRequestType_Locked_Read) {
275 m_dataCache_ptr->setLocked(address, m_version);
276 }
277 else if (request->ruby_request.type == RubyRequestType_RMW_Read) {
278 m_controller->set_atomic(address);
279 }
280 else if (request->ruby_request.type == RubyRequestType_RMW_Write) {
281 m_controller->clear_atomic();
282 }
277
278 hitCallback(request, data);
279}
280
281void Sequencer::readCallback(const Address& address, DataBlock& data) {
282
283 assert(address == line_address(address));
284 assert(m_readRequestTable.exist(line_address(address)));

--- 237 unchanged lines hidden ---
283
284 hitCallback(request, data);
285}
286
287void Sequencer::readCallback(const Address& address, DataBlock& data) {
288
289 assert(address == line_address(address));
290 assert(m_readRequestTable.exist(line_address(address)));

--- 237 unchanged lines hidden ---