summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops/debug.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2010-08-23 09:44:19 -0700
committerGabe Black <gblack@eecs.umich.edu>2010-08-23 09:44:19 -0700
commit5a1dbe4d99e9aad0f5c9002707a323ef8d6dfb8a (patch)
treec320a60e68034355a52afaef171ade75f9914d7a /src/arch/x86/isa/microops/debug.isa
parentb187e7c9cc025dbd5bc525de3ef9352219007f72 (diff)
downloadgem5-5a1dbe4d99e9aad0f5c9002707a323ef8d6dfb8a.tar.xz
X86: Consolidate extra microop flags into one parameter.
This single parameter replaces the collection of bools that set up various flavors of microops. A flag parameter also allows other flags to be set like the serialize before/after flags, etc., without having to change the constructor.
Diffstat (limited to 'src/arch/x86/isa/microops/debug.isa')
-rw-r--r--src/arch/x86/isa/microops/debug.isa23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/arch/x86/isa/microops/debug.isa b/src/arch/x86/isa/microops/debug.isa
index 89873aa16..12a96c91d 100644
--- a/src/arch/x86/isa/microops/debug.isa
+++ b/src/arch/x86/isa/microops/debug.isa
@@ -50,8 +50,7 @@ output header {{
public:
MicroDebugBase(ExtMachInst _machInst, const char * mnem,
- const char * instMnem,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
+ const char * instMnem, uint64_t setFlags,
std::string _message, uint8_t _cc);
MicroDebugBase(ExtMachInst _machInst, const char * mnem,
@@ -69,8 +68,7 @@ def template MicroDebugDeclare {{
void buildMe();
public:
%(class_name)s(ExtMachInst _machInst, const char * instMnem,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
- std::string _message, uint8_t _cc);
+ uint64_t setFlags, std::string _message, uint8_t _cc);
%(class_name)s(ExtMachInst _machInst, const char * instMnem,
std::string _message, uint8_t _cc);
@@ -96,18 +94,16 @@ output decoder {{
inline MicroDebugBase::MicroDebugBase(
ExtMachInst machInst, const char * mnem, const char * instMnem,
std::string _message, uint8_t _cc) :
- X86MicroopBase(machInst, mnem, instMnem,
- false, false, false, false, No_OpClass),
+ X86MicroopBase(machInst, mnem, instMnem, 0, No_OpClass),
message(_message), cc(_cc)
{
}
inline MicroDebugBase::MicroDebugBase(
ExtMachInst machInst, const char * mnem, const char * instMnem,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
- std::string _message, uint8_t _cc) :
+ uint64_t setFlags, std::string _message, uint8_t _cc) :
X86MicroopBase(machInst, mnem, instMnem,
- isMicro, isDelayed, isFirst, isLast, No_OpClass),
+ setFlags, No_OpClass),
message(_message), cc(_cc)
{
}
@@ -129,11 +125,10 @@ def template MicroDebugConstructor {{
}
inline %(class_name)s::%(class_name)s(
- ExtMachInst machInst, const char * instMnem,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
+ ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
std::string _message, uint8_t _cc) :
%(base_class)s(machInst, "%(func)s", instMnem,
- isMicro, isDelayed, isFirst, isLast, _message, _cc)
+ setFlags, _message, _cc)
{
buildMe();
}
@@ -164,8 +159,8 @@ let {{
else:
self.cond = "0"
- def getAllocator(self, *microFlags):
- allocator = '''new %(class_name)s(machInst, macrocodeBlock
+ def getAllocator(self, microFlags):
+ allocator = '''new %(class_name)s(machInst, macrocodeBlock,
%(flags)s, "%(message)s", %(cc)s)''' % {
"class_name" : self.className,
"flags" : self.microFlagsText(microFlags),