faults.hh (12569:fe1ff4059715) faults.hh (12570:e32771e88250)
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

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

223 virtual uint8_t thumbPcOffset(bool isHyp) = 0;
224 virtual uint8_t armPcElrOffset() = 0;
225 virtual uint8_t thumbPcElrOffset() = 0;
226 virtual bool abortDisable(ThreadContext *tc) = 0;
227 virtual bool fiqDisable(ThreadContext *tc) = 0;
228 virtual ExceptionClass ec(ThreadContext *tc) const = 0;
229 virtual uint32_t iss() const = 0;
230 virtual bool isStage2() const { return false; }
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

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

223 virtual uint8_t thumbPcOffset(bool isHyp) = 0;
224 virtual uint8_t armPcElrOffset() = 0;
225 virtual uint8_t thumbPcElrOffset() = 0;
226 virtual bool abortDisable(ThreadContext *tc) = 0;
227 virtual bool fiqDisable(ThreadContext *tc) = 0;
228 virtual ExceptionClass ec(ThreadContext *tc) const = 0;
229 virtual uint32_t iss() const = 0;
230 virtual bool isStage2() const { return false; }
231 virtual FSR getFsr(ThreadContext *tc) { return 0; }
231 virtual FSR getFsr(ThreadContext *tc) const { return 0; }
232 virtual void setSyndrome(ThreadContext *tc, MiscRegIndex syndrome_reg);
233};
234
235template<typename T>
236class ArmFaultVals : public ArmFault
237{
238 protected:
239 static FaultVals vals;

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

426 faultAddr(_faultAddr), OVAddr(0), write(_write),
427 domain(_domain), source(_source), srcEncoded(0),
428 stage2(_stage2), s1ptw(false), tranMethod(_tranMethod)
429 {}
430
431 void invoke(ThreadContext *tc, const StaticInstPtr &inst =
432 StaticInst::nullStaticInstPtr) override;
433
232 virtual void setSyndrome(ThreadContext *tc, MiscRegIndex syndrome_reg);
233};
234
235template<typename T>
236class ArmFaultVals : public ArmFault
237{
238 protected:
239 static FaultVals vals;

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

426 faultAddr(_faultAddr), OVAddr(0), write(_write),
427 domain(_domain), source(_source), srcEncoded(0),
428 stage2(_stage2), s1ptw(false), tranMethod(_tranMethod)
429 {}
430
431 void invoke(ThreadContext *tc, const StaticInstPtr &inst =
432 StaticInst::nullStaticInstPtr) override;
433
434 FSR getFsr(ThreadContext *tc) override;
434 FSR getFsr(ThreadContext *tc) const override;
435 uint8_t getFaultStatusCode(ThreadContext *tc) const;
435 bool abortDisable(ThreadContext *tc) override;
436 uint32_t iss() const override;
437 bool isStage2() const override { return stage2; }
438 void annotate(ArmFault::AnnotationIDs id, uint64_t val) override;
436 bool abortDisable(ThreadContext *tc) override;
437 uint32_t iss() const override;
438 bool isStage2() const override { return stage2; }
439 void annotate(ArmFault::AnnotationIDs id, uint64_t val) override;
440 void setSyndrome(ThreadContext *tc, MiscRegIndex syndrome_reg) override;
439 bool isMMUFault() const;
440};
441
442class PrefetchAbort : public AbortFault<PrefetchAbort>
443{
444 public:
445 static const MiscRegIndex FsrIndex = MISCREG_IFSR;
446 static const MiscRegIndex FarIndex = MISCREG_IFAR;

--- 174 unchanged lines hidden ---
441 bool isMMUFault() const;
442};
443
444class PrefetchAbort : public AbortFault<PrefetchAbort>
445{
446 public:
447 static const MiscRegIndex FsrIndex = MISCREG_IFSR;
448 static const MiscRegIndex FarIndex = MISCREG_IFAR;

--- 174 unchanged lines hidden ---