summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microasm.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2008-06-12 00:50:10 -0400
committerGabe Black <gblack@eecs.umich.edu>2008-06-12 00:50:10 -0400
commitfa7c81c6df5fdc1a17ffebbf431cb57ac84d79d0 (patch)
tree328f340b1c0d9d34a2be04fa4486b05ac1bf18e6 /src/arch/x86/isa/microasm.isa
parent6bd9cf3594b0150c8cb39a23ca2cfb465b6e09bb (diff)
downloadgem5-fa7c81c6df5fdc1a17ffebbf431cb57ac84d79d0.tar.xz
X86: Change what the microop chks does.
Instead of computing the segment descriptor address, this now checks if a selector value/descriptor are legal for a particular purpose.
Diffstat (limited to 'src/arch/x86/isa/microasm.isa')
-rw-r--r--src/arch/x86/isa/microasm.isa5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/x86/isa/microasm.isa b/src/arch/x86/isa/microasm.isa
index 18abdf09b..735a7722c 100644
--- a/src/arch/x86/isa/microasm.isa
+++ b/src/arch/x86/isa/microasm.isa
@@ -81,6 +81,11 @@ let {{
for letter in ("C", "D", "E", "F", "G", "S"):
assembler.symbols["%ss" % letter.lower()] = "SEGMENT_REG_%sS" % letter
+ # Add in symbols for the various checks of segment selectors.
+ for check in ("NoCheck", "CSCheck", "CallGateCheck",
+ "SSCheck", "IretCheck", "IntCSCheck"):
+ assembler.symbols[check] = "Seg%s" % check
+
for reg in ("TR", "IDTR"):
assembler.symbols[reg.lower()] = "SYS_SEGMENT_REG_%s" % reg