static_inst.hh (4962:4e939f4629c3) | static_inst.hh (4963:ba55203d1bdc) |
---|---|
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 | 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); | 600 if (recentDecodes[0].decodePage && 601 page_addr == recentDecodes[0].page_addr) { 602 if (recentDecodes[0].decodePage->decoded(mach_inst, addr)) 603 return recentDecodes[0].decodePage->getInst(addr); |
604 | 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); | 605 return searchCache(mach_inst, addr, recentDecodes[0].decodePage); 606 } |
610 | 607 |
611 return searchCache(mach_inst, addr, recentDecodes[1].decodePage); 612 } | 608 if (recentDecodes[1].decodePage && 609 page_addr == recentDecodes[1].page_addr) { 610 if (recentDecodes[1].decodePage->decoded(mach_inst, addr)) 611 return recentDecodes[1].decodePage->getInst(addr); 612 613 return searchCache(mach_inst, addr, recentDecodes[1].decodePage); |
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 --- | 614 } 615 616 // searches the page containing the address to decode 617 AddrDecodeCache::iterator iter = addrDecodeCache.find(page_addr); 618 if (iter != addrDecodeCache.end()) { 619 updateCache(page_addr, iter->second); 620 if (iter->second->decoded(mach_inst, addr)) 621 return iter->second->getInst(addr); --- 28 unchanged lines hidden --- |