Addr addr;
+ VAddr(const VAddr &) = default;
VAddr(Addr a) : addr(a) {}
operator Addr() const { return addr; }
const VAddr &operator=(Addr a) { addr = a; return *this; }
struct PageTableEntry
{
+ PageTableEntry(const PageTableEntry &) = default;
PageTableEntry(uint64_t e) : entry(e) {}
uint64_t entry;
operator uint64_t() const { return entry; }
bool valid; // valid page table entry
+ TlbEntry(const TlbEntry &) = default;
+
//Construct an entry that maps to physical address addr.
TlbEntry(Addr _asn, Addr _vaddr, Addr _paddr,
bool uncacheable, bool read_only)
Type getter(const Storage &storage) const = delete;
void setter(Storage &storage, Type val) = delete;
+ BitfieldTypeImpl() = default;
+ BitfieldTypeImpl(const BitfieldTypeImpl &) = default;
+
Storage __storage;
operator Type () const
using typename Impl::Type;
public:
+ BitfieldType() = default;
+ BitfieldType(const BitfieldType &) = default;
+
operator Type () const { return Impl::operator Type(); }
Type operator=(const Type val) { return Impl::operator=(val); }
Type
using Impl = BitfieldTypeImpl<Base>;
using typename Impl::Type;
+ BitfieldROType() = default;
+ BitfieldROType(const BitfieldROType &) = default;
+
Type operator=(BitfieldROType<Base> const &other) = delete;
operator Type () const { return Impl::operator Type(); }
};
using typename Impl::Type;
public:
+ BitfieldWOType() = default;
+ BitfieldWOType(const BitfieldWOType &) = default;
+
Type operator=(const Type val) { return Impl::operator=(val); }
Type
operator=(BitfieldWOType<Base> const & other)
Base::__storage = val;
}
+ BitUnionOperators(const BitUnionOperators &) = default;
+
BitUnionOperators() {}
operator const typename Base::__StorageType () const
public:
/** Default constructor creates an invalid result. */
InstResult() : type(ResultType::Invalid) { }
+ InstResult(const InstResult &) = default;
/** Scalar result from scalar. */
template<typename T>
explicit InstResult(T i, const ResultType& t) : type(t) {