tlb.cc (5881:73c0aaaaf186) | tlb.cc (5891:73084c6bb183) |
---|---|
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::translate(RequestPtr &req, ThreadContext *tc, bool write, bool execute) | 193TLB::translateAtomic(RequestPtr &req, ThreadContext *tc, 194 bool write, bool execute) |
194{ 195 Addr vaddr = req->getVaddr(); 196 DPRINTF(TLB, "Translating vaddr %#x.\n", vaddr); 197 uint32_t flags = req->getFlags(); 198 bool storeCheck = flags & StoreCheck; 199 200 int seg = flags & mask(4); 201 --- 455 unchanged lines hidden (view full) --- 657 req->setFlags(Request::UNCACHEABLE); 658 req->setPaddr(x86LocalAPICAddress(tc->contextId(), paddr - baseAddr)); 659 } 660#endif 661 return NoFault; 662}; 663 664Fault | 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); 202 --- 455 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 |
665DTB::translate(RequestPtr &req, ThreadContext *tc, bool write) | 666DTB::translateAtomic(RequestPtr &req, ThreadContext *tc, bool write) |
666{ | 667{ |
667 return TLB::translate | 668 return TLB::translateAtomic<FakeDTLBFault>(req, tc, write, false); |
668} 669 670Fault | 669} 670 671Fault |
671ITB::translate(RequestPtr &req, ThreadContext *tc) | 672ITB::translateAtomic(RequestPtr &req, ThreadContext *tc) |
672{ | 673{ |
673 return TLB::translate | 674 return TLB::translateAtomic<FakeITLBFault>(req, tc, false, true); |
674} 675 676#if FULL_SYSTEM 677 678Tick 679DTB::doMmuRegRead(ThreadContext *tc, Packet *pkt) 680{ 681 return tc->getCpuPtr()->ticks(1); --- 45 unchanged lines hidden --- | 675} 676 677#if FULL_SYSTEM 678 679Tick 680DTB::doMmuRegRead(ThreadContext *tc, Packet *pkt) 681{ 682 return tc->getCpuPtr()->ticks(1); --- 45 unchanged lines hidden --- |