46#ifndef __ARCH_RISCV_REGS_MISC_HH__
47#define __ARCH_RISCV_REGS_MISC_HH__
50#include <unordered_map>
58#include "debug/MiscRegs.hh"
59#include "enums/RiscvType.hh"
489template <
typename... T>
491 return ((1 << args) | ...);
494const std::unordered_map<int, CSRMetadata>
CSRData = {
732 Bitfield<63> rv64_sd;
804const off_t MXL_OFFSETS[enums::Num_RiscvType] = {
805 [
RV32] = (
sizeof(uint32_t) * 8 - 2),
806 [
RV64] = (
sizeof(uint64_t) * 8 - 2),
834 [
RV32] = 1ULL << ((
sizeof(uint32_t) * 8) - 1),
835 [
RV64] = 1ULL << ((
sizeof(uint64_t) * 8) - 1),
921 [
RV32] = (1ULL << 31),
922 [
RV64] = (1ULL << 63),
925const std::unordered_map<int, RegVal>
CSRMasks[enums::Num_RiscvType] = {
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
#define BitUnion64(name)
Use this to define conveniently sized values overlayed with bitfields.
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
constexpr RegClass miscRegClass
const RegVal STATUS_TSR_MASK
const RegVal MSTATUS_MASKS[enums::Num_RiscvType]
constexpr enums::RiscvType RV32
const RegVal STATUS_MBE_MASK[enums::Num_RiscvType]
const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType]
const RegVal STATUS_SBE_MASK[enums::Num_RiscvType]
const RegVal SSTATUS_MASKS[enums::Num_RiscvType]
const RegVal STATUS_MIE_MASK
const RegVal STATUS_SIE_MASK
const RegVal STATUS_TW_MASK
const RegVal STATUS_MPIE_MASK
const RegVal STATUS_VS_MASK
const RegVal USTATUS_MASKS[enums::Num_RiscvType]
const off_t MBE_OFFSET[enums::Num_RiscvType]
const RegVal STATUS_XS_MASK
const RegVal STATUS_SXL_MASK
const RegVal STATUS_MPRV_MASK
const RegVal STATUS_UXL_MASK
const RegVal STATUS_MXR_MASK
const std::unordered_map< int, CSRMetadata > CSRData
const RegVal STATUS_FS_MASK
const RegVal STATUS_SPP_MASK
const RegVal ISA_EXT_MASK
const RegVal MSTATUSH_MASKS
const RegVal STATUS_SD_MASKS[enums::Num_RiscvType]
const RegVal STATUS_SPIE_MASK
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType]
const RegVal STATUS_MPP_MASK
const RegVal STATUS_UIE_MASK
constexpr enums::RiscvType RV64
const RegVal ISA_EXT_C_MASK
const RegVal MISA_MASKS[enums::Num_RiscvType]
const RegVal ISA_MXL_MASKS[enums::Num_RiscvType]
const RegVal STATUS_SUM_MASK
Bitfield< 31, 30 > rv32_mxl
const off_t SBE_OFFSET[enums::Num_RiscvType]
const RegVal STATUS_UPIE_MASK
constexpr uint64_t rvTypeFlags(T... args)
const RegVal STATUS_TVM_MASK
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
constexpr char MiscRegClassName[]
@ MiscRegClass
Control (misc) register.
Vector Registers layout specification.