35#ifndef __ARCH_RISCV_ISA_HH__
36#define __ARCH_RISCV_ISA_HH__
38#include <unordered_map>
122 void clear()
override;
140 virtual const std::unordered_map<int, CSRMetadata>&
145 virtual const std::unordered_map<int, RegVal>&
162 Addr cacheBlockMask)
override;
195 RegIndex idx, uint64_t cause,
bool intr)
const;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
const bool _wfiResumeOnPending
The WFI instruction can halt the execution of a hart.
virtual const std::unordered_map< int, CSRMetadata > & getCSRDataMap() const
void setMiscReg(RegIndex idx, RegVal val) override
void handleLockedSnoop(PacketPtr pkt, Addr cacheBlockMask) override
virtual const std::unordered_map< int, RegVal > & getCSRMaskMap() const
RegVal readMiscReg(RegIndex idx) override
void globalClearExclusive() override
void serialize(CheckpointOut &cp) const override
Serialize an object.
void resetThread() override
PrivilegeModeSet _privilegeModeSet
The combination of privilege modes in Privilege Levels section of RISC-V privileged spec.
Addr rvSext(Addr addr) const
void setMiscRegNoEffect(RegIndex idx, RegVal val) override
PCStateBase * newPCState(Addr new_inst_addr=0) const override
RegVal readMiscRegNoEffect(RegIndex idx) const override
bool hpmCounterEnabled(int counter) const
unsigned elen
Length of each vector element in bits.
void copyRegsFrom(ThreadContext *src) override
bool handleLockedWrite(const RequestPtr &req, Addr cacheBlockMask) override
unsigned vlen
Length of each vector register in bits.
bool getEnableRvv() const
unsigned getVecElemLenInBits()
std::vector< RegVal > miscRegFile
unsigned getVecLenInBits()
Methods for getting VLEN, VLENB and ELEN values.
bool inUserMode() const override
void unserialize(CheckpointIn &cp) override
Unserialize an object.
const Addr INVALID_RESERVATION_ADDR
bool _enableZcd
Enable Zcd extensions.
virtual Addr getFaultHandlerAddr(RegIndex idx, uint64_t cause, bool intr) const
int64_t getVectorLengthInBytes() const override
This function returns the vector length of the Vector Length Agnostic extension of the ISA.
void clearLoadReservation(ContextID cid)
unsigned getVecLenInBytes()
std::unordered_map< int, Addr > load_reservation_addrs
PrivilegeModeSet getPrivilegeModeSet()
void handleLockedRead(const RequestPtr &req) override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
constexpr enums::RiscvType RV32
enums::RiscvType RiscvType
const std::unordered_map< int, CSRMetadata > CSRData
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
enums::PrivilegeModeSet PrivilegeModeSet
Copyright (c) 2024 Arm Limited All rights reserved.
std::shared_ptr< Request > RequestPtr
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::ostream & operator<<(std::ostream &os, const BaseSemihosting::InPlaceArg &ipa)
int ContextID
Globally unique thread context ID.