From d90456a4868baa931ca089a471c2b9230830d848 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 19 Apr 2009 04:55:58 -0700 Subject: [PATCH] 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);',