return "LD";
case RubyRequestType_ST:
return "ST";
- case RubyRequestType_RMW_Read:
- return "RMW_Read";
- case RubyRequestType_RMW_Write:
- return "RMW_Write";
+ case RubyRequestType_Locked_Read:
+ return "Locked_Read";
+ case RubyRequestType_Locked_Write:
+ return "Locked_Write";
case RubyRequestType_NULL:
default:
assert(0);
return RubyRequestType_LD;
else if (str == "ST")
return RubyRequestType_ST;
- else if (str == "RMW_Read")
- return RubyRequestType_RMW_Read;
- else if (str == "RMW_Write")
- return RubyRequestType_RMW_Write;
+ else if (str == "Locked_Read")
+ return RubyRequestType_Locked_Read;
+ else if (str == "Locked_Write")
+ return RubyRequestType_Locked_Write;
else
assert(0);
return RubyRequestType_NULL;
Address line_addr(request->ruby_request.paddr);
line_addr.makeLineAddress();
if ((request->ruby_request.type == RubyRequestType_ST) ||
- (request->ruby_request.type == RubyRequestType_RMW_Read) ||
- (request->ruby_request.type == RubyRequestType_RMW_Write)) {
+ (request->ruby_request.type == RubyRequestType_Locked_Read) ||
+ (request->ruby_request.type == RubyRequestType_Locked_Write)) {
if (m_writeRequestTable.exist(line_addr)) {
m_writeRequestTable.lookup(line_addr) = request;
// return true;
Address line_addr(ruby_request.paddr);
line_addr.makeLineAddress();
if ((ruby_request.type == RubyRequestType_ST) ||
- (ruby_request.type == RubyRequestType_RMW_Read) ||
- (ruby_request.type == RubyRequestType_RMW_Write)) {
+ (ruby_request.type == RubyRequestType_Locked_Read) ||
+ (ruby_request.type == RubyRequestType_Locked_Write)) {
m_writeRequestTable.deallocate(line_addr);
} else {
m_readRequestTable.deallocate(line_addr);
removeRequest(request);
assert((request->ruby_request.type == RubyRequestType_ST) ||
- (request->ruby_request.type == RubyRequestType_RMW_Read) ||
- (request->ruby_request.type == RubyRequestType_RMW_Write));
+ (request->ruby_request.type == RubyRequestType_Locked_Read) ||
+ (request->ruby_request.type == RubyRequestType_Locked_Write));
// POLINA: the assumption is that atomics are only on data cache and not instruction cache
- if (request->ruby_request.type == RubyRequestType_RMW_Read) {
+ if (request->ruby_request.type == RubyRequestType_Locked_Read) {
m_dataCache_ptr->setLocked(address, m_version);
}
SequencerRequest *srequest = new SequencerRequest(request, id, g_eventQueue_ptr->getTime());
bool found = insertRequest(srequest);
if (!found)
- if (request.type == RubyRequestType_RMW_Write) {
+ if (request.type == RubyRequestType_Locked_Write) {
if (!m_dataCache_ptr->isLocked(line_address(Address(request.paddr)), m_version)) {
return -2;
}
case RubyRequestType_ST:
ctype = CacheRequestType_ST;
break;
- case RubyRequestType_RMW_Read:
+ case RubyRequestType_Locked_Read:
ctype = CacheRequestType_ATOMIC;
break;
- case RubyRequestType_RMW_Write:
+ case RubyRequestType_Locked_Write:
ctype = CacheRequestType_ATOMIC;
break;
default: