changeset bdd926760470 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=bdd926760470
description:
X86: Get rid of the flagless microop constructor.
This will reduce clutter in the source and hopefully speed up
compilation.
diffstat:
src/arch/x86/isa/formats/string.isa | 3 +-
src/arch/x86/isa/microops/debug.isa | 32 +--------------------
src/arch/x86/isa/microops/fpop.isa | 27 +----------------
src/arch/x86/isa/microops/ldstop.isa | 45 +----------------------------
src/arch/x86/isa/microops/limmop.isa | 24 +--------------
src/arch/x86/isa/microops/mediaop.isa | 54 +---------------------------------
src/arch/x86/isa/microops/regop.isa | 54 +---------------------------------
src/arch/x86/isa/microops/seqop.isa | 29 +------------------
src/arch/x86/isa/microops/specop.isa | 37 +-----------------------
9 files changed, 13 insertions(+), 292 deletions(-)
diffs (truncated from 645 to 300 lines):
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/formats/string.isa
--- a/src/arch/x86/isa/formats/string.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/formats/string.isa Mon Aug 23 09:44:19 2010 -0700
@@ -85,7 +85,8 @@
%s
} else if (LEGACY_REPNE) {
// The repne prefix is illegal
- return new MicroFault(machInst, "illprefix", new InvalidOpcode, 0);
+ return new MicroFault(machInst, "illprefix", 0,
+ new InvalidOpcode, 0);
} else {
%s
}
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/microops/debug.isa
--- a/src/arch/x86/isa/microops/debug.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/microops/debug.isa Mon Aug 23 09:44:19 2010 -0700
@@ -53,9 +53,6 @@
const char * instMnem, uint64_t setFlags,
std::string _message, uint8_t _cc);
- MicroDebugBase(ExtMachInst _machInst, const char * mnem,
- const char * instMnem, std::string _message, uint8_t _cc);
-
std::string generateDisassembly(Addr pc,
const SymbolTable *symtab) const;
};
@@ -64,15 +61,10 @@
def template MicroDebugDeclare {{
class %(class_name)s : public %(base_class)s
{
- private:
- void buildMe();
public:
%(class_name)s(ExtMachInst _machInst, const char * instMnem,
uint64_t setFlags, std::string _message, uint8_t _cc);
- %(class_name)s(ExtMachInst _machInst, const char * instMnem,
- std::string _message, uint8_t _cc);
-
%(BasicExecDeclare)s
};
}};
@@ -93,14 +85,6 @@
output decoder {{
inline MicroDebugBase::MicroDebugBase(
ExtMachInst machInst, const char * mnem, const char * instMnem,
- std::string _message, uint8_t _cc) :
- X86MicroopBase(machInst, mnem, instMnem, 0, No_OpClass),
- message(_message), cc(_cc)
- {
- }
-
- inline MicroDebugBase::MicroDebugBase(
- ExtMachInst machInst, const char * mnem, const char * instMnem,
uint64_t setFlags, std::string _message, uint8_t _cc) :
X86MicroopBase(machInst, mnem, instMnem,
setFlags, No_OpClass),
@@ -110,27 +94,13 @@
}};
def template MicroDebugConstructor {{
-
- inline void %(class_name)s::buildMe()
- {
- %(constructor)s;
- }
-
- inline %(class_name)s::%(class_name)s(
- ExtMachInst machInst, const char * instMnem,
- std::string _message, uint8_t _cc) :
- %(base_class)s(machInst, "%(func)s", instMnem, _message, _cc)
- {
- buildMe();
- }
-
inline %(class_name)s::%(class_name)s(
ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
std::string _message, uint8_t _cc) :
%(base_class)s(machInst, "%(func)s", instMnem,
setFlags, _message, _cc)
{
- buildMe();
+ %(constructor)s;
}
}};
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/microops/fpop.isa
--- a/src/arch/x86/isa/microops/fpop.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/microops/fpop.isa Mon Aug 23 09:44:19 2010 -0700
@@ -74,42 +74,17 @@
def template MicroFpOpDeclare {{
class %(class_name)s : public %(base_class)s
{
- protected:
- void buildMe();
-
public:
%(class_name)s(ExtMachInst _machInst,
const char * instMnem, uint64_t setFlags,
InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
uint8_t _dataSize, int8_t _spm);
- %(class_name)s(ExtMachInst _machInst,
- const char * instMnem,
- InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
- uint8_t _dataSize, int8_t _spm);
-
%(BasicExecDeclare)s
};
}};
def template MicroFpOpConstructor {{
-
- inline void %(class_name)s::buildMe()
- {
- %(constructor)s;
- }
-
- inline %(class_name)s::%(class_name)s(
- ExtMachInst machInst, const char * instMnem,
- InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
- uint8_t _dataSize, int8_t _spm) :
- %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0,
- _src1, _src2, _dest, _dataSize, _spm,
- %(op_class)s)
- {
- buildMe();
- }
-
inline %(class_name)s::%(class_name)s(
ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
@@ -118,7 +93,7 @@
_src1, _src2, _dest, _dataSize, _spm,
%(op_class)s)
{
- buildMe();
+ %(constructor)s;
}
}};
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/microops/ldstop.isa
--- a/src/arch/x86/isa/microops/ldstop.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/microops/ldstop.isa Mon Aug 23 09:44:19 2010 -0700
@@ -71,9 +71,6 @@
def template MicroLeaDeclare {{
class %(class_name)s : public %(base_class)s
{
- protected:
- void buildMe();
-
public:
%(class_name)s(ExtMachInst _machInst,
const char * instMnem, uint64_t setFlags,
@@ -83,14 +80,6 @@
uint8_t _dataSize, uint8_t _addressSize,
Request::FlagsType _memFlags);
- %(class_name)s(ExtMachInst _machInst,
- const char * instMnem,
- uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
- uint64_t _disp, InstRegIndex _segment,
- InstRegIndex _data,
- uint8_t _dataSize, uint8_t _addressSize,
- Request::FlagsType _memFlags);
-
%(BasicExecDeclare)s
};
}};
@@ -246,9 +235,6 @@
def template MicroLdStOpDeclare {{
class %(class_name)s : public %(base_class)s
{
- protected:
- void buildMe();
-
public:
%(class_name)s(ExtMachInst _machInst,
const char * instMnem, uint64_t setFlags,
@@ -258,14 +244,6 @@
uint8_t _dataSize, uint8_t _addressSize,
Request::FlagsType _memFlags);
- %(class_name)s(ExtMachInst _machInst,
- const char * instMnem,
- uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
- uint64_t _disp, InstRegIndex _segment,
- InstRegIndex _data,
- uint8_t _dataSize, uint8_t _addressSize,
- Request::FlagsType _memFlags);
-
%(BasicExecDeclare)s
%(InitiateAccDeclare)s
@@ -275,27 +253,6 @@
}};
def template MicroLdStOpConstructor {{
-
- inline void %(class_name)s::buildMe()
- {
- %(constructor)s;
- }
-
- inline %(class_name)s::%(class_name)s(
- ExtMachInst machInst, const char * instMnem,
- uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
- uint64_t _disp, InstRegIndex _segment,
- InstRegIndex _data,
- uint8_t _dataSize, uint8_t _addressSize,
- Request::FlagsType _memFlags) :
- %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0,
- _scale, _index, _base,
- _disp, _segment, _data,
- _dataSize, _addressSize, _memFlags, %(op_class)s)
- {
- buildMe();
- }
-
inline %(class_name)s::%(class_name)s(
ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
@@ -308,7 +265,7 @@
_disp, _segment, _data,
_dataSize, _addressSize, _memFlags, %(op_class)s)
{
- buildMe();
+ %(constructor)s;
}
}};
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/microops/limmop.isa
--- a/src/arch/x86/isa/microops/limmop.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/microops/limmop.isa Mon Aug 23 09:44:19 2010 -0700
@@ -61,7 +61,6 @@
const uint64_t imm;
const uint8_t dataSize;
RegIndex foldOBit;
- void buildMe();
std::string generateDisassembly(Addr pc,
const SymbolTable *symtab) const;
@@ -72,10 +71,6 @@
uint64_t setFlags, InstRegIndex _dest,
uint64_t _imm, uint8_t _dataSize);
- %(class_name)s(ExtMachInst _machInst,
- const char * instMnem,
- InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize);
-
%(BasicExecDeclare)s
};
}};
@@ -95,22 +90,6 @@
}};
def template MicroLimmOpConstructor {{
-
- inline void %(class_name)s::buildMe()
- {
- foldOBit = (dataSize == 1 && !machInst.rex.present) ? 1 << 6 : 0;
- %(constructor)s;
- }
-
- inline %(class_name)s::%(class_name)s(
- ExtMachInst machInst, const char * instMnem,
- InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize) :
- %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0, %(op_class)s),
- dest(_dest.idx), imm(_imm), dataSize(_dataSize)
- {
- buildMe();
- }
-
inline %(class_name)s::%(class_name)s(
ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize) :
@@ -118,7 +97,8 @@
setFlags, %(op_class)s),
dest(_dest.idx), imm(_imm), dataSize(_dataSize)
{
- buildMe();
+ foldOBit = (dataSize == 1 && !machInst.rex.present) ? 1 << 6 : 0;
+ %(constructor)s;
}
}};
diff -r b1e69203bae9 -r bdd926760470 src/arch/x86/isa/microops/mediaop.isa
--- a/src/arch/x86/isa/microops/mediaop.isa Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/microops/mediaop.isa Mon Aug 23 09:44:19 2010 -0700
@@ -49,20 +49,12 @@
def template MediaOpRegDeclare {{
class %(class_name)s : public %(base_class)s
{
- protected:
- void buildMe();
-
public:
%(class_name)s(ExtMachInst _machInst,
const char * instMnem, uint64_t setFlags,
InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev