mem_dep_unit_impl.hh (8519:ef35ce2bd73f) mem_dep_unit_impl.hh (9444:ab47fe7f03f0)
1/*
1/*
2 * Copyright (c) 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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
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;
9 * redistributions in binary form must reproduce the above copyright

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

109
110 conflictingStores
111 .name(name() + ".conflictingStores")
112 .desc("Number of conflicting stores.");
113}
114
115template <class MemDepPred, class Impl>
116void
14 * Copyright (c) 2004-2006 The Regents of The University of Michigan
15 * All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions are
19 * met: redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer;
21 * redistributions in binary form must reproduce the above copyright

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

121
122 conflictingStores
123 .name(name() + ".conflictingStores")
124 .desc("Number of conflicting stores.");
125}
126
127template <class MemDepPred, class Impl>
128void
117MemDepUnit<MemDepPred, Impl>::switchOut()
129MemDepUnit<MemDepPred, Impl>::drainSanityCheck() const
118{
130{
119 assert(instList[0].empty());
120 assert(instsToReplay.empty());
121 assert(memDepHash.empty());
131 assert(instsToReplay.empty());
132 assert(memDepHash.empty());
122 // Clear any state.
123 for (int i = 0; i < Impl::MaxThreads; ++i) {
124 instList[i].clear();
125 }
126 instsToReplay.clear();
127 memDepHash.clear();
133 for (int i = 0; i < Impl::MaxThreads; ++i)
134 assert(instList[i].empty());
135 assert(instsToReplay.empty());
136 assert(memDepHash.empty());
128}
129
130template <class MemDepPred, class Impl>
131void
132MemDepUnit<MemDepPred, Impl>::takeOverFrom()
133{
134 // Be sure to reset all state.
135 loadBarrier = storeBarrier = false;

--- 452 unchanged lines hidden ---
137}
138
139template <class MemDepPred, class Impl>
140void
141MemDepUnit<MemDepPred, Impl>::takeOverFrom()
142{
143 // Be sure to reset all state.
144 loadBarrier = storeBarrier = false;

--- 452 unchanged lines hidden ---