48#ifndef __ARCH_RISCV_REGS_MISC_HH__
49#define __ARCH_RISCV_REGS_MISC_HH__
52#include <unordered_map>
61#include "debug/MiscRegs.hh"
62#include "enums/RiscvType.hh"
590template <
typename... T>
592 return ((1 << args) | ...);
595template <
typename... T>
597 return ((1ULL << (isa_exts -
'a')) | ...);
604const std::unordered_map<int, CSRMetadata>
CSRData = {
1334 Bitfield<63> rv64_sd;
1457const off_t MXL_OFFSETS[enums::Num_RiscvType] = {
1458 [
RV32] = (
sizeof(uint32_t) * 8 - 2),
1459 [
RV64] = (
sizeof(uint64_t) * 8 - 2),
1477 [
RV32] = 3ULL << MXL_OFFSETS[
RV32],
1478 [
RV64] = 3ULL << MXL_OFFSETS[
RV64],
1489 [
RV32] = 1ULL << ((
sizeof(uint32_t) * 8) - 1),
1490 [
RV64] = 1ULL << ((
sizeof(uint64_t) * 8) - 1),
1593 [enums::MSU] = 0ULL,
1594 [enums::MHSU] = 0ULL,
1599 [enums::MSU] = 0ULL,
1682 [
RV32] = (1ULL << 31),
1683 [
RV64] = (1ULL << 63),
1693const std::unordered_map<int, RegVal>
1694CSRMasks[enums::Num_RiscvType][enums::Num_PrivilegeModeSet] = {
1815const std::unordered_map<int, RegVal>
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 HSTATUS_MASKS[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
const RegVal MSTATUSH_MASKS[enums::Num_PrivilegeModeSet]
const RegVal SI_MASK[enums::Num_PrivilegeModeSet]
const RegVal HSTATUS_SPV_MASK
constexpr uint64_t isaExtsFlags()
const RegVal HSTATUS_VSXL_MASK
constexpr enums::RiscvType RV32
const RegVal STATUS_MBE_MASK[enums::Num_RiscvType]
const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType]
const RegVal VSI_MASK[enums::Num_PrivilegeModeSet]
const RegVal STATUS_SBE_MASK[enums::Num_RiscvType]
const RegVal DELEGABLE_INTS_MASK
const RegVal STATUS_UBE_MASK
const RegVal HSTATUS_SPVP_MASK
const RegVal STATUS_MIE_MASK
const RegVal HSTATUS_VTSR_MASK
const RegVal HS_INTERRUPTS
const RegVal STATUS_SIE_MASK
const RegVal STATUS_TW_MASK
const RegVal STATUS_MPIE_MASK
const RegVal SSTATUS_MASKS[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
const RegVal STATUS_VS_MASK
const off_t MBE_OFFSET[enums::Num_RiscvType]
const RegVal HSTATUS_VTVM_MASK
const RegVal STATUS_XS_MASK
const RegVal STATUS_GVA_MASK
const RegVal STATUS_SXL_MASK
EndBitUnion(SATP) enum AddrXlateMode
const RegVal HSTATUS_HU_MASK
const RegVal STATUS_MPRV_MASK
const RegVal DELEGABLE_EXCPS
const RegVal HSTATUS_VGEIN_MASK
const RegVal HSTATUS_VSBE_MASK
const RegVal STATUS_UXL_MASK
const RegVal STATUS_MXR_MASK
const std::unordered_map< int, CSRMetadata > CSRData
const RegVal STATUS_MPV_MASK
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
const RegVal STATUS_FS_MASK
const RegVal STATUS_SPP_MASK
const RegVal HSTATUS_VTW_MASK
const RegVal ISA_EXT_MASK
const RegVal STATUS_SD_MASKS[enums::Num_RiscvType]
const std::unordered_map< int, RegVal > CSRWriteMasks[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
const RegVal STATUS_SPIE_MASK
const RegVal STATUS_MPP_MASK
constexpr enums::RiscvType RV64
const RegVal ISA_EXT_C_MASK
const RegVal MISA_MASKS[enums::Num_RiscvType]
const RegVal HSTATUS_GVA_MASK
const RegVal ISA_MXL_MASKS[enums::Num_RiscvType]
const RegVal MI_MASK[enums::Num_PrivilegeModeSet]
const RegVal MIDELEG_MASK[enums::Num_PrivilegeModeSet]
const RegVal STATUS_SUM_MASK
BitUnion64(SATP) Bitfield< 63
Bitfield< 31, 30 > rv32_mxl
const off_t SBE_OFFSET[enums::Num_RiscvType]
const RegVal DELEGABLE_EXCPS_WITH_RVH
constexpr uint64_t rvTypeFlags(T... args)
const RegVal STATUS_TVM_MASK
const RegVal MSTATUS_MASKS[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
Copyright (c) 2024 Arm Limited All rights reserved.
constexpr char MiscRegClassName[]
@ MiscRegClass
Control (misc) register.
Vector Registers layout specification.