Deleted Added
sdiff udiff text old ( 4052:895ad21ffbf3 ) new ( 5890:bdef71accd68 )
full compact
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;

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

154CheckerCPU::read(Addr addr, T &data, unsigned flags)
155{
156 // need to fill in CPU & thread IDs here
157 memReq = new Request();
158
159 memReq->setVirt(0, addr, sizeof(T), flags, thread->readPC());
160
161 // translate to physical address
162 dtb->translate(memReq, tc, false);
163
164 PacketPtr pkt = new Packet(memReq, Packet::ReadReq, Packet::Broadcast);
165
166 pkt->dataStatic(&data);
167
168 if (!(memReq->isUncacheable())) {
169 // Access memory to see if we have the same data
170 dcachePort->sendFunctional(pkt);

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

224CheckerCPU::write(T data, Addr addr, unsigned flags, uint64_t *res)
225{
226 // need to fill in CPU & thread IDs here
227 memReq = new Request();
228
229 memReq->setVirt(0, addr, sizeof(T), flags, thread->readPC());
230
231 // translate to physical address
232 dtb->translate(memReq, tc, true);
233
234 // Can compare the write data and result only if it's cacheable,
235 // not a store conditional, or is a store conditional that
236 // succeeded.
237 // @todo: Verify that actual memory matches up with these values.
238 // Right now it only verifies that the instruction data is the
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.

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

320Addr
321CheckerCPU::dbg_vtophys(Addr addr)
322{
323 return vtophys(tc, addr);
324}
325#endif // FULL_SYSTEM
326
327bool
328CheckerCPU::checkFlags(Request *req)
329{
330 // Remove any dynamic flags that don't have to do with the request itself.
331 unsigned flags = unverifiedReq->getFlags();
332 unsigned mask = LOCKED | PHYSICAL | VPTE | ALTMODE | UNCACHEABLE | NO_FAULT;
333 flags = flags & (mask);
334 if (flags == req->getFlags()) {
335 return false;

--- 12 unchanged lines hidden ---