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 --- |