summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops/ldstop.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-10-21 18:44:50 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-10-21 18:44:50 -0700
commit4d15e4cf7b2c8eb1f2232e0cbcd09893e9cb9500 (patch)
treedcc029105a1066916a0734928092fc0f6da1eadf /src/arch/x86/isa/microops/ldstop.isa
parentd8494325f07695e810e51dffbf9daf5145b10d1a (diff)
downloadgem5-4d15e4cf7b2c8eb1f2232e0cbcd09893e9cb9500.tar.xz
X86: Implement the stupd microop ("store with update", not "stupid") and use it in ENTER.
--HG-- extra : convert_revision : 9151f701162d31ef26298497467c42b7b0ed85d5
Diffstat (limited to 'src/arch/x86/isa/microops/ldstop.isa')
-rw-r--r--src/arch/x86/isa/microops/ldstop.isa5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/x86/isa/microops/ldstop.isa b/src/arch/x86/isa/microops/ldstop.isa
index 32fefb5fa..c9ace4790 100644
--- a/src/arch/x86/isa/microops/ldstop.isa
+++ b/src/arch/x86/isa/microops/ldstop.isa
@@ -422,6 +422,11 @@ let {{
defineMicroStoreOp('St', 'Mem = Data;')
defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
+ defineMicroStoreOp('Stupd', '''
+ Mem = Data;
+ Base = merge(Base, EA - SegBase, addressSize);
+ ''');
+
iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
{"code": "Data = merge(Data, EA, dataSize);",