cpu.cc (9382:1c97b57d5169) cpu.cc (9384:877293183bdf)
1/*
2 * Copyright (c) 2011-2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 227 unchanged lines hidden (view full) ---

236 params->numThreads),
237
238 scoreboard(params->numThreads,
239 TheISA::NumIntRegs, params->numPhysIntRegs,
240 TheISA::NumFloatRegs, params->numPhysFloatRegs,
241 TheISA::NumMiscRegs * numThreads,
242 TheISA::ZeroReg),
243
1/*
2 * Copyright (c) 2011-2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 227 unchanged lines hidden (view full) ---

236 params->numThreads),
237
238 scoreboard(params->numThreads,
239 TheISA::NumIntRegs, params->numPhysIntRegs,
240 TheISA::NumFloatRegs, params->numPhysFloatRegs,
241 TheISA::NumMiscRegs * numThreads,
242 TheISA::ZeroReg),
243
244 isa(numThreads, NULL),
245
244 icachePort(&fetch, this),
245 dcachePort(&iew.ldstQueue, this),
246
247 timeBuffer(params->backComSize, params->forwardComSize),
248 fetchQueue(params->backComSize, params->forwardComSize),
249 decodeQueue(params->backComSize, params->forwardComSize),
250 renameQueue(params->backComSize, params->forwardComSize),
251 iewQueue(params->backComSize, params->forwardComSize),

--- 83 unchanged lines hidden (view full) ---

335
336 // Setup the rename map for whichever stages need it.
337 PhysRegIndex lreg_idx = 0;
338 PhysRegIndex freg_idx = params->numPhysIntRegs; //Index to 1 after int regs
339
340 for (ThreadID tid = 0; tid < numThreads; tid++) {
341 bool bindRegs = (tid <= active_threads - 1);
342
246 icachePort(&fetch, this),
247 dcachePort(&iew.ldstQueue, this),
248
249 timeBuffer(params->backComSize, params->forwardComSize),
250 fetchQueue(params->backComSize, params->forwardComSize),
251 decodeQueue(params->backComSize, params->forwardComSize),
252 renameQueue(params->backComSize, params->forwardComSize),
253 iewQueue(params->backComSize, params->forwardComSize),

--- 83 unchanged lines hidden (view full) ---

337
338 // Setup the rename map for whichever stages need it.
339 PhysRegIndex lreg_idx = 0;
340 PhysRegIndex freg_idx = params->numPhysIntRegs; //Index to 1 after int regs
341
342 for (ThreadID tid = 0; tid < numThreads; tid++) {
343 bool bindRegs = (tid <= active_threads - 1);
344
345 isa[tid] = params->isa[tid];
346
343 commitRenameMap[tid].init(TheISA::NumIntRegs,
344 params->numPhysIntRegs,
345 lreg_idx, //Index for Logical. Regs
346
347 TheISA::NumFloatRegs,
348 params->numPhysFloatRegs,
349 freg_idx, //Index for Float Regs
350

--- 929 unchanged lines hidden (view full) ---

1280
1281 lastRunningCycle = curCycle();
1282}
1283
1284template <class Impl>
1285TheISA::MiscReg
1286FullO3CPU<Impl>::readMiscRegNoEffect(int misc_reg, ThreadID tid)
1287{
347 commitRenameMap[tid].init(TheISA::NumIntRegs,
348 params->numPhysIntRegs,
349 lreg_idx, //Index for Logical. Regs
350
351 TheISA::NumFloatRegs,
352 params->numPhysFloatRegs,
353 freg_idx, //Index for Float Regs
354

--- 929 unchanged lines hidden (view full) ---

1284
1285 lastRunningCycle = curCycle();
1286}
1287
1288template <class Impl>
1289TheISA::MiscReg
1290FullO3CPU<Impl>::readMiscRegNoEffect(int misc_reg, ThreadID tid)
1291{
1288 return this->isa[tid].readMiscRegNoEffect(misc_reg);
1292 return this->isa[tid]->readMiscRegNoEffect(misc_reg);
1289}
1290
1291template <class Impl>
1292TheISA::MiscReg
1293FullO3CPU<Impl>::readMiscReg(int misc_reg, ThreadID tid)
1294{
1295 miscRegfileReads++;
1293}
1294
1295template <class Impl>
1296TheISA::MiscReg
1297FullO3CPU<Impl>::readMiscReg(int misc_reg, ThreadID tid)
1298{
1299 miscRegfileReads++;
1296 return this->isa[tid].readMiscReg(misc_reg, tcBase(tid));
1300 return this->isa[tid]->readMiscReg(misc_reg, tcBase(tid));
1297}
1298
1299template <class Impl>
1300void
1301FullO3CPU<Impl>::setMiscRegNoEffect(int misc_reg,
1302 const TheISA::MiscReg &val, ThreadID tid)
1303{
1301}
1302
1303template <class Impl>
1304void
1305FullO3CPU<Impl>::setMiscRegNoEffect(int misc_reg,
1306 const TheISA::MiscReg &val, ThreadID tid)
1307{
1304 this->isa[tid].setMiscRegNoEffect(misc_reg, val);
1308 this->isa[tid]->setMiscRegNoEffect(misc_reg, val);
1305}
1306
1307template <class Impl>
1308void
1309FullO3CPU<Impl>::setMiscReg(int misc_reg,
1310 const TheISA::MiscReg &val, ThreadID tid)
1311{
1312 miscRegfileWrites++;
1309}
1310
1311template <class Impl>
1312void
1313FullO3CPU<Impl>::setMiscReg(int misc_reg,
1314 const TheISA::MiscReg &val, ThreadID tid)
1315{
1316 miscRegfileWrites++;
1313 this->isa[tid].setMiscReg(misc_reg, val, tcBase(tid));
1317 this->isa[tid]->setMiscReg(misc_reg, val, tcBase(tid));
1314}
1315
1316template <class Impl>
1317uint64_t
1318FullO3CPU<Impl>::readIntReg(int reg_idx)
1319{
1320 intRegfileReads++;
1321 return regFile.readIntReg(reg_idx);

--- 427 unchanged lines hidden ---
1318}
1319
1320template <class Impl>
1321uint64_t
1322FullO3CPU<Impl>::readIntReg(int reg_idx)
1323{
1324 intRegfileReads++;
1325 return regFile.readIntReg(reg_idx);

--- 427 unchanged lines hidden ---