1/* 2 * Copyright (c) 2003-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; --- 583 unchanged lines hidden (view full) --- 592 dumpDecodeCacheStats(); 593 decodes_til_dump = dump_every_n; 594 } 595#endif 596 597 Addr page_addr = addr & ~(TheISA::PageBytes - 1); 598 599 // checks recently decoded addresses |
600 if (recentDecodes[0].decodePage) { 601 if (page_addr == recentDecodes[0].page_addr) { 602 if (recentDecodes[0].decodePage->decoded(mach_inst, addr)) 603 return recentDecodes[0].decodePage->getInst(addr); |
604 |
605 return searchCache(mach_inst, addr, recentDecodes[0].decodePage); 606 } else if (recentDecodes[1].decodePage && 607 page_addr == recentDecodes[1].page_addr) { 608 if (recentDecodes[1].decodePage->decoded(mach_inst, addr)) 609 return recentDecodes[1].decodePage->getInst(addr); |
610 |
611 return searchCache(mach_inst, addr, recentDecodes[1].decodePage); 612 } |
613 } 614 615 // searches the page containing the address to decode 616 AddrDecodeCache::iterator iter = addrDecodeCache.find(page_addr); 617 if (iter != addrDecodeCache.end()) { 618 updateCache(page_addr, iter->second); 619 if (iter->second->decoded(mach_inst, addr)) 620 return iter->second->getInst(addr); --- 28 unchanged lines hidden --- |