X86: Implement the ldstl microop.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:55:43 +0000 (04:55 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:55:43 +0000 (04:55 -0700)
This microop does a load, checks that a store would succeed, and locks the
requested address.

src/arch/x86/isa/microops/ldstop.isa

index 24ddd0b43ed6514678929eb4803a316f8b1070f5..5df423ea9770a1b130dc34775ae366edfa506acc 100644 (file)
@@ -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, \