cpu.cc (3565:6ad587fb7dfd) cpu.cc (4052:895ad21ffbf3)
1/*
2 * Copyright (c) 2006 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;

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

239 // same as what was in the request that got sent to memory; there
240 // is no verification that it is the same as what is in memory.
241 // This is because the LSQ would have to be snooped in the CPU to
242 // verify this data.
243 if (unverifiedReq &&
244 !(unverifiedReq->isUncacheable()) &&
245 (!(unverifiedReq->isLocked()) ||
246 ((unverifiedReq->isLocked()) &&
1/*
2 * Copyright (c) 2006 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;

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

239 // same as what was in the request that got sent to memory; there
240 // is no verification that it is the same as what is in memory.
241 // This is because the LSQ would have to be snooped in the CPU to
242 // verify this data.
243 if (unverifiedReq &&
244 !(unverifiedReq->isUncacheable()) &&
245 (!(unverifiedReq->isLocked()) ||
246 ((unverifiedReq->isLocked()) &&
247 unverifiedReq->getScResult() == 1))) {
247 unverifiedReq->getExtraData() == 1))) {
248 T inst_data;
249/*
250 // This code would work if the LSQ allowed for snooping.
251 PacketPtr pkt = new Packet(memReq, Packet::ReadReq, Packet::Broadcast);
252 pkt.dataStatic(&inst_data);
253
254 dcachePort->sendFunctional(pkt);
255

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

264 handleError();
265 }
266 }
267
268 // Assume the result was the same as the one passed in. This checker
269 // doesn't check if the SC should succeed or fail, it just checks the
270 // value.
271 if (res && unverifiedReq->scResultValid())
248 T inst_data;
249/*
250 // This code would work if the LSQ allowed for snooping.
251 PacketPtr pkt = new Packet(memReq, Packet::ReadReq, Packet::Broadcast);
252 pkt.dataStatic(&inst_data);
253
254 dcachePort->sendFunctional(pkt);
255

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

264 handleError();
265 }
266 }
267
268 // Assume the result was the same as the one passed in. This checker
269 // doesn't check if the SC should succeed or fail, it just checks the
270 // value.
271 if (res && unverifiedReq->scResultValid())
272 *res = unverifiedReq->getScResult();
272 *res = unverifiedReq->getExtraData();
273
274 return NoFault;
275}
276
277
278#ifndef DOXYGEN_SHOULD_SKIP_THIS
279template
280Fault

--- 118 unchanged lines hidden ---
273
274 return NoFault;
275}
276
277
278#ifndef DOXYGEN_SHOULD_SKIP_THIS
279template
280Fault

--- 118 unchanged lines hidden ---