31,32c31,32
< #ifndef __CPU_O3_CPU_STORE_SET_HH__
< #define __CPU_O3_CPU_STORE_SET_HH__
---
> #ifndef __CPU_O3_STORE_SET_HH__
> #define __CPU_O3_STORE_SET_HH__
33a34,36
> #include <list>
> #include <map>
> #include <utility>
38a42,48
> struct ltseqnum {
> bool operator()(const InstSeqNum &lhs, const InstSeqNum &rhs) const
> {
> return lhs > rhs;
> }
> };
>
44a55,56
> StoreSet() { };
>
46a59,62
> ~StoreSet();
>
> void init(int SSIT_size, int LFST_size);
>
51c67,68
< void insertStore(Addr store_PC, InstSeqNum store_seq_num);
---
> void insertStore(Addr store_PC, InstSeqNum store_seq_num,
> unsigned tid);
57c74
< void squash(InstSeqNum squashed_num);
---
> void squash(InstSeqNum squashed_num, unsigned tid);
63c80
< { return (PC >> offset_bits) & index_mask; }
---
> { return (PC >> offsetBits) & indexMask; }
66c83
< { return ((PC ^ (PC >> 10)) % LFST_size); }
---
> { return ((PC ^ (PC >> 10)) % LFSTSize); }
68c85
< SSID *SSIT;
---
> std::vector<SSID> SSIT;
72c89
< InstSeqNum *LFST;
---
> std::vector<InstSeqNum> LFST;
76c93
< int *SSCounters;
---
> std::map<InstSeqNum, int, ltseqnum> storeList;
78c95
< int SSIT_size;
---
> typedef std::map<InstSeqNum, int, ltseqnum>::iterator SeqNumMapIt;
80c97
< int LFST_size;
---
> int SSITSize;
82c99
< int index_mask;
---
> int LFSTSize;
83a101,102
> int indexMask;
>
85c104
< int offset_bits;
---
> int offsetBits;
88c107
< #endif // __CPU_O3_CPU_STORE_SET_HH__
---
> #endif // __CPU_O3_STORE_SET_HH__