tlb.cc (6691:cd68b6ecd68d) tlb.cc (6972:b6482c4c89e3)
1/*
2 * Copyright (c) 2001-2005 The Regents of The University of Michigan
3 * Copyright (c) 2007 MIPS Technologies, Inc.
4 * Copyright (c) 2007-2008 The Florida State University
5 * Copyright (c) 2009 The University of Edinburgh
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

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

276 ;
277
278 hits = read_hits + write_hits;
279 misses = read_misses + write_misses;
280 accesses = read_accesses + write_accesses;
281}
282
283Fault
1/*
2 * Copyright (c) 2001-2005 The Regents of The University of Michigan
3 * Copyright (c) 2007 MIPS Technologies, Inc.
4 * Copyright (c) 2007-2008 The Florida State University
5 * Copyright (c) 2009 The University of Edinburgh
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

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

276 ;
277
278 hits = read_hits + write_hits;
279 misses = read_misses + write_misses;
280 accesses = read_accesses + write_accesses;
281}
282
283Fault
284TLB::translateAtomic(RequestPtr req, ThreadContext *tc, Mode mode)
284TLB::translateInst(RequestPtr req, ThreadContext *tc)
285{
285{
286#if !FULL_SYSTEM
286 // Instruction accesses must be word-aligned
287 if (req->getVaddr() & 0x3) {
288 DPRINTF(TLB, "Alignment Fault on %#x, size = %d\n", req->getVaddr(),
289 req->getSize());
290 return new AlignmentFault();
291 }
292
293 Process * p = tc->getProcessPtr();
294
295 Fault fault = p->pTable->translate(req);
296 if (fault != NoFault)
297 return fault;
298
299 return NoFault;
300}
301
302Fault
303TLB::translateData(RequestPtr req, ThreadContext *tc, bool write)
304{
287 Process * p = tc->getProcessPtr();
288
289 Fault fault = p->pTable->translate(req);
290 if (fault != NoFault)
291 return fault;
292
293 return NoFault;
305 Process * p = tc->getProcessPtr();
306
307 Fault fault = p->pTable->translate(req);
308 if (fault != NoFault)
309 return fault;
310
311 return NoFault;
312}
313
314Fault
315TLB::translateAtomic(RequestPtr req, ThreadContext *tc, Mode mode)
316{
317#if !FULL_SYSTEM
318 if (mode == Execute)
319 return translateInst(req, tc);
320 else
321 return translateData(req, tc, mode == Write);
294#else
295 fatal("translate atomic not yet implemented\n");
296#endif
297}
298
299void
300TLB::translateTiming(RequestPtr req, ThreadContext *tc,
301 Translation *translation, Mode mode)

--- 21 unchanged lines hidden ---
322#else
323 fatal("translate atomic not yet implemented\n");
324#endif
325}
326
327void
328TLB::translateTiming(RequestPtr req, ThreadContext *tc,
329 Translation *translation, Mode mode)

--- 21 unchanged lines hidden ---