41 #ifndef __ARCH_MIPS_LOCKED_MEM_HH__
42 #define __ARCH_MIPS_LOCKED_MEM_HH__
54 #include "debug/LLSC.hh"
70 if (locked_addr == snoop_addr)
81 DPRINTF(LLSC,
"[cid:%i]: Load-Link Flag Set & Load-Link"
82 " Address set to %x.\n",
83 req->contextId(), req->getPaddr() & ~0xf);
96 if (req->isUncacheable()) {
105 if (!lock_flag || (req->getPaddr() & ~0xf) != lock_addr) {
108 req->setExtraData(0);
115 int stCondFailures = xc->readStCondFailures();
117 xc->setStCondFailures(stCondFailures);
118 if (stCondFailures % 100000 == 0) {
119 warn(
"%i: context %d: %d consecutive "
120 "store conditional failures\n",
121 curTick(), xc->contextId(), stCondFailures);
125 DPRINTF(LLSC,
"[cid:%i]: Lock Flag Set, "
126 "Store Conditional Failed.\n",
128 }
else if ((req->getPaddr() & ~0xf) != lock_addr) {
129 DPRINTF(LLSC,
"[cid:%i]: Load-Link Address Mismatch, "
130 "Store Conditional Failed.\n",
145 xc->getCpuPtr()->wakeup(xc->threadId());