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 --- |