base_dyn_inst.hh (8850:ed91b534ed04) | base_dyn_inst.hh (8887:20ea02da9c53) |
---|---|
1/* 2 * Copyright (c) 2011 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 --- 40 unchanged lines hidden (view full) --- 49#include <list> 50#include <string> 51#include <queue> 52 53#include "arch/utility.hh" 54#include "base/fast_alloc.hh" 55#include "base/trace.hh" 56#include "config/the_isa.hh" | 1/* 2 * Copyright (c) 2011 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 --- 40 unchanged lines hidden (view full) --- 49#include <list> 50#include <string> 51#include <queue> 52 53#include "arch/utility.hh" 54#include "base/fast_alloc.hh" 55#include "base/trace.hh" 56#include "config/the_isa.hh" |
57#include "config/use_checker.hh" | 57#include "cpu/checker/cpu.hh" |
58#include "cpu/o3/comm.hh" 59#include "cpu/exetrace.hh" 60#include "cpu/inst_seq.hh" 61#include "cpu/op_class.hh" 62#include "cpu/static_inst.hh" 63#include "cpu/translation.hh" 64#include "mem/packet.hh" 65#include "sim/byteswap.hh" --- 106 unchanged lines hidden (view full) --- 172 /** 173 * Saved memory requests (needed when the DTB address translation is 174 * delayed due to a hw page table walk). 175 */ 176 RequestPtr savedReq; 177 RequestPtr savedSreqLow; 178 RequestPtr savedSreqHigh; 179 | 58#include "cpu/o3/comm.hh" 59#include "cpu/exetrace.hh" 60#include "cpu/inst_seq.hh" 61#include "cpu/op_class.hh" 62#include "cpu/static_inst.hh" 63#include "cpu/translation.hh" 64#include "mem/packet.hh" 65#include "sim/byteswap.hh" --- 106 unchanged lines hidden (view full) --- 172 /** 173 * Saved memory requests (needed when the DTB address translation is 174 * delayed due to a hw page table walk). 175 */ 176 RequestPtr savedReq; 177 RequestPtr savedSreqLow; 178 RequestPtr savedSreqHigh; 179 |
180#if USE_CHECKER | |
181 // Need a copy of main request pointer to verify on writes. 182 RequestPtr reqToVerify; | 180 // Need a copy of main request pointer to verify on writes. 181 RequestPtr reqToVerify; |
183#endif //USE_CHECKER | |
184 185 /** @todo: Consider making this private. */ 186 public: 187 /** The sequence number of the instruction. */ 188 InstSeqNum seqNum; 189 190 enum Status { 191 IqEntry, /// Instruction is in the IQ --- 699 unchanged lines hidden (view full) --- 891 initiateTranslation(req, sreqLow, sreqHigh, NULL, BaseTLB::Read); 892 } 893 894 if (translationCompleted) { 895 if (fault == NoFault) { 896 effAddr = req->getVaddr(); 897 effSize = size; 898 effAddrValid = true; | 182 183 /** @todo: Consider making this private. */ 184 public: 185 /** The sequence number of the instruction. */ 186 InstSeqNum seqNum; 187 188 enum Status { 189 IqEntry, /// Instruction is in the IQ --- 699 unchanged lines hidden (view full) --- 889 initiateTranslation(req, sreqLow, sreqHigh, NULL, BaseTLB::Read); 890 } 891 892 if (translationCompleted) { 893 if (fault == NoFault) { 894 effAddr = req->getVaddr(); 895 effSize = size; 896 effAddrValid = true; |
899#if USE_CHECKER 900 if (reqToVerify != NULL) { 901 delete reqToVerify; | 897 898 if (cpu->checker) { 899 if (reqToVerify != NULL) { 900 delete reqToVerify; 901 } 902 reqToVerify = new Request(*req); |
902 } | 903 } |
903 reqToVerify = new Request(*req); 904#endif //USE_CHECKER | |
905 fault = cpu->read(req, sreqLow, sreqHigh, data, lqIdx); 906 } else { 907 // Commit will have to clean up whatever happened. Set this 908 // instruction as executed. 909 this->setExecuted(); 910 } 911 912 if (fault != NoFault) { --- 39 unchanged lines hidden (view full) --- 952 } 953 initiateTranslation(req, sreqLow, sreqHigh, res, BaseTLB::Write); 954 } 955 956 if (fault == NoFault && translationCompleted) { 957 effAddr = req->getVaddr(); 958 effSize = size; 959 effAddrValid = true; | 904 fault = cpu->read(req, sreqLow, sreqHigh, data, lqIdx); 905 } else { 906 // Commit will have to clean up whatever happened. Set this 907 // instruction as executed. 908 this->setExecuted(); 909 } 910 911 if (fault != NoFault) { --- 39 unchanged lines hidden (view full) --- 951 } 952 initiateTranslation(req, sreqLow, sreqHigh, res, BaseTLB::Write); 953 } 954 955 if (fault == NoFault && translationCompleted) { 956 effAddr = req->getVaddr(); 957 effSize = size; 958 effAddrValid = true; |
960#if USE_CHECKER 961 if (reqToVerify != NULL) { 962 delete reqToVerify; | 959 960 if (cpu->checker) { 961 if (reqToVerify != NULL) { 962 delete reqToVerify; 963 } 964 reqToVerify = new Request(*req); |
963 } | 965 } |
964 reqToVerify = new Request(*req); 965#endif // USE_CHECKER | |
966 fault = cpu->write(req, sreqLow, sreqHigh, data, sqIdx); 967 } 968 969 return fault; 970} 971 972template<class Impl> 973inline void --- 85 unchanged lines hidden --- | 966 fault = cpu->write(req, sreqLow, sreqHigh, data, sqIdx); 967 } 968 969 return fault; 970} 971 972template<class Impl> 973inline void --- 85 unchanged lines hidden --- |