static_inst.hh (4956:fc30658d75de) static_inst.hh (4962:4e939f4629c3)
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 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 if (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 }
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);
607
610
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);
611 return searchCache(mach_inst, addr, recentDecodes[1].decodePage);
612 }
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 ---
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 ---