X86: Put the StoreCheck flag with the others, and don't collide with other flags.
authorGabe Black <gblack@eecs.umich.edu>
Thu, 23 Apr 2009 08:43:00 +0000 (01:43 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Thu, 23 Apr 2009 08:43:00 +0000 (01:43 -0700)
src/arch/x86/insts/microldstop.hh
src/arch/x86/isa/microops/ldstop.isa
src/arch/x86/tlb.cc
src/arch/x86/tlb.hh

index 1774454c3f6cf7ff95674d7d3ec75961fa63a225..ec9cb52b3448ce23c035e3f657043dee0ce4708d 100644 (file)
@@ -68,7 +68,8 @@ namespace X86ISA
     static const int FlagShift = 4;
     enum FlagBit {
         CPL0FlagBit = 1,
-        AddrSizeFlagBit = 2
+        AddrSizeFlagBit = 2,
+        StoreCheck = 4
     };
 
     /**
index f16a3b4888cdb9578c20b33551e95413cd845bc1..c4c57a9540bf80a304ba4e5c27a124de591d6baf 100644 (file)
@@ -439,9 +439,9 @@ let {{
 
     defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);')
     defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
-            'X86ISA::StoreCheck')
+            '(StoreCheck << FlagShift)')
     defineMicroLoadOp('Ldstl', 'Data = merge(Data, Mem, dataSize);',
-            'X86ISA::StoreCheck | Request::LOCKED')
+            '(StoreCheck << FlagShift) | Request::LOCKED')
     defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;')
 
     def defineMicroStoreOp(mnemonic, code, \
index 9b4a397ee9eed17b516382f184e342e704f5ce68..f8b5c33925270587b41296d4bd11ed4915d19e9f 100644 (file)
@@ -193,7 +193,7 @@ TLB::translate(RequestPtr req, ThreadContext *tc, Translation *translation,
     Addr vaddr = req->getVaddr();
     DPRINTF(TLB, "Translating vaddr %#x.\n", vaddr);
     uint32_t flags = req->getFlags();
-    bool storeCheck = flags & StoreCheck;
+    bool storeCheck = flags & (StoreCheck << FlagShift);
 
     int seg = flags & SegmentFlagMask;
 
index a9d3a4fa670bad0c9bcf194f4aa5a97bc1b5fed5..f55c26435dce1a1f46551a322ad3de3d007569b9 100644 (file)
@@ -79,8 +79,6 @@ namespace X86ISA
 {
     class Walker;
 
-    static const unsigned StoreCheck = 1 << NUM_SEGMENTREGS;
-
     class TLB : public BaseTLB
     {
       protected: