Go to the documentation of this file.
28 #ifndef __ARCH_GENERIC_DECODER_HH__
29 #define __ARCH_GENERIC_DECODER_HH__
36 #include "params/InstDecoder.hh"
53 template <
typename MoreBytesType>
73 return *
static_cast<Type *
>(
this);
80 return *
static_cast<const Type *
>(
this);
161 #endif // __ARCH_DECODER_GENERIC_HH__
virtual void moreBytes(const PCStateBase &pc, Addr fetchPC)=0
Feed data to the decoder.
InstDecoder(const InstDecoderParams ¶ms, MoreBytesType *mb_buf)
virtual StaticInstPtr fetchRomMicroop(MicroPC micropc, StaticInstPtr curMacroop)
virtual void takeOverFrom(InstDecoder *old)
Take over the state from an old decoder when switching CPUs.
void * moreBytesPtr() const
static constexpr std::enable_if_t< std::is_integral_v< T >, int > floorLog2(T x)
constexpr uint64_t mask(unsigned nbits)
Generate a 64-bit mask of 'nbits' 1s, right justified.
const Params & params() const
Abstract superclass for simulation objects.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
size_t moreBytesSize() const
bool instReady() const
Is an instruction ready to be decoded?
bool needMoreBytes() const
Can the decoder accept more data?
virtual StaticInstPtr decode(PCStateBase &pc)=0
Decode an instruction or fetch it from the code cache.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17