From eae1e97fb002b44a9d8c46df2da1ddc1d0156ce4 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 25 May 2012 00:55:24 -0700 Subject: ISA: Make the decode function part of the ISA's decoder. --- src/arch/power/decoder.hh | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/arch/power/decoder.hh') diff --git a/src/arch/power/decoder.hh b/src/arch/power/decoder.hh index 8fd8bed1a..34537bb56 100644 --- a/src/arch/power/decoder.hh +++ b/src/arch/power/decoder.hh @@ -31,13 +31,31 @@ #ifndef __ARCH_POWER_DECODER_HH__ #define __ARCH_POWER_DECODER_HH__ -#include "arch/generic/decoder.hh" +#include "arch/types.hh" +#include "cpu/decode_cache.hh" +#include "cpu/static_inst_fwd.hh" namespace PowerISA { -class Decoder : public GenericISA::Decoder -{}; +class Decoder +{ + protected: + /// A cache of decoded instruction objects. + static DecodeCache defaultCache; + + public: + StaticInstPtr decodeInst(ExtMachInst mach_inst); + + /// Decode a machine instruction. + /// @param mach_inst The binary instruction to decode. + /// @retval A pointer to the corresponding StaticInst object. + StaticInstPtr + decode(ExtMachInst mach_inst, Addr addr) + { + return defaultCache.decode(this, mach_inst, addr); + } +}; } // namespace PowerISA -- cgit v1.2.3