X86: Implement the stul microop.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:55:58 +0000 (04:55 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:55:58 +0000 (04:55 -0700)
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

index 5df423ea9770a1b130dc34775ae366edfa506acc..f16a3b4888cdb9578c20b33551e95413cd845bc1 100644 (file)
@@ -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);',