/** SVE vector length at reset, in quadwords */
const unsigned _sveVL;
- /** True if Priviledge Access Never is implemented */
- const unsigned _havePAN;
-
/**
- * Range for memory-mapped m5 pseudo ops. The range will be
- * invalid/empty if disabled.
+ * True if LSE is implemented (ARMv8.1)
*/
- const AddrRange _m5opRange;
+ const bool _haveLSE;
+
+ /** True if Priviledge Access Never is implemented */
+ const unsigned _havePAN;
/**
* True if the Semihosting interface is enabled.
/** Returns the SVE vector length at reset, in quadwords */
unsigned sveVL() const { return _sveVL; }
+ /** Returns true if LSE is implemented (ARMv8.1) */
+ bool haveLSE() const { return _haveLSE; }
+
/** Returns true if Priviledge Access Never is implemented */
bool havePAN() const { return _havePAN; }
/** Is Arm Semihosting support enabled? */
bool haveSemihosting() const { return semihosting != nullptr; }
+ /**
+ * Casts the provided System object into a valid ArmSystem, it fails
+ * otherwise.
+ * @param sys System object to cast
+ */
+ static ArmSystem *getArmSystem(System *sys);
+
/**
* Returns a valid ArmSystem pointer if using ARM ISA, it fails
* otherwise.