inst_queue_impl.hh (5336:c7e21f4e5a2e) inst_queue_impl.hh (5529:9ae69b9cd7fd)
1/*
2 * Copyright (c) 2004-2006 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;

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

32#include <limits>
33#include <vector>
34
35#include "cpu/o3/fu_pool.hh"
36#include "cpu/o3/inst_queue.hh"
37#include "enums/OpClass.hh"
38#include "sim/core.hh"
39
1/*
2 * Copyright (c) 2004-2006 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;

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

32#include <limits>
33#include <vector>
34
35#include "cpu/o3/fu_pool.hh"
36#include "cpu/o3/inst_queue.hh"
37#include "enums/OpClass.hh"
38#include "sim/core.hh"
39
40#include "params/DerivO3CPU.hh"
41
40template <class Impl>
41InstructionQueue<Impl>::FUCompletion::FUCompletion(DynInstPtr &_inst,
42 int fu_idx,
43 InstructionQueue<Impl> *iq_ptr)
44 : Event(&mainEventQueue, Stat_Event_Pri),
45 inst(_inst), fuIdx(fu_idx), iqPtr(iq_ptr), freeFU(false)
46{
47 this->setFlags(Event::AutoDelete);

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

60const char *
61InstructionQueue<Impl>::FUCompletion::description() const
62{
63 return "Functional unit completion";
64}
65
66template <class Impl>
67InstructionQueue<Impl>::InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr,
42template <class Impl>
43InstructionQueue<Impl>::FUCompletion::FUCompletion(DynInstPtr &_inst,
44 int fu_idx,
45 InstructionQueue<Impl> *iq_ptr)
46 : Event(&mainEventQueue, Stat_Event_Pri),
47 inst(_inst), fuIdx(fu_idx), iqPtr(iq_ptr), freeFU(false)
48{
49 this->setFlags(Event::AutoDelete);

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

62const char *
63InstructionQueue<Impl>::FUCompletion::description() const
64{
65 return "Functional unit completion";
66}
67
68template <class Impl>
69InstructionQueue<Impl>::InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr,
68 Params *params)
70 DerivO3CPUParams *params)
69 : cpu(cpu_ptr),
70 iewStage(iew_ptr),
71 fuPool(params->fuPool),
72 numEntries(params->numIQEntries),
73 totalWidth(params->issueWidth),
74 numPhysIntRegs(params->numPhysIntRegs),
75 numPhysFloatRegs(params->numPhysFloatRegs),
76 commitToIEWDelay(params->commitToIEWDelay)
77{
78 assert(fuPool);
79
80 switchedOut = false;
81
71 : cpu(cpu_ptr),
72 iewStage(iew_ptr),
73 fuPool(params->fuPool),
74 numEntries(params->numIQEntries),
75 totalWidth(params->issueWidth),
76 numPhysIntRegs(params->numPhysIntRegs),
77 numPhysFloatRegs(params->numPhysFloatRegs),
78 commitToIEWDelay(params->commitToIEWDelay)
79{
80 assert(fuPool);
81
82 switchedOut = false;
83
82 numThreads = params->numberOfThreads;
84 numThreads = params->numThreads;
83
84 // Set the number of physical registers as the number of int + float
85 numPhysRegs = numPhysIntRegs + numPhysFloatRegs;
86
87 //Create an entry for each physical register within the
88 //dependency graph.
89 dependGraph.resize(numPhysRegs);
90

--- 1318 unchanged lines hidden ---
85
86 // Set the number of physical registers as the number of int + float
87 numPhysRegs = numPhysIntRegs + numPhysFloatRegs;
88
89 //Create an entry for each physical register within the
90 //dependency graph.
91 dependGraph.resize(numPhysRegs);
92

--- 1318 unchanged lines hidden ---