From d90456a4868baa931ca089a471c2b9230830d848 Mon Sep 17 00:00:00 2001
From: Gabe Black <gblack@eecs.umich.edu>
Date: Sun, 19 Apr 2009 04:55:58 -0700
Subject: X86: Implement the stul microop. This microop does a store and
 unlocks the requested address. The RISC86 microop ISA doesn't seem to have an
 equivalent to this, so I'm guessing that the store following an ldstl is
 automatically unlocking. We don't do it this way for performance reasons
 since the behavior is the same.

---
 src/arch/x86/isa/microops/ldstop.isa | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/arch/x86/isa/microops/ldstop.isa b/src/arch/x86/isa/microops/ldstop.isa
index 5df423ea9..f16a3b488 100644
--- a/src/arch/x86/isa/microops/ldstop.isa
+++ b/src/arch/x86/isa/microops/ldstop.isa
@@ -478,6 +478,8 @@ let {{
         microopClasses[name] = StoreOp
 
     defineMicroStoreOp('St', 'Mem = pick(Data, 2, dataSize);')
+    defineMicroStoreOp('Stul', 'Mem = pick(Data, 2, dataSize);',
+            mem_flags="Request::LOCKED")
     defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
     defineMicroStoreOp('Stupd', 'Mem = pick(Data, 2, dataSize);',
             'Base = merge(Base, EA - SegBase, addressSize);',
-- 
cgit v1.2.3