41 #ifndef __ARCH_ARM_DECODER_HH__ 42 #define __ARCH_ARM_DECODER_HH__ 51 #include "enums/DecoderFlavor.hh" 173 return defaultCache.
decode(
this, mach_inst, addr);
201 fpscrLen = fpscr.len;
202 fpscrStride = fpscr.stride;
213 #endif // __ARCH_ARM_DECODER_HH__
void consumeBytes(int numBytes)
Consume bytes by moving the offset into the data word and sanity check the results.
void takeOverFrom(Decoder *old)
Take over the state from an old decoder when switching CPUs.
int sveLen
SVE vector length, encoded in the same format as the ZCR_EL<x>.LEN bitfields.
void process()
Pre-decode an instruction from the current state of the decoder.
StaticInstPtr decodeInst(ExtMachInst mach_inst)
Decode a machine instruction without calling the cache.
static GenericISA::BasicDecodeCache defaultCache
A cache of decoded instruction objects.
bool instReady() const
Is an instruction ready to be decoded?
StaticInstPtr decode(ArmISA::PCState &pc)
Decode an instruction or fetch it from the code cache.
StaticInstPtr decode(TheISA::Decoder *const decoder, TheISA::ExtMachInst mach_inst, Addr addr)
Decode a machine instruction.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
StaticInstPtr decode(ExtMachInst mach_inst, Addr addr)
Decode a pre-decoded machine instruction.
bool needMoreBytes() const
Can the decoder accept more data?
void moreBytes(const PCState &pc, Addr fetchPC, MachInst inst)
Feed data to the decoder.
Decoder(ISA *isa=nullptr)
void reset()
Reset the decoders internal state.
Enums::DecoderFlavor decoderFlavor
GenericISA::DelaySlotPCState< MachInst > PCState
void setContext(FPSCR fpscr)
void setSveLen(uint8_t len)