diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-01-06 22:44:59 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-01-06 22:44:59 -0800 |
commit | 9e24d8c599a3090f3ce59a608ff887ac434aa1ca (patch) | |
tree | fb5522f754cca46cf5f75d01e8e64b7747de08e6 /src/arch/x86/isa | |
parent | 7b7a72158ab194864e7985e68fc5161b563b44a8 (diff) | |
download | gem5-9e24d8c599a3090f3ce59a608ff887ac434aa1ca.tar.xz |
X86: Move the macroop class out of the isa description into C++.
Diffstat (limited to 'src/arch/x86/isa')
-rw-r--r-- | src/arch/x86/isa/includes.isa | 1 | ||||
-rw-r--r-- | src/arch/x86/isa/macroop.isa | 50 |
2 files changed, 5 insertions, 46 deletions
diff --git a/src/arch/x86/isa/includes.isa b/src/arch/x86/isa/includes.isa index e523b7e32..cddc4247c 100644 --- a/src/arch/x86/isa/includes.isa +++ b/src/arch/x86/isa/includes.isa @@ -97,6 +97,7 @@ output header {{ #include <iostream> #include "arch/x86/emulenv.hh" +#include "arch/x86/insts/macroop.hh" #include "arch/x86/insts/microfpop.hh" #include "arch/x86/insts/microldstop.hh" #include "arch/x86/insts/microregop.hh" diff --git a/src/arch/x86/isa/macroop.isa b/src/arch/x86/isa/macroop.isa index 7d94dd95c..c5134f336 100644 --- a/src/arch/x86/isa/macroop.isa +++ b/src/arch/x86/isa/macroop.isa @@ -72,56 +72,14 @@ def template MacroExecPanic {{ output header {{ // Base class for combinationally generated macroops - class Macroop : public StaticInst + class Macroop : public X86ISA::MacroopBase { - protected: - const uint32_t numMicroops; - X86ISA::EmulEnv emulEnv; - - //Constructor. + public: Macroop(const char *mnem, ExtMachInst _machInst, uint32_t _numMicroops, X86ISA::EmulEnv _emulEnv) - : StaticInst(mnem, _machInst, No_OpClass), - numMicroops(_numMicroops), emulEnv(_emulEnv) - { - assert(numMicroops); - microops = new StaticInstPtr[numMicroops]; - flags[IsMacroop] = true; - } - - ~Macroop() - { - delete [] microops; - } - - StaticInstPtr * microops; - - StaticInstPtr fetchMicroop(MicroPC microPC) - { - assert(microPC < numMicroops); - return microops[microPC]; - } - - std::string generateDisassembly(Addr pc, - const SymbolTable *symtab) const - { - return mnemonic; - } - - public: + : MacroopBase(mnem, _machInst, _numMicroops, _emulEnv) + {} %(MacroExecPanic)s - - ExtMachInst - getExtMachInst() - { - return machInst; - } - - X86ISA::EmulEnv - getEmulEnv() - { - return emulEnv; - } }; }}; |