summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-04-19 04:55:43 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-04-19 04:55:43 -0700
commitd2554ff0304af0d4b365894026b702b5714385d6 (patch)
tree4b46ce009b9cfe05c86ad417df4d3cc9bb3b8e7e
parent1a8a765a5c2f7aeca0569ca8b7e7f653aaa9d8d7 (diff)
downloadgem5-d2554ff0304af0d4b365894026b702b5714385d6.tar.xz
X86: Implement the ldstl microop.
This microop does a load, checks that a store would succeed, and locks the requested address.
-rw-r--r--src/arch/x86/isa/microops/ldstop.isa2
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 24ddd0b43..5df423ea9 100644
--- a/src/arch/x86/isa/microops/ldstop.isa
+++ b/src/arch/x86/isa/microops/ldstop.isa
@@ -440,6 +440,8 @@ let {{
defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);')
defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
'X86ISA::StoreCheck')
+ defineMicroLoadOp('Ldstl', 'Data = merge(Data, Mem, dataSize);',
+ 'X86ISA::StoreCheck | Request::LOCKED')
defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;')
def defineMicroStoreOp(mnemonic, code, \