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