From 3c4567f2a65e0809d84d85a3fd82a294a1b0cb96 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 12 Oct 2008 23:29:10 -0700 Subject: [PATCH] X86: Set the delayed commit flag in x86 microops appropriately. --- src/arch/x86/isa/macroop.isa | 6 +++--- src/arch/x86/isa/microops/base.isa | 2 +- src/arch/x86/isa/microops/seqop.isa | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/arch/x86/isa/macroop.isa b/src/arch/x86/isa/macroop.isa index b851a92c7..7d94dd95c 100644 --- a/src/arch/x86/isa/macroop.isa +++ b/src/arch/x86/isa/macroop.isa @@ -220,11 +220,11 @@ let {{ allocMicroops = '' micropc = 0 for op in self.microops: + isLast = (micropc == numMicroops - 1) allocMicroops += \ "microops[%d] = %s;\n" % \ - (micropc, op.getAllocator(True, False, - micropc == 0, - micropc == numMicroops - 1)) + (micropc, op.getAllocator(True, not isLast, + micropc == 0, isLast)) micropc += 1 iop = InstObjParams(self.name, self.name, "Macroop", {"code" : "", "num_microops" : numMicroops, diff --git a/src/arch/x86/isa/microops/base.isa b/src/arch/x86/isa/microops/base.isa index 057d237ad..2b73cf563 100644 --- a/src/arch/x86/isa/microops/base.isa +++ b/src/arch/x86/isa/microops/base.isa @@ -118,7 +118,7 @@ let {{ def getGeneratorDef(self, micropc): return self.generatorTemplate % \ (self.className, micropc, \ - self.getAllocator(True, False, False, False)) + self.getAllocator(True, True, False, False)) def getGenerator(self, micropc): return self.generatorNameTemplate % (self.className, micropc) diff --git a/src/arch/x86/isa/microops/seqop.isa b/src/arch/x86/isa/microops/seqop.isa index d3c7bf096..f03094f66 100644 --- a/src/arch/x86/isa/microops/seqop.isa +++ b/src/arch/x86/isa/microops/seqop.isa @@ -195,6 +195,7 @@ let {{ def getAllocator(self, *microFlags): (is_micro, is_delayed, is_first, is_last) = microFlags is_last = False + is_delayed = True microFlags = (is_micro, is_delayed, is_first, is_last) return super(Br, self).getAllocator(*microFlags) @@ -214,6 +215,7 @@ let {{ def getAllocator(self, *microFlags): (is_micro, is_delayed, is_first, is_last) = microFlags is_last = True + is_delayed = False microFlags = (is_micro, is_delayed, is_first, is_last) return super(Eret, self).getAllocator(*microFlags) -- 2.30.2