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 --- |