changeset 3a6468fa514f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=3a6468fa514f
description:
        X86: Add a .serializing directive that makes a macroop serializing.

        This directive really just tells the macroop to set IsSerializing and
        IsSerializeAfter on its final microop.

diffstat:

 src/arch/x86/isa/macroop.isa |  9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diffs (38 lines):

diff -r 3d8a23caa1ef -r 3a6468fa514f src/arch/x86/isa/macroop.isa
--- a/src/arch/x86/isa/macroop.isa      Mon Aug 23 09:44:19 2010 -0700
+++ b/src/arch/x86/isa/macroop.isa      Mon Aug 23 09:44:19 2010 -0700
@@ -139,12 +139,15 @@
             self.adjust_imm += val
         def adjustDisp(self, val):
             self.adjust_disp += val
+        def serializing(self):
+            self.serializing = True
         def __init__(self, name):
             super(X86Macroop, self).__init__(name)
             self.directives = {
                 "adjust_env" : self.setAdjustEnv,
                 "adjust_imm" : self.adjustImm,
-                "adjust_disp" : self.adjustDisp
+                "adjust_disp" : self.adjustDisp,
+                "serializing" : self.serializing
             }
             self.declared = False
             self.adjust_env = ""
@@ -159,6 +162,7 @@
                 //This is to pacify gcc in case the displacement isn't used.
                 adjustedDisp = adjustedDisp;
             '''
+            self.serializing = False
         def getAllocator(self, env):
             return "new X86Macroop::%s(machInst, %s)" % \
                     (self.name, env.getAllocator())
@@ -188,6 +192,9 @@
                 flags = ["IsMicroop"]
                 if micropc == numMicroops - 1:
                     flags.append("IsLastMicroop")
+                    if self.serializing:
+                        flags.append("IsSerializing")
+                        flags.append("IsSerializeAfter")
                 else:
                     flags.append("IsDelayedCommit")
                 if micropc == 0:
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to