cpu.hh (12109:f29e9c5418aa) cpu.hh (12127:4207df055b0d)
1/*
2 * Copyright (c) 2011-2013, 2016 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

194 * As this CPU requires snooping to maintain the load store queue
195 * change the behaviour from the base CPU port.
196 *
197 * @return true since we have to snoop
198 */
199 virtual bool isSnooping() const { return true; }
200 };
201
1/*
2 * Copyright (c) 2011-2013, 2016 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

194 * As this CPU requires snooping to maintain the load store queue
195 * change the behaviour from the base CPU port.
196 *
197 * @return true since we have to snoop
198 */
199 virtual bool isSnooping() const { return true; }
200 };
201
202 class TickEvent : public Event
203 {
204 private:
205 /** Pointer to the CPU. */
206 FullO3CPU<Impl> *cpu;
207
208 public:
209 /** Constructs a tick event. */
210 TickEvent(FullO3CPU<Impl> *c);
211
212 /** Processes a tick event, calling tick() on the CPU. */
213 void process();
214 /** Returns the description of the tick event. */
215 const char *description() const;
216 };
217
218 /** The tick event used for scheduling CPU ticks. */
202 /** The tick event used for scheduling CPU ticks. */
219 TickEvent tickEvent;
203 EventFunctionWrapper tickEvent;
220
221 /** Schedule tick event, regardless of its current state. */
222 void scheduleTickEvent(Cycles delay)
223 {
224 if (tickEvent.squashed())
225 reschedule(tickEvent, clockEdge(delay));
226 else if (!tickEvent.scheduled())
227 schedule(tickEvent, clockEdge(delay));

--- 593 unchanged lines hidden ---
204
205 /** Schedule tick event, regardless of its current state. */
206 void scheduleTickEvent(Cycles delay)
207 {
208 if (tickEvent.squashed())
209 reschedule(tickEvent, clockEdge(delay));
210 else if (!tickEvent.scheduled())
211 schedule(tickEvent, clockEdge(delay));

--- 593 unchanged lines hidden ---