fetch_impl.hh (13429:a1e199fd8122) | fetch_impl.hh (13453:4a7a060ea26e) |
---|---|
1/* 2 * Copyright (c) 2010-2014 ARM Limited 3 * Copyright (c) 2012-2013 AMD 4 * All rights reserved. 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 66 unchanged lines hidden (view full) --- 75#include "sim/system.hh" 76#include "cpu/o3/isa_specific.hh" 77 78using namespace std; 79 80template<class Impl> 81DefaultFetch<Impl>::DefaultFetch(O3CPU *_cpu, DerivO3CPUParams *params) 82 : cpu(_cpu), | 1/* 2 * Copyright (c) 2010-2014 ARM Limited 3 * Copyright (c) 2012-2013 AMD 4 * All rights reserved. 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 66 unchanged lines hidden (view full) --- 75#include "sim/system.hh" 76#include "cpu/o3/isa_specific.hh" 77 78using namespace std; 79 80template<class Impl> 81DefaultFetch<Impl>::DefaultFetch(O3CPU *_cpu, DerivO3CPUParams *params) 82 : cpu(_cpu), |
83 branchPred(nullptr), |
|
83 decodeToFetchDelay(params->decodeToFetchDelay), 84 renameToFetchDelay(params->renameToFetchDelay), 85 iewToFetchDelay(params->iewToFetchDelay), 86 commitToFetchDelay(params->commitToFetchDelay), 87 fetchWidth(params->fetchWidth), 88 decodeWidth(params->decodeWidth), 89 retryPkt(NULL), 90 retryTid(InvalidThreadID), --- 47 unchanged lines hidden (view full) --- 138 fatal("Invalid Fetch Policy. Options Are: {SingleThread," 139 " RoundRobin,LSQcount,IQcount}\n"); 140 } 141 142 // Get the size of an instruction. 143 instSize = sizeof(TheISA::MachInst); 144 145 for (int i = 0; i < Impl::MaxThreads; i++) { | 84 decodeToFetchDelay(params->decodeToFetchDelay), 85 renameToFetchDelay(params->renameToFetchDelay), 86 iewToFetchDelay(params->iewToFetchDelay), 87 commitToFetchDelay(params->commitToFetchDelay), 88 fetchWidth(params->fetchWidth), 89 decodeWidth(params->decodeWidth), 90 retryPkt(NULL), 91 retryTid(InvalidThreadID), --- 47 unchanged lines hidden (view full) --- 139 fatal("Invalid Fetch Policy. Options Are: {SingleThread," 140 " RoundRobin,LSQcount,IQcount}\n"); 141 } 142 143 // Get the size of an instruction. 144 instSize = sizeof(TheISA::MachInst); 145 146 for (int i = 0; i < Impl::MaxThreads; i++) { |
146 decoder[i] = NULL; | 147 fetchStatus[i] = Idle; 148 decoder[i] = nullptr; 149 pc[i] = 0; 150 fetchOffset[i] = 0; 151 macroop[i] = nullptr; 152 delayedCommit[i] = false; 153 memReq[i] = nullptr; 154 stalls[i] = {false, false}; |
147 fetchBuffer[i] = NULL; 148 fetchBufferPC[i] = 0; 149 fetchBufferValid[i] = false; | 155 fetchBuffer[i] = NULL; 156 fetchBufferPC[i] = 0; 157 fetchBufferValid[i] = false; |
158 lastIcacheStall[i] = 0; 159 issuePipelinedIfetch[i] = false; |
|
150 } 151 152 branchPred = params->branchPred; 153 154 for (ThreadID tid = 0; tid < numThreads; tid++) { 155 decoder[tid] = new TheISA::Decoder(params->isa[tid]); 156 // Create space to buffer the cache line data, 157 // which may not hold the entire cache line. --- 1519 unchanged lines hidden --- | 160 } 161 162 branchPred = params->branchPred; 163 164 for (ThreadID tid = 0; tid < numThreads; tid++) { 165 decoder[tid] = new TheISA::Decoder(params->isa[tid]); 166 // Create space to buffer the cache line data, 167 // which may not hold the entire cache line. --- 1519 unchanged lines hidden --- |