41#ifndef __ARCH_ARM_DECODER_HH__
42#define __ARCH_ARM_DECODER_HH__
52#include "debug/Decode.hh"
53#include "enums/DecoderFlavor.hh"
54#include "params/ArmDecoder.hh"
139 DPRINTF(Decode,
"Decode: Decoded %s instruction: %#x\n",
140 si->getName(), mach_inst);
141 si->size((!
emi.thumb ||
emi.bigThumb) ? 4 : 2);
149 void reset()
override;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
static GenericISA::BasicDecodeCache< Decoder, ExtMachInst > defaultCache
A cache of decoded instruction objects.
void consumeBytes(int numBytes)
Consume bytes by moving the offset into the data word and sanity check the results.
enums::DecoderFlavor decoderFlavor
StaticInstPtr decodeInst(ExtMachInst mach_inst)
Decode a machine instruction without calling the cache.
void reset() override
Reset the decoders internal state.
void setSveLen(uint8_t len)
Decoder(const ArmDecoderParams ¶ms)
int smeLen
SME vector length, encoded in the same format as the SMCR_EL<x>.LEN bitfields.
StaticInstPtr decode(ExtMachInst mach_inst, Addr addr)
Decode a pre-decoded machine instruction.
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.
void moreBytes(const PCStateBase &pc, Addr fetchPC) override
Feed data to the decoder.
void setSmeLen(uint8_t len)
const bool dvmEnabled
True if the decoder should emit DVM Ops (treated as Loads)
void setContext(FPSCR fpscr)
const Params & params() const
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.