34#ifndef __ARCH_RISCV_ISA_HH__
35#define __ARCH_RISCV_ISA_HH__
37#include <unordered_map>
104 void clear()
override;
109 unsigned vlenb =
vlen >> 3;
123 virtual const std::unordered_map<int, CSRMetadata>&
128 virtual const std::unordered_map<int, RegVal>&
145 Addr cacheBlockMask)
override;
174 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....
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.
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
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.
GenericISA::DelaySlotPCState< 4 > PCState
enums::PrivilegeModeSet PrivilegeModeSet
enums::RiscvType RiscvType
const std::unordered_map< int, CSRMetadata > CSRData
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType][enums::Num_PrivilegeModeSet]
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria 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.
int ContextID
Globally unique thread context ID.
std::ostream & operator<<(std::ostream &os, gem5::RiscvISA::PrivilegeMode pm)