physical.hh (5714:76abee886def) | physical.hh (6076:e141cc7896ce) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 115 unchanged lines hidden (view full) --- 124 // conditional store and the address was no longer locked by the 125 // requesting execution context), 'true' otherwise. Note that 126 // this method must be called on *all* stores since even 127 // non-conditional stores must clear any matching lock addresses. 128 bool writeOK(PacketPtr pkt) { 129 Request *req = pkt->req; 130 if (lockedAddrList.empty()) { 131 // no locked addrs: nothing to check, store_conditional fails | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 115 unchanged lines hidden (view full) --- 124 // conditional store and the address was no longer locked by the 125 // requesting execution context), 'true' otherwise. Note that 126 // this method must be called on *all* stores since even 127 // non-conditional stores must clear any matching lock addresses. 128 bool writeOK(PacketPtr pkt) { 129 Request *req = pkt->req; 130 if (lockedAddrList.empty()) { 131 // no locked addrs: nothing to check, store_conditional fails |
132 bool isLocked = pkt->isLocked(); 133 if (isLocked) { | 132 bool isLlsc = pkt->isLlsc(); 133 if (isLlsc) { |
134 req->setExtraData(0); 135 } | 134 req->setExtraData(0); 135 } |
136 return !isLocked; // only do write if not an sc | 136 return !isLlsc; // only do write if not an sc |
137 } else { 138 // iterate over list... 139 return checkLockedAddrList(pkt); 140 } 141 } 142 143 uint8_t *pmemAddr; 144 int pagePtr; --- 43 unchanged lines hidden --- | 137 } else { 138 // iterate over list... 139 return checkLockedAddrList(pkt); 140 } 141 } 142 143 uint8_t *pmemAddr; 144 int pagePtr; --- 43 unchanged lines hidden --- |