diff options
author | Gabe Black <gabeblack@google.com> | 2018-03-12 17:06:14 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-03-14 20:06:47 +0000 |
commit | 0f425ad5d590f670efac118b03e591579da21e84 (patch) | |
tree | d489726f84324dcc07128551d69fcf866f47e5ec /src/arch/x86/isa/insts/system/segmentation.py | |
parent | 9f8491ecbfb80696b62a5a878fe40f81a8a0d35c (diff) | |
download | gem5-0f425ad5d590f670efac118b03e591579da21e84.tar.xz |
x86: Replace the .serializing directive with .serialize_(before|after).
This makes it explicit which type of serialization you want, and also
makes it possible to make a macroop serialize before. The old
serializing directive was renamed .serialize_after in the microcode
assembler, and throughout the microcode implementation, and its
behavior is unchanged. More specifically, it still marks the last
microop within the macroop as IsSerializing and IsSerializeAfter.
The new .serialize_before directive does something similar and marks
the first microop as IsSerializing and IsSerializeBefore.
Change-Id: Ia53466c734c651c65400809de7ef903c4a6c3e7e
Reviewed-on: https://gem5-review.googlesource.com/9041
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/arch/x86/isa/insts/system/segmentation.py')
-rw-r--r-- | src/arch/x86/isa/insts/system/segmentation.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/arch/x86/isa/insts/system/segmentation.py b/src/arch/x86/isa/insts/system/segmentation.py index 3c8648127..cbaf94529 100644 --- a/src/arch/x86/isa/insts/system/segmentation.py +++ b/src/arch/x86/isa/insts/system/segmentation.py @@ -39,7 +39,7 @@ microcode = ''' def macroop LGDT_M { - .serializing + .serialize_after .adjust_env maxOsz # Get the limit @@ -52,7 +52,7 @@ def macroop LGDT_M def macroop LGDT_P { - .serializing + .serialize_after .adjust_env maxOsz rdip t7 @@ -71,7 +71,7 @@ def macroop LGDT_P def macroop LGDT_16_M { - .serializing + .serialize_after .adjust_env maxOsz # Get the limit @@ -85,7 +85,7 @@ def macroop LGDT_16_M def macroop LGDT_16_P { - .serializing + .serialize_after .adjust_env maxOsz rdip t7 @@ -100,7 +100,7 @@ def macroop LGDT_16_P def macroop LIDT_M { - .serializing + .serialize_after .adjust_env maxOsz # Get the limit @@ -113,7 +113,7 @@ def macroop LIDT_M def macroop LIDT_P { - .serializing + .serialize_after .adjust_env maxOsz rdip t7 @@ -132,7 +132,7 @@ def macroop LIDT_P def macroop LIDT_16_M { - .serializing + .serialize_after .adjust_env maxOsz # Get the limit @@ -146,7 +146,7 @@ def macroop LIDT_16_M def macroop LIDT_16_P { - .serializing + .serialize_after .adjust_env maxOsz rdip t7 @@ -161,7 +161,7 @@ def macroop LIDT_16_P def macroop LTR_R { - .serializing + .serialize_after chks reg, t0, TRCheck limm t4, 0, dataSize=8 srli t4, reg, 3, dataSize=2 @@ -178,7 +178,7 @@ def macroop LTR_R def macroop LTR_M { - .serializing + .serialize_after ld t5, seg, sib, disp, dataSize=2 chks t5, t0, TRCheck limm t4, 0, dataSize=8 @@ -196,7 +196,7 @@ def macroop LTR_M def macroop LTR_P { - .serializing + .serialize_after rdip t7 ld t5, seg, riprel, disp, dataSize=2 chks t5, t0, TRCheck @@ -215,7 +215,7 @@ def macroop LTR_P def macroop LLDT_R { - .serializing + .serialize_after chks reg, t0, InGDTCheck, flags=(EZF,) br label("end"), flags=(CEZF,) limm t4, 0, dataSize=8 @@ -232,7 +232,7 @@ end: def macroop LLDT_M { - .serializing + .serialize_after ld t5, seg, sib, disp, dataSize=2 chks t5, t0, InGDTCheck, flags=(EZF,) br label("end"), flags=(CEZF,) @@ -250,7 +250,7 @@ end: def macroop LLDT_P { - .serializing + .serialize_after rdip t7 ld t5, seg, riprel, disp, dataSize=2 chks t5, t0, InGDTCheck, flags=(EZF,) |