Go to the documentation of this file.
33 #include "debug/Decode.hh"
54 constexpr
size_t max_bit =
sizeof(
machInst) * 8 - 1;
55 constexpr
size_t mid_bit =
sizeof(
machInst) * 4 - 1;
58 DPRINTF(Decode,
"Requesting bytes 0x%08x from address %#x\n", inst,
70 assert(
bits(
emi, max_bit, mid_bit + 1) == 0);
76 emi =
bits(inst, max_bit, mid_bit + 1);
87 DPRINTF(Decode,
"Decoding instruction 0x%08x at address %#x\n",
94 DPRINTF(Decode,
"Decode: Decoded %s instruction: %#x\n",
95 si->getName(), mach_inst);
void moreBytes(const PCState &pc, Addr fetchPC)
constexpr void replaceBits(T &val, unsigned first, unsigned last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
StaticInstPtr decode(ExtMachInst mach_inst, Addr addr)
Decode a machine instruction.
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
decode_cache::InstMap< ExtMachInst > instMap
Addr instAddr() const
Returns the memory address the bytes of this instruction came from.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
bool compressed(ExtMachInst inst)
StaticInstPtr decodeInst(ExtMachInst mach_inst)
Generated on Tue Sep 21 2021 12:23:59 for gem5 by doxygen 1.8.17