dyn_inst_impl.hh (9382:1c97b57d5169) dyn_inst_impl.hh (9527:68154bc0e0ea)
1/*
2 * Copyright (c) 2010-2011 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

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

61 : BaseDynInst<Impl>(_staticInst, _macroop)
62{
63 initVars();
64}
65
66template <class Impl>BaseO3DynInst<Impl>::~BaseO3DynInst()
67{
68#if TRACING_ON
1/*
2 * Copyright (c) 2010-2011 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

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

61 : BaseDynInst<Impl>(_staticInst, _macroop)
62{
63 initVars();
64}
65
66template <class Impl>BaseO3DynInst<Impl>::~BaseO3DynInst()
67{
68#if TRACING_ON
69 Tick val, fetch = this->fetchTick;
70 // Print info needed by the pipeline activity viewer.
71 DPRINTFR(O3PipeView, "O3PipeView:fetch:%llu:0x%08llx:%d:%llu:%s\n",
72 fetch,
73 this->instAddr(),
74 this->microPC(),
75 this->seqNum,
76 this->staticInst->disassemble(this->instAddr()));
77 val = (this->decodeTick == -1) ? 0 : fetch + this->decodeTick;
78 DPRINTFR(O3PipeView, "O3PipeView:decode:%llu\n", val);
79 val = (this->renameTick == -1) ? 0 : fetch + this->renameTick;
80 DPRINTFR(O3PipeView, "O3PipeView:rename:%llu\n", val);
81 val = (this->dispatchTick == -1) ? 0 : fetch + this->dispatchTick;
82 DPRINTFR(O3PipeView, "O3PipeView:dispatch:%llu\n", val);
83 val = (this->issueTick == -1) ? 0 : fetch + this->issueTick;
84 DPRINTFR(O3PipeView, "O3PipeView:issue:%llu\n", val);
85 val = (this->completeTick == -1) ? 0 : fetch + this->completeTick;
86 DPRINTFR(O3PipeView, "O3PipeView:complete:%llu\n", val);
87 val = (this->commitTick == -1) ? 0 : fetch + this->commitTick;
88 DPRINTFR(O3PipeView, "O3PipeView:retire:%llu\n", val);
69 if (DTRACE(O3PipeView)) {
70 Tick fetch = this->fetchTick;
71 // fetchTick can be -1 if the instruction fetched outside the trace window.
72 if (fetch != -1) {
73 Tick val;
74 // Print info needed by the pipeline activity viewer.
75 DPRINTFR(O3PipeView, "O3PipeView:fetch:%llu:0x%08llx:%d:%llu:%s\n",
76 fetch,
77 this->instAddr(),
78 this->microPC(),
79 this->seqNum,
80 this->staticInst->disassemble(this->instAddr()));
81
82 val = (this->decodeTick == -1) ? 0 : fetch + this->decodeTick;
83 DPRINTFR(O3PipeView, "O3PipeView:decode:%llu\n", val);
84 val = (this->renameTick == -1) ? 0 : fetch + this->renameTick;
85 DPRINTFR(O3PipeView, "O3PipeView:rename:%llu\n", val);
86 val = (this->dispatchTick == -1) ? 0 : fetch + this->dispatchTick;
87 DPRINTFR(O3PipeView, "O3PipeView:dispatch:%llu\n", val);
88 val = (this->issueTick == -1) ? 0 : fetch + this->issueTick;
89 DPRINTFR(O3PipeView, "O3PipeView:issue:%llu\n", val);
90 val = (this->completeTick == -1) ? 0 : fetch + this->completeTick;
91 DPRINTFR(O3PipeView, "O3PipeView:complete:%llu\n", val);
92 val = (this->commitTick == -1) ? 0 : fetch + this->commitTick;
93
94 Tick valS = (this->storeTick == -1) ? 0 : fetch + this->storeTick;
95 DPRINTFR(O3PipeView, "O3PipeView:retire:%llu:store:%llu\n", val, valS);
96 }
97 }
89#endif
90};
91
92
93template <class Impl>
94void
95BaseO3DynInst<Impl>::initVars()
96{

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

114 // hasn't happened (yet).
115 fetchTick = -1;
116 decodeTick = -1;
117 renameTick = -1;
118 dispatchTick = -1;
119 issueTick = -1;
120 completeTick = -1;
121 commitTick = -1;
98#endif
99};
100
101
102template <class Impl>
103void
104BaseO3DynInst<Impl>::initVars()
105{

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

123 // hasn't happened (yet).
124 fetchTick = -1;
125 decodeTick = -1;
126 renameTick = -1;
127 dispatchTick = -1;
128 issueTick = -1;
129 completeTick = -1;
130 commitTick = -1;
131 storeTick = -1;
122#endif
123}
124
125template <class Impl>
126Fault
127BaseO3DynInst<Impl>::execute()
128{
129 // @todo: Pretty convoluted way to avoid squashing from happening

--- 118 unchanged lines hidden ---
132#endif
133}
134
135template <class Impl>
136Fault
137BaseO3DynInst<Impl>::execute()
138{
139 // @todo: Pretty convoluted way to avoid squashing from happening

--- 118 unchanged lines hidden ---