static_inst.cc (4572:5499df089a6c) | static_inst.cc (5870:5645632d594c) |
---|---|
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; --- 26 unchanged lines hidden (view full) --- 35 36StaticInstPtr StaticInst::nullStaticInstPtr; 37 38// Define the decode cache hash map. 39StaticInst::DecodeCache StaticInst::decodeCache; 40StaticInst::AddrDecodeCache StaticInst::addrDecodeCache; 41StaticInst::cacheElement StaticInst::recentDecodes[2]; 42 | 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; --- 26 unchanged lines hidden (view full) --- 35 36StaticInstPtr StaticInst::nullStaticInstPtr; 37 38// Define the decode cache hash map. 39StaticInst::DecodeCache StaticInst::decodeCache; 40StaticInst::AddrDecodeCache StaticInst::addrDecodeCache; 41StaticInst::cacheElement StaticInst::recentDecodes[2]; 42 |
43using namespace std; 44 45StaticInst::~StaticInst() 46{ 47 if (cachedDisassembly) 48 delete cachedDisassembly; 49} 50 |
|
43void 44StaticInst::dumpDecodeCacheStats() 45{ | 51void 52StaticInst::dumpDecodeCacheStats() 53{ |
46 using namespace std; 47 | |
48 cerr << "Decode hash table stats @ " << curTick << ":" << endl; 49 cerr << "\tnum entries = " << decodeCache.size() << endl; 50 cerr << "\tnum buckets = " << decodeCache.bucket_count() << endl; 51 vector<int> hist(100, 0); 52 int max_hist = 0; 53 for (int i = 0; i < decodeCache.bucket_count(); ++i) { 54 int count = decodeCache.elems_in_bucket(i); 55 if (count > max_hist) --- 20 unchanged lines hidden (view full) --- 76 77 return false; 78} 79 80StaticInstPtr 81StaticInst::fetchMicroop(MicroPC micropc) 82{ 83 panic("StaticInst::fetchMicroop() called on instruction " | 54 cerr << "Decode hash table stats @ " << curTick << ":" << endl; 55 cerr << "\tnum entries = " << decodeCache.size() << endl; 56 cerr << "\tnum buckets = " << decodeCache.bucket_count() << endl; 57 vector<int> hist(100, 0); 58 int max_hist = 0; 59 for (int i = 0; i < decodeCache.bucket_count(); ++i) { 60 int count = decodeCache.elems_in_bucket(i); 61 if (count > max_hist) --- 20 unchanged lines hidden (view full) --- 82 83 return false; 84} 85 86StaticInstPtr 87StaticInst::fetchMicroop(MicroPC micropc) 88{ 89 panic("StaticInst::fetchMicroop() called on instruction " |
84 "that is not microcoded."); | 90 "that is not microcoded."); |
85} 86 | 91} 92 |
93Addr 94StaticInst::branchTarget(Addr branchPC) const 95{ 96 panic("StaticInst::branchTarget() called on instruction " 97 "that is not a PC-relative branch."); 98 M5_DUMMY_RETURN; 99} 100 101Addr 102StaticInst::branchTarget(ThreadContext *tc) const 103{ 104 panic("StaticInst::branchTarget() called on instruction " 105 "that is not an indirect branch."); 106 M5_DUMMY_RETURN; 107} 108 109Request::Flags 110StaticInst::memAccFlags() 111{ 112 panic("StaticInst::memAccFlags called on non-memory instruction"); 113 return 0; 114} 115 116const string & 117StaticInst::disassemble(Addr pc, const SymbolTable *symtab) const 118{ 119 if (!cachedDisassembly) 120 cachedDisassembly = new string(generateDisassembly(pc, symtab)); 121 122 return *cachedDisassembly; 123} |
|