summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops/limmop.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/limmop.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/limmop.isa')
-rw-r--r--src/arch/x86/isa/microops/limmop.isa20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/arch/x86/isa/microops/limmop.isa b/src/arch/x86/isa/microops/limmop.isa
index 21610012f..d80a9b9fa 100644
--- a/src/arch/x86/isa/microops/limmop.isa
+++ b/src/arch/x86/isa/microops/limmop.isa
@@ -69,8 +69,8 @@ def template MicroLimmOpDeclare {{
public:
%(class_name)s(ExtMachInst _machInst,
const char * instMnem,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
- InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize);
+ uint64_t setFlags, InstRegIndex _dest,
+ uint64_t _imm, uint8_t _dataSize);
%(class_name)s(ExtMachInst _machInst,
const char * instMnem,
@@ -105,19 +105,17 @@ def template MicroLimmOpConstructor {{
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,
- false, false, false, false, %(op_class)s),
+ %(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,
- bool isMicro, bool isDelayed, bool isFirst, bool isLast,
+ ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize) :
%(base_class)s(machInst, "%(mnemonic)s", instMnem,
- isMicro, isDelayed, isFirst, isLast, %(op_class)s),
+ setFlags, %(op_class)s),
dest(_dest.idx), imm(_imm), dataSize(_dataSize)
{
buildMe();
@@ -135,8 +133,8 @@ let {{
self.imm = imm
self.dataSize = dataSize
- def getAllocator(self, *microFlags):
- allocator = '''new %(class_name)s(machInst, macrocodeBlock
+ def getAllocator(self, microFlags):
+ allocator = '''new %(class_name)s(machInst, macrocodeBlock,
%(flags)s, %(dest)s, %(imm)s, %(dataSize)s)''' % {
"class_name" : self.className,
"mnemonic" : self.mnemonic,
@@ -159,8 +157,8 @@ let {{
self.imm = imm
self.dataSize = dataSize
- def getAllocator(self, *microFlags):
- allocator = '''new %(class_name)s(machInst, macrocodeBlock
+ def getAllocator(self, microFlags):
+ allocator = '''new %(class_name)s(machInst, macrocodeBlock,
%(flags)s, %(dest)s, %(imm)s, %(dataSize)s)''' % {
"class_name" : self.className,
"mnemonic" : self.mnemonic,