atomic.cc (4040:eb894f3fc168) atomic.cc (4050:cf1daaef9109)
1/*
2 * Copyright (c) 2002-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;

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

416 panic("Unable to find responder for address pa = %#X va = %#X\n",
417 pkt->req->getPaddr(), pkt->req->getVaddr());
418#endif
419 }
420
421 if (req->isSwap()) {
422 assert(res);
423 *res = pkt->get<T>();
1/*
2 * Copyright (c) 2002-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;

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

416 panic("Unable to find responder for address pa = %#X va = %#X\n",
417 pkt->req->getPaddr(), pkt->req->getVaddr());
418#endif
419 }
420
421 if (req->isSwap()) {
422 assert(res);
423 *res = pkt->get<T>();
424 } else if (res) {
425 *res = req->getScResult();
424 }
426 }
425
426 if (req->isLocked()) {
427 uint64_t scResult = req->getExtraData();
428 if (scResult != 0) {
429 // clear failure counter
430 thread->setStCondFailures(0);
431 }
432 if (res) {
433 *res = req->getExtraData();
434 }
435 }
436 }
437
438 // This will need a new way to tell if it's hooked up to a cache or not.
439 if (req->isUncacheable())
440 recordEvent("Uncached Write");
441
442 // If the write needs to have a fault on the access, consider calling
443 // changeStatus() and changing it to "bad addr write" or something.

--- 212 unchanged lines hidden ---
427 }
428
429 // This will need a new way to tell if it's hooked up to a cache or not.
430 if (req->isUncacheable())
431 recordEvent("Uncached Write");
432
433 // If the write needs to have a fault on the access, consider calling
434 // changeStatus() and changing it to "bad addr write" or something.

--- 212 unchanged lines hidden ---