summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/macroop.isa
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/isa/macroop.isa')
-rw-r--r--src/arch/x86/isa/macroop.isa50
1 files changed, 4 insertions, 46 deletions
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;
- }
};
}};