diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-06-05 01:23:09 -0400 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-06-05 01:23:09 -0400 |
commit | 6df196b71e058b2c827e1027416155ac8ec8cf9f (patch) | |
tree | e2adf25e5628078f8e7c7d89c97130c8962e0ab0 /src/cpu/o3/comm.hh | |
parent | aec7a4411683d8b10684f8f70093bcbbc2de8b55 (diff) | |
download | gem5-6df196b71e058b2c827e1027416155ac8ec8cf9f.tar.xz |
O3: Clean up the O3 structures and try to pack them a bit better.
DynInst is extremely large the hope is that this re-organization will put the
most used members close to each other.
Diffstat (limited to 'src/cpu/o3/comm.hh')
-rw-r--r-- | src/cpu/o3/comm.hh | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/cpu/o3/comm.hh b/src/cpu/o3/comm.hh index 053d4f6be..31d252c73 100644 --- a/src/cpu/o3/comm.hh +++ b/src/cpu/o3/comm.hh @@ -96,15 +96,14 @@ struct DefaultIEWDefaultCommit { int size; DynInstPtr insts[Impl::MaxWidth]; - - bool squash[Impl::MaxThreads]; - bool branchMispredict[Impl::MaxThreads]; DynInstPtr mispredictInst[Impl::MaxThreads]; - bool branchTaken[Impl::MaxThreads]; Addr mispredPC[Impl::MaxThreads]; - TheISA::PCState pc[Impl::MaxThreads]; InstSeqNum squashedSeqNum[Impl::MaxThreads]; + TheISA::PCState pc[Impl::MaxThreads]; + bool squash[Impl::MaxThreads]; + bool branchMispredict[Impl::MaxThreads]; + bool branchTaken[Impl::MaxThreads]; bool includeSquashInst[Impl::MaxThreads]; }; @@ -122,21 +121,17 @@ template<class Impl> struct TimeBufStruct { typedef typename Impl::DynInstPtr DynInstPtr; struct decodeComm { - bool squash; - bool predIncorrect; uint64_t branchAddr; - InstSeqNum doneSeqNum; - - // @todo: Might want to package this kind of branch stuff into a single - // struct as it is used pretty frequently. - bool branchMispredict; DynInstPtr mispredictInst; - bool branchTaken; + DynInstPtr squashInst; Addr mispredPC; TheISA::PCState nextPC; - DynInstPtr squashInst; unsigned branchCount; + bool squash; + bool predIncorrect; + bool branchMispredict; + bool branchTaken; }; decodeComm decodeInfo[Impl::MaxThreads]; |