Deleted Added
sdiff udiff text old ( 12749:223c83ed9979 ) new ( 13012:5fbc6b9c64bc )
full compact
1/*
2 * Copyright (c) 2012-2013, 2015, 2018 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

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

53{
54 public:
55
56 AtomicSimpleCPU(AtomicSimpleCPUParams *params);
57 virtual ~AtomicSimpleCPU();
58
59 void init() override;
60
61 protected:
62
63 EventFunctionWrapper tickEvent;
64
65 const int width;
66 bool locked;
67 const bool simulate_data_stalls;
68 const bool simulate_inst_stalls;
69

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

98
99 /**
100 * Try to complete a drain request.
101 *
102 * @returns true if the CPU is drained, false otherwise.
103 */
104 bool tryCompleteDrain();
105
106 virtual Tick sendPacket(MasterPort &port, const PacketPtr &pkt);
107
108 /**
109 * An AtomicCPUPort overrides the default behaviour of the
110 * recvAtomicSnoop and ignores the packet instead of panicking. It
111 * also provides an implementation for the purely virtual timing
112 * functions and panics on either of these.
113 */
114 class AtomicCPUPort : public MasterPort
115 {

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

134 }
135
136 };
137
138 class AtomicCPUDPort : public AtomicCPUPort
139 {
140
141 public:
142 AtomicCPUDPort(const std::string &_name, BaseSimpleCPU* _cpu)
143 : AtomicCPUPort(_name, _cpu), cpu(_cpu)
144 {
145 cacheBlockMask = ~(cpu->cacheLineSize() - 1);
146 }
147
148 bool isSnooping() const { return true; }
149

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

154 virtual Tick recvAtomicSnoop(PacketPtr pkt);
155 virtual void recvFunctionalSnoop(PacketPtr pkt);
156 };
157
158
159 AtomicCPUPort icachePort;
160 AtomicCPUDPort dcachePort;
161
162
163 RequestPtr ifetch_req;
164 RequestPtr data_read_req;
165 RequestPtr data_write_req;
166
167 bool dcache_access;
168 Tick dcache_latency;
169
170 /** Probe Points. */

--- 45 unchanged lines hidden ---