timing.hh (12085:de78ea63e0ca) | timing.hh (12749:223c83ed9979) |
---|---|
1/* 2 * Copyright (c) 2012-2013,2015 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 --- 110 unchanged lines hidden (view full) --- 119 void 120 markDelayed() 121 { 122 assert(cpu->_status == BaseSimpleCPU::Running); 123 cpu->_status = ITBWaitResponse; 124 } 125 126 void | 1/* 2 * Copyright (c) 2012-2013,2015 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 --- 110 unchanged lines hidden (view full) --- 119 void 120 markDelayed() 121 { 122 assert(cpu->_status == BaseSimpleCPU::Running); 123 cpu->_status = ITBWaitResponse; 124 } 125 126 void |
127 finish(const Fault &fault, RequestPtr req, ThreadContext *tc, | 127 finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, |
128 BaseTLB::Mode mode) 129 { 130 cpu->sendFetch(fault, req, tc); 131 } 132 }; 133 FetchTranslation fetchTranslation; 134 135 void threadSnoop(PacketPtr pkt, ThreadID sender); | 128 BaseTLB::Mode mode) 129 { 130 cpu->sendFetch(fault, req, tc); 131 } 132 }; 133 FetchTranslation fetchTranslation; 134 135 void threadSnoop(PacketPtr pkt, ThreadID sender); |
136 void sendData(RequestPtr req, uint8_t *data, uint64_t *res, bool read); 137 void sendSplitData(RequestPtr req1, RequestPtr req2, RequestPtr req, | 136 void sendData(const RequestPtr &req, 137 uint8_t *data, uint64_t *res, bool read); 138 void sendSplitData(const RequestPtr &req1, const RequestPtr &req2, 139 const RequestPtr &req, |
138 uint8_t *data, bool read); 139 140 void translationFault(const Fault &fault); 141 | 140 uint8_t *data, bool read); 141 142 void translationFault(const Fault &fault); 143 |
142 PacketPtr buildPacket(RequestPtr req, bool read); | 144 PacketPtr buildPacket(const RequestPtr &req, bool read); |
143 void buildSplitPacket(PacketPtr &pkt1, PacketPtr &pkt2, | 145 void buildSplitPacket(PacketPtr &pkt1, PacketPtr &pkt2, |
144 RequestPtr req1, RequestPtr req2, RequestPtr req, | 146 const RequestPtr &req1, const RequestPtr &req2, 147 const RequestPtr &req, |
145 uint8_t *data, bool read); 146 147 bool handleReadPacket(PacketPtr pkt); 148 // This function always implicitly uses dcache_pkt. 149 bool handleWritePacket(); 150 151 /** 152 * A TimingCPUPort overrides the default behaviour of the --- 131 unchanged lines hidden (view full) --- 284 285 Fault initiateMemRead(Addr addr, unsigned size, 286 Request::Flags flags) override; 287 288 Fault writeMem(uint8_t *data, unsigned size, 289 Addr addr, Request::Flags flags, uint64_t *res) override; 290 291 void fetch(); | 148 uint8_t *data, bool read); 149 150 bool handleReadPacket(PacketPtr pkt); 151 // This function always implicitly uses dcache_pkt. 152 bool handleWritePacket(); 153 154 /** 155 * A TimingCPUPort overrides the default behaviour of the --- 131 unchanged lines hidden (view full) --- 287 288 Fault initiateMemRead(Addr addr, unsigned size, 289 Request::Flags flags) override; 290 291 Fault writeMem(uint8_t *data, unsigned size, 292 Addr addr, Request::Flags flags, uint64_t *res) override; 293 294 void fetch(); |
292 void sendFetch(const Fault &fault, RequestPtr req, ThreadContext *tc); | 295 void sendFetch(const Fault &fault, 296 const RequestPtr &req, ThreadContext *tc); |
293 void completeIfetch(PacketPtr ); 294 void completeDataAccess(PacketPtr pkt); 295 void advanceInst(const Fault &fault); 296 297 /** This function is used by the page table walker to determine if it could 298 * translate the a pending request or if the underlying request has been 299 * squashed. This always returns false for the simple timing CPU as it never 300 * executes any instructions speculatively. --- 61 unchanged lines hidden --- | 297 void completeIfetch(PacketPtr ); 298 void completeDataAccess(PacketPtr pkt); 299 void advanceInst(const Fault &fault); 300 301 /** This function is used by the page table walker to determine if it could 302 * translate the a pending request or if the underlying request has been 303 * squashed. This always returns false for the simple timing CPU as it never 304 * executes any instructions speculatively. --- 61 unchanged lines hidden --- |