tlb.cc (5891:73084c6bb183) | tlb.cc (5894:8091ac99341a) |
---|---|
1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 176 unchanged lines hidden (view full) --- 185 if (entry != entryList.end()) { 186 freeList.push_back(*entry); 187 entryList.erase(entry); 188 } 189} 190 191template<class TlbFault> 192Fault | 1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 176 unchanged lines hidden (view full) --- 185 if (entry != entryList.end()) { 186 freeList.push_back(*entry); 187 entryList.erase(entry); 188 } 189} 190 191template<class TlbFault> 192Fault |
193TLB::translateAtomic(RequestPtr &req, ThreadContext *tc, | 193TLB::translateAtomic(RequestPtr req, ThreadContext *tc, |
194 bool write, bool execute) 195{ 196 Addr vaddr = req->getVaddr(); 197 DPRINTF(TLB, "Translating vaddr %#x.\n", vaddr); 198 uint32_t flags = req->getFlags(); 199 bool storeCheck = flags & StoreCheck; 200 201 int seg = flags & mask(4); --- 456 unchanged lines hidden (view full) --- 658 req->setFlags(Request::UNCACHEABLE); 659 req->setPaddr(x86LocalAPICAddress(tc->contextId(), paddr - baseAddr)); 660 } 661#endif 662 return NoFault; 663}; 664 665Fault | 194 bool write, bool execute) 195{ 196 Addr vaddr = req->getVaddr(); 197 DPRINTF(TLB, "Translating vaddr %#x.\n", vaddr); 198 uint32_t flags = req->getFlags(); 199 bool storeCheck = flags & StoreCheck; 200 201 int seg = flags & mask(4); --- 456 unchanged lines hidden (view full) --- 658 req->setFlags(Request::UNCACHEABLE); 659 req->setPaddr(x86LocalAPICAddress(tc->contextId(), paddr - baseAddr)); 660 } 661#endif 662 return NoFault; 663}; 664 665Fault |
666DTB::translateAtomic(RequestPtr &req, ThreadContext *tc, bool write) | 666DTB::translateAtomic(RequestPtr req, ThreadContext *tc, bool write) |
667{ 668 return TLB::translateAtomic<FakeDTLBFault>(req, tc, write, false); 669} 670 | 667{ 668 return TLB::translateAtomic<FakeDTLBFault>(req, tc, write, false); 669} 670 |
671void 672DTB::translateTiming(RequestPtr req, ThreadContext *tc, 673 Translation *translation, bool write) 674{ 675 assert(translation); 676 translation->finish(translateAtomic(req, tc, write), req, tc, write); 677} 678 |
|
671Fault | 679Fault |
672ITB::translateAtomic(RequestPtr &req, ThreadContext *tc) | 680ITB::translateAtomic(RequestPtr req, ThreadContext *tc) |
673{ 674 return TLB::translateAtomic<FakeITLBFault>(req, tc, false, true); 675} 676 | 681{ 682 return TLB::translateAtomic<FakeITLBFault>(req, tc, false, true); 683} 684 |
685void 686ITB::translateTiming(RequestPtr req, ThreadContext *tc, 687 Translation *translation) 688{ 689 assert(translation); 690 translation->finish(translateAtomic(req, tc), req, tc, false); 691} 692 |
|
677#if FULL_SYSTEM 678 679Tick 680DTB::doMmuRegRead(ThreadContext *tc, Packet *pkt) 681{ 682 return tc->getCpuPtr()->ticks(1); 683} 684 --- 43 unchanged lines hidden --- | 693#if FULL_SYSTEM 694 695Tick 696DTB::doMmuRegRead(ThreadContext *tc, Packet *pkt) 697{ 698 return tc->getCpuPtr()->ticks(1); 699} 700 --- 43 unchanged lines hidden --- |