diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-04-19 04:55:58 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-04-19 04:55:58 -0700 |
commit | d90456a4868baa931ca089a471c2b9230830d848 (patch) | |
tree | e278446f1ec1b05566ff66db4c584def77d6c437 | |
parent | d2554ff0304af0d4b365894026b702b5714385d6 (diff) | |
download | gem5-d90456a4868baa931ca089a471c2b9230830d848.tar.xz |
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.
-rw-r--r-- | src/arch/x86/isa/microops/ldstop.isa | 2 |
1 files changed, 2 insertions, 0 deletions
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);', |