tlb.cc (10474:799c8ee4ecba) tlb.cc (10823:64cd1dcd61a5)
1/*
2 * Copyright (c) 2001-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;

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

461 req->getSize());
462 uint64_t flags = write ? MM_STAT_WR_MASK : 0;
463 return std::make_shared<DtbAlignmentFault>(req->getVaddr(),
464 req->getFlags(),
465 flags);
466 }
467
468 if (PcPAL(req->getPC())) {
1/*
2 * Copyright (c) 2001-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;

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

461 req->getSize());
462 uint64_t flags = write ? MM_STAT_WR_MASK : 0;
463 return std::make_shared<DtbAlignmentFault>(req->getVaddr(),
464 req->getFlags(),
465 flags);
466 }
467
468 if (PcPAL(req->getPC())) {
469 mode = (req->getFlags() & Request::ALTMODE) ?
469 mode = (req->getFlags() & AlphaRequestFlags::ALTMODE) ?
470 (mode_type)ALT_MODE_AM(
471 tc->readMiscRegNoEffect(IPR_ALT_MODE))
472 : mode_kernel;
473 }
474
475 if (req->getFlags() & Request::PHYSICAL) {
476 req->setPaddr(req->getVaddr());
477 } else {

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

518 // not a physical address: need to look up pte
519 TlbEntry *entry = lookup(VAddr(req->getVaddr()).vpn(), asn);
520
521 if (!entry) {
522 // page fault
523 if (write) { write_misses++; } else { read_misses++; }
524 uint64_t flags = (write ? MM_STAT_WR_MASK : 0) |
525 MM_STAT_DTB_MISS_MASK;
470 (mode_type)ALT_MODE_AM(
471 tc->readMiscRegNoEffect(IPR_ALT_MODE))
472 : mode_kernel;
473 }
474
475 if (req->getFlags() & Request::PHYSICAL) {
476 req->setPaddr(req->getVaddr());
477 } else {

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

518 // not a physical address: need to look up pte
519 TlbEntry *entry = lookup(VAddr(req->getVaddr()).vpn(), asn);
520
521 if (!entry) {
522 // page fault
523 if (write) { write_misses++; } else { read_misses++; }
524 uint64_t flags = (write ? MM_STAT_WR_MASK : 0) |
525 MM_STAT_DTB_MISS_MASK;
526 return (req->getFlags() & Request::VPTE) ?
526 return (req->getFlags() & AlphaRequestFlags::VPTE) ?
527 (Fault)(std::make_shared<PDtbMissFault>(req->getVaddr(),
528 req->getFlags(),
529 flags)) :
530 (Fault)(std::make_shared<NDtbMissFault>(req->getVaddr(),
531 req->getFlags(),
532 flags));
533 }
534

--- 102 unchanged lines hidden ---
527 (Fault)(std::make_shared<PDtbMissFault>(req->getVaddr(),
528 req->getFlags(),
529 flags)) :
530 (Fault)(std::make_shared<NDtbMissFault>(req->getVaddr(),
531 req->getFlags(),
532 flags));
533 }
534

--- 102 unchanged lines hidden ---