changeset d78df8ebc225 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=d78df8ebc225
description:
        X86: Some segment selectors can be used when "NULL".

diffstat:

1 file changed, 4 insertions(+), 1 deletion(-)
src/arch/x86/tlb.cc |    5 ++++-

diffs (15 lines):

diff -r b62d79c1990b -r d78df8ebc225 src/arch/x86/tlb.cc
--- a/src/arch/x86/tlb.cc       Sun Apr 19 03:40:08 2009 -0700
+++ b/src/arch/x86/tlb.cc       Sun Apr 19 03:41:10 2009 -0700
@@ -571,7 +571,10 @@
         if (!efer.lma || !csAttr.longMode) {
             DPRINTF(TLB, "Not in long mode. Checking segment protection.\n");
             // Check for a NULL segment selector.
-            if (!tc->readMiscRegNoEffect(MISCREG_SEG_SEL(seg)))
+            if (!(seg == SEGMENT_REG_TSG || seg == SYS_SEGMENT_REG_IDTR ||
+                        seg == SEGMENT_REG_HS || seg == SEGMENT_REG_LS ||
+                        seg == SEGMENT_REG_MS)
+                    && !tc->readMiscRegNoEffect(MISCREG_SEG_SEL(seg)))
                 return new GeneralProtection(0);
             bool expandDown = false;
             SegAttr attr = tc->readMiscRegNoEffect(MISCREG_SEG_ATTR(seg));
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to