faults.hh (12509:aa16dce23e98) faults.hh (12511:99c28b88d4d8)
1/*
2 * Copyright (c) 2010, 2012-2013, 2016-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

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

186
187 void invoke(ThreadContext *tc, const StaticInstPtr &inst =
188 StaticInst::nullStaticInstPtr) override;
189 void invoke64(ThreadContext *tc, const StaticInstPtr &inst =
190 StaticInst::nullStaticInstPtr);
191 virtual void annotate(AnnotationIDs id, uint64_t val) {}
192 virtual FaultStat& countStat() = 0;
193 virtual FaultOffset offset(ThreadContext *tc) = 0;
1/*
2 * Copyright (c) 2010, 2012-2013, 2016-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

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

186
187 void invoke(ThreadContext *tc, const StaticInstPtr &inst =
188 StaticInst::nullStaticInstPtr) override;
189 void invoke64(ThreadContext *tc, const StaticInstPtr &inst =
190 StaticInst::nullStaticInstPtr);
191 virtual void annotate(AnnotationIDs id, uint64_t val) {}
192 virtual FaultStat& countStat() = 0;
193 virtual FaultOffset offset(ThreadContext *tc) = 0;
194 virtual FaultOffset offset64() = 0;
194 virtual FaultOffset offset64(ThreadContext *tc) = 0;
195 virtual OperatingMode nextMode() = 0;
196 virtual bool routeToMonitor(ThreadContext *tc) const = 0;
197 virtual bool routeToHyp(ThreadContext *tc) const { return false; }
198 virtual uint8_t armPcOffset(bool isHyp) = 0;
199 virtual uint8_t thumbPcOffset(bool isHyp) = 0;
200 virtual uint8_t armPcElrOffset() = 0;
201 virtual uint8_t thumbPcElrOffset() = 0;
202 virtual bool abortDisable(ThreadContext *tc) = 0;

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

216
217 public:
218 ArmFaultVals<T>(ExtMachInst _machInst = 0, uint32_t _iss = 0) :
219 ArmFault(_machInst, _iss) {}
220 FaultName name() const override { return vals.name; }
221 FaultStat & countStat() override { return vals.count; }
222 FaultOffset offset(ThreadContext *tc) override;
223
195 virtual OperatingMode nextMode() = 0;
196 virtual bool routeToMonitor(ThreadContext *tc) const = 0;
197 virtual bool routeToHyp(ThreadContext *tc) const { return false; }
198 virtual uint8_t armPcOffset(bool isHyp) = 0;
199 virtual uint8_t thumbPcOffset(bool isHyp) = 0;
200 virtual uint8_t armPcElrOffset() = 0;
201 virtual uint8_t thumbPcElrOffset() = 0;
202 virtual bool abortDisable(ThreadContext *tc) = 0;

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

216
217 public:
218 ArmFaultVals<T>(ExtMachInst _machInst = 0, uint32_t _iss = 0) :
219 ArmFault(_machInst, _iss) {}
220 FaultName name() const override { return vals.name; }
221 FaultStat & countStat() override { return vals.count; }
222 FaultOffset offset(ThreadContext *tc) override;
223
224 FaultOffset offset64() override {
225 if (toEL == fromEL) {
226 if (opModeIsT(fromMode))
227 return vals.currELTOffset;
228 return vals.currELHOffset;
229 } else {
230 if (from64)
231 return vals.lowerEL64Offset;
232 return vals.lowerEL32Offset;
233 }
234 }
224 FaultOffset offset64(ThreadContext *tc) override;
235
236 OperatingMode nextMode() override { return vals.nextMode; }
237 virtual bool routeToMonitor(ThreadContext *tc) const override {
238 return false;
239 }
240 uint8_t armPcOffset(bool isHyp) override {
241 return isHyp ? vals.armPcElrOffset
242 : vals.armPcOffset;

--- 363 unchanged lines hidden ---
225
226 OperatingMode nextMode() override { return vals.nextMode; }
227 virtual bool routeToMonitor(ThreadContext *tc) const override {
228 return false;
229 }
230 uint8_t armPcOffset(bool isHyp) override {
231 return isHyp ? vals.armPcElrOffset
232 : vals.armPcOffset;

--- 363 unchanged lines hidden ---