gcc: Clean-up of non-C++0x compliant code, first steps
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 19 Mar 2012 10:36:09 +0000 (06:36 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 19 Mar 2012 10:36:09 +0000 (06:36 -0400)
This patch cleans up a number of minor issues aiming to get closer to
compliance with the C++0x standard as interpreted by gcc and clang
(compile with std=c++0x and -pedantic-errors). In particular, the
patch cleans up enums where the last item was succeded by a comma,
namespaces closed by a curcly brace followed by a semi-colon, and the
use of the GNU-extension typeof (replaced by templated functions). It
does not address variable-length arrays, zero-size arrays, anonymous
structs, range expressions in switch statements, and the use of long
long. The generated CPU code also has a large number of issues that
remain to be fixed, mainly related to overflows in implicit constant
conversion (due to shifts).

56 files changed:
src/arch/alpha/isa/main.isa
src/arch/alpha/isa_traits.hh
src/arch/alpha/types.hh
src/arch/arm/intregs.hh
src/arch/arm/isa/templates/neon.isa
src/arch/arm/linux/atag.hh
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/nativetrace.cc
src/arch/arm/pagetable.hh
src/arch/arm/predecoder.hh
src/arch/arm/table_walker.hh
src/arch/arm/utility.hh
src/arch/arm/vtophys.hh
src/arch/x86/bios/e820.hh
src/arch/x86/emulenv.hh
src/arch/x86/faults.hh
src/arch/x86/isa/macroop.isa
src/arch/x86/isa_traits.hh
src/arch/x86/locked_mem.hh
src/arch/x86/mmapped_ipr.hh
src/arch/x86/nativetrace.cc
src/arch/x86/predecoder.hh
src/arch/x86/regs/float.hh
src/arch/x86/regs/int.hh
src/arch/x86/regs/misc.hh
src/arch/x86/regs/segment.hh
src/arch/x86/tlb.cc
src/arch/x86/types.hh
src/arch/x86/utility.hh
src/arch/x86/vtophys.hh
src/base/bitmap.cc
src/base/callback.cc
src/base/range.cc
src/base/range_map.hh
src/base/str.cc
src/base/vnc/convert.hh
src/cpu/base_dyn_inst.hh
src/cpu/exetrace.cc
src/cpu/inorder/inorder_dyn_inst.hh
src/cpu/inorder/pipeline_traits.hh
src/cpu/inorder/resource.hh
src/cpu/inteltrace.cc
src/cpu/o3/dyn_inst.hh
src/cpu/o3/thread_context.hh
src/cpu/simple_thread.hh
src/cpu/static_inst.hh
src/cpu/thread_context.hh
src/cpu/thread_state.hh
src/dev/i8254xGBe.hh
src/dev/ide_atareg.h
src/dev/sinicreg.hh
src/python/m5/params.py
src/sim/byteswap.hh
src/sim/eventq.hh
src/sim/serialize.hh

index e87a184c346eccda693e82bce708cd57d70bf8db..163e0a26fa423bfd6d07ee7ccbaa9206fa78beaf 100644 (file)
@@ -222,7 +222,7 @@ output header {{
         /// this class and derived classes.  Maybe these should really
         /// live here and not in the AlphaISA namespace.
         enum DependenceTags {
-            FP_Base_DepTag = AlphaISA::FP_Base_DepTag,
+            FP_Base_DepTag = AlphaISA::FP_Base_DepTag
         };
 
         /// Constructor.
index 97cb845bf4375ba4eee94d781399718949e1a3a0..5738ccdb1b45e4a1fc924d48a778d467ffa4e86d 100644 (file)
@@ -119,7 +119,7 @@ enum {
     MachineBytes = 8,
     WordBytes = 4,
     HalfwordBytes = 2,
-    ByteBytes = 1,
+    ByteBytes = 1
 };
 
 // return a no-op instruction... used for instruction fetch faults
index 645e091050deb11b619d59d552d0ce191f206385..b1411d46e2baa2078417cd83a2fe03720e60f25b 100644 (file)
@@ -48,7 +48,7 @@ enum annotes
 {
     ANNOTE_NONE = 0,
     // An impossible number for instruction annotations
-    ITOUCH_ANNOTE = 0xffffffff,
+    ITOUCH_ANNOTE = 0xffffffff
 };
 
 } // namespace AlphaISA
index c26e362112a0d783c0ebac98facc6d3e70fa730c..3fe00b765eb88939035b797cb218ff1ecbf61d72 100644 (file)
@@ -239,7 +239,7 @@ enum IntRegIndex
     INTREG_R6_FIQ = INTREG_R6,
     INTREG_R7_FIQ = INTREG_R7,
     INTREG_PC_FIQ = INTREG_PC,
-    INTREG_R15_FIQ = INTREG_R15,
+    INTREG_R15_FIQ = INTREG_R15
 };
 
 typedef IntRegIndex IntRegMap[NUM_ARCH_INTREGS];
index fe3a026b8a6af301fe0d0653004569e126ff6faa..573d245b89769dd19c182ad325889e810a453137 100644 (file)
@@ -234,12 +234,16 @@ def template NeonEqualRegExecute {{
 }};
 
 output header {{
-    uint16_t nextBiggerType(uint8_t);
-    uint32_t nextBiggerType(uint16_t);
-    uint64_t nextBiggerType(uint32_t);
-    int16_t nextBiggerType(int8_t);
-    int32_t nextBiggerType(int16_t);
-    int64_t nextBiggerType(int32_t);
+        template <typename T>
+            struct bigger_type_t;
+
+        template<> struct bigger_type_t<uint8_t> { typedef uint16_t type; };
+        template<> struct bigger_type_t<uint16_t> { typedef uint32_t type; };
+        template<> struct bigger_type_t<uint32_t> { typedef uint64_t type; };
+
+        template<> struct bigger_type_t<int8_t> { typedef int16_t type; };
+        template<> struct bigger_type_t<int16_t> { typedef int32_t type; };
+        template<> struct bigger_type_t<int32_t> { typedef int64_t type; };
 }};
 
 def template NeonUnequalRegExecute {{
@@ -247,7 +251,7 @@ def template NeonUnequalRegExecute {{
     Fault %(class_name)s<Element>::execute(%(CPU_exec_context)s *xc,
             Trace::InstRecord *traceData) const
     {
-        typedef typeof(nextBiggerType((Element)0)) BigElement;
+        typedef typename bigger_type_t<Element>::type BigElement;
         Fault fault = NoFault;
         %(op_decl)s;
         %(op_rd)s;
index 71271dac29a9501722afed239c212f940c53fadb..88bd2da4c893547e105c1d2bbabcb1c05a6a4760 100644 (file)
@@ -51,7 +51,7 @@ enum {
     RevTag    = 0x54410007,
     SerialTag = 0x54410006,
     CmdTag    = 0x54410009,
-    NoneTag   = 0x00000000,
+    NoneTag   = 0x00000000
 };
 
 class AtagHeader
index 286ecc1de6f6b39c196d99d6482290360c37bb7c..73f92cabb9362fc40ab881437442c5f2434a5a58 100644 (file)
@@ -499,4 +499,4 @@ decodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2)
     return NUM_MISCREGS;
 }
 
-};
+}
index a20fd0c617855bc2357e8e598eb0ebe923af6f74..8fba5101b3583de0fe7ca5d3a87e270dc3cab893 100644 (file)
@@ -529,6 +529,6 @@ namespace ArmISA
       Bitfield<31>    l2rstDISABLE_monitor;
    EndBitUnion(L2CTLR)
 
-};
+}
 
 #endif // __ARCH_ARM_MISCREGS_HH__
index 875ceae3189a4c938b3039836f930538df8344ef..21dff8b7cfbace6746b2d779f7b2daa4df49a0b7 100644 (file)
@@ -226,4 +226,4 @@ Trace::ArmNativeTrace *
 ArmNativeTraceParams::create()
 {
     return new Trace::ArmNativeTrace(this);
-};
+}
index 2c86d3d84d4acb4f0f7a3351b632893082ba3d65..898ab31915d8242a2564ca803c4654ada7d8af04 100644 (file)
@@ -208,6 +208,6 @@ struct TlbEntry
 
 
 
-};
+}
 #endif // __ARCH_ARM_PAGETABLE_H__
 
index 188f675bb2286ee3aedd6a6723a0458c51a3ff13..87ba1777c2fa94ee37168d4a309bf73483d091a0 100644 (file)
@@ -149,6 +149,6 @@ namespace ArmISA
             return thisEmi;
         }
     };
-};
+}
 
 #endif // __ARCH_ARM_PREDECODER_HH__
index 22d2da5b30c633b579c9483f324827522648692b..b5099bb27d4ab8917bd76b5a0385848579facb48 100644 (file)
@@ -325,7 +325,7 @@ class TableWalker : public MemObject
 
     /** Queue of requests that have passed are waiting because the walker is
      * currently busy. */
-    std::list<WalkerState *> pendingQueue;;
+    std::list<WalkerState *> pendingQueue;
 
 
     /** Port to issue translation requests from */
index ffd41791c5cc82c175a8b05663f0fbf0c41a3b3b..b3b400e3cbb986f70bf42fe51b4a6198373b59d6 100644 (file)
@@ -182,6 +182,6 @@ getExecutingAsid(ThreadContext *tc)
     return tc->readMiscReg(MISCREG_CONTEXTIDR);
 }
 
-};
+}
 
 #endif
index 12a6c6ec69bbc637836222f8eb33d6190dd3f2d2..56181d31804f1c6ac507dc94cff465bbfe2d3325 100644 (file)
@@ -45,7 +45,7 @@ namespace ArmISA {
     Addr vtophys(Addr vaddr);
     Addr vtophys(ThreadContext *tc, Addr vaddr);
     bool virtvalid(ThreadContext *tc, Addr vaddr);
-};
+}
 
 #endif // __ARCH_ARM_VTOPHYS_H__
 
index b61708050d057ea70f0ae2330b36877cbc00a59e..5348481b6c043ec07cf08c5c740faa7376e341db 100644 (file)
@@ -77,6 +77,6 @@ namespace X86ISA
 
         void writeTo(PortProxy& proxy, Addr countAddr, Addr addr);
     };
-};
+}
 
 #endif // __ARCH_X86_BIOS_E820_HH__
index ac707d808e0681a6d827147d7e0155680b164225..719447bf8c8daec320c88096e92fd5dcd8fda07c 100644 (file)
@@ -71,6 +71,6 @@ namespace X86ISA
         void doModRM(const ExtMachInst & machInst);
         void setSeg(const ExtMachInst & machInst);
     };
-};
+}
 
 #endif // __ARCH_X86_TYPES_HH__
index 94a2ffcc2784e08cfcbfb82a347288ea900ceaa7..637f131e08cae72af0b48bd50c2dbf6b813ad81e 100644 (file)
@@ -419,6 +419,6 @@ namespace X86ISA
             return true;
         }
     };
-};
+}
 
 #endif // __ARCH_X86_FAULTS_HH__
index f05015834d5fa29d0296bb8745c039428ed2443d..94b17ff4c2cde2ee49691dffd14dfff97849a7f3 100644 (file)
@@ -89,7 +89,7 @@ def template MacroDeclare {{
                 std::string
                 generateDisassembly(Addr pc, const SymbolTable *symtab) const;
             };
-        };
+        }
 }};
 
 def template MacroDisassembly {{
index 09a28021558637c6be89331c755847241eecbc8d..34c5b5ebc69d9a2a4562beb22dee51bc967581b8 100644 (file)
@@ -85,6 +85,6 @@ namespace X86ISA
         SixtyFourBitMode                // Behave as if we're in 64 bit
                                         // mode (this doesn't actually matter).
     };
-};
+}
 
 #endif // __ARCH_X86_ISATRAITS_HH__
index e1d289ee95b7389feae156b5f20781f2c0d904d7..49648699727d0c7d070d3eb27ecfd042998939b3 100644 (file)
@@ -53,6 +53,6 @@ namespace X86ISA
     {
         return true;
     }
-};
+}
 
 #endif // __ARCH_X86_LOCKEDMEM_HH__
index 054f280a8d114d811021196f7a6b33dbba391dd8..4c32923881ffe0febdbd07d424f803fc973be82e 100644 (file)
@@ -78,6 +78,6 @@ namespace X86ISA
         xc->setMiscReg(index, gtoh(data));
         return xc->getCpuPtr()->ticks(1);
     }
-};
+}
 
 #endif // __ARCH_X86_MMAPPEDIPR_HH__
index 557508ee71e64e9360a3107ea622480407d8bcee..b7d903a1b20d34384ec4c605885640027a92d420 100644 (file)
@@ -197,4 +197,4 @@ Trace::X86NativeTrace *
 X86NativeTraceParams::create()
 {
     return new Trace::X86NativeTrace(this);
-};
+}
index 49938dd16f1b3f5defec7d99d79fbe398d7d90df..f7c63684d16358816eee3d9b3fa5c8978bf3c7ed 100644 (file)
@@ -234,6 +234,6 @@ namespace X86ISA
             return emi;
         }
     };
-};
+}
 
 #endif // __ARCH_X86_PREDECODER_HH__
index 5ac33c40f233a09088be60d8f2223a655c86e901..bdcffb86bbacf98e786d39ec8669216acb414a66 100644 (file)
@@ -150,6 +150,6 @@ namespace X86ISA
     {
         return FLOATREG_FPR((top + index + 8) % 8);
     }
-};
+}
 
 #endif // __ARCH_X86_FLOATREGS_HH__
index 2a13710517d6789760fd84ee1f7151090b4b5845..0a682ef5478c63d794297c994f04c82c6f953d7f 100644 (file)
@@ -178,6 +178,6 @@ namespace X86ISA
             index = (index - 4) | foldBit;
         return (IntRegIndex)index;
     }
-};
+}
 
 #endif // __ARCH_X86_INTREGS_HH__
index 74c6bd133f08859d9e96d08c49d0a01ce274826b..24420e8d5f41474b8d39f2cbc1481f22beff88d9 100644 (file)
@@ -915,6 +915,6 @@ namespace X86ISA
         Bitfield<11> enable;
         Bitfield<8> bsp;
     EndBitUnion(LocalApicBase)
-};
+}
 
 #endif // __ARCH_X86_INTREGS_HH__
index 7379341523ce5419b10617210dc372700a8ae85a..cebb1235b5be998182e1d441f59c627e0cb065a9 100644 (file)
@@ -63,6 +63,6 @@ namespace X86ISA
 
         NUM_SEGMENTREGS
     };
-};
+}
 
 #endif // __ARCH_X86_SEGMENTREGS_HH__
index b7d0b828cb88a6cac123f443fd02e5cd4c413903..10ef217e1cea92548dc282049ed269321d6ff051 100644 (file)
@@ -384,7 +384,7 @@ TLB::translate(RequestPtr req, ThreadContext *tc, Translation *translation,
         }
     }
     return NoFault;
-};
+}
 
 Fault
 TLB::translateAtomic(RequestPtr req, ThreadContext *tc, Mode mode)
index 8b1469c2d9b5fe96e3b97c3b6a241441c4c7eb72..c7e824fb7eee73ffca0f84f21cf2cd2713847e31 100644 (file)
@@ -278,7 +278,7 @@ namespace X86ISA
         }
     };
 
-};
+}
 
 namespace __hash_namespace {
     template<>
index f120ea6c744bcb4afabcb67f0c32e96ec2dbc5a7..f3b0d3fa11f6a3d11ccc9356f8bd0f296fbe3378 100644 (file)
@@ -105,6 +105,6 @@ namespace X86ISA
         return 0;
     }
 
-};
+}
 
 #endif // __ARCH_X86_UTILITY_HH__
index 10522313cac0e0256e94ac6fb9a1a7d543bb1cac..7b987f6df497876b889895ffbfc388a8a268a827 100644 (file)
@@ -50,6 +50,6 @@ namespace X86ISA
 Addr vtophys(Addr vaddr);
 Addr vtophys(ThreadContext *tc, Addr vaddr);
 
-};
+}
 
 #endif // __ARCH_X86_VTOPHYS_HH__
index 08425d74f1f317e4da2df1aacd992603c4e0aa9c..80d836b2f0fe0670ba7d5e299f44e29549acc95e 100644 (file)
@@ -70,11 +70,13 @@ Bitmap::write(std::ostream *bmp) const
         // For further information see:
         //   http://en.wikipedia.org/wiki/BMP_file_format
         Magic magic = {{'B','M'}};
-        Header header = {sizeof(VideoConvert::Rgb8888) * width * height,
-                                0, 0, 54};
-        Info info = {sizeof(Info), width, height, 1,
-                    sizeof(VideoConvert::Rgb8888) * 8, 0,
-                    sizeof(VideoConvert::Rgb8888) * width * height, 1, 1, 0, 0};
+        Header header = {
+            static_cast<uint32_t>(sizeof(VideoConvert::Rgb8888)) *
+            width * height, 0, 0, 54};
+        Info info = {static_cast<uint32_t>(sizeof(Info)), width, height, 1,
+                     static_cast<uint32_t>(sizeof(VideoConvert::Rgb8888)) * 8,
+                     0, static_cast<uint32_t>(sizeof(VideoConvert::Rgb8888)) *
+                     width * height, 1, 1, 0, 0};
 
         char *p = headerBuffer = new char[sizeofHeaderBuffer];
         memcpy(p, &magic, sizeof(Magic));
index e9f662b190f78f2264963de0ada0a2ecfbe6bad9..ec24451385a823ca691713f7749d648e9e7d83fd 100644 (file)
@@ -28,7 +28,7 @@
  * Authors: Nathan Binkert
  */
 
-#import "base/callback.hh"
+#include "base/callback.hh"
 
 CallbackQueue::~CallbackQueue()
 {
index 442e5fdf81b1d88e91e9b6a93b96d427ef943d44..c50dff056b90cdfd32ee81f2b68c7a5b488af223 100644 (file)
@@ -73,13 +73,13 @@ template<> bool \
 __parse_range(const std::string &s, type &first, type &last) \
 { return __x_parse_range(s, first, last); }
 
-RANGE_PARSE(unsigned long long);
-RANGE_PARSE(signed long long);
-RANGE_PARSE(unsigned long);
-RANGE_PARSE(signed long);
-RANGE_PARSE(unsigned int);
-RANGE_PARSE(signed int);
-RANGE_PARSE(unsigned short);
-RANGE_PARSE(signed short);
-RANGE_PARSE(unsigned char);
-RANGE_PARSE(signed char);
+RANGE_PARSE(unsigned long long)
+RANGE_PARSE(signed long long)
+RANGE_PARSE(unsigned long)
+RANGE_PARSE(signed long)
+RANGE_PARSE(unsigned int)
+RANGE_PARSE(signed int)
+RANGE_PARSE(unsigned short)
+RANGE_PARSE(signed short)
+RANGE_PARSE(unsigned char)
+RANGE_PARSE(signed char)
index 5d6547f9ba89395dab511b8116828061fb95da19..d6df32e0845d9e5fe5c0cbd1c2080096f1f1e511 100644 (file)
@@ -32,6 +32,7 @@
 #define __BASE_RANGE_MAP_HH__
 
 #include <map>
+#include <utility>
 
 #include "base/range.hh"
 
@@ -95,7 +96,7 @@ class range_map
         if (intersect(r))
             return tree.end();
 
-        return tree.insert(std::make_pair<Range<T>,V>(r, d)).first;
+        return tree.insert(std::make_pair(r, d)).first;
     }
 
     size_t
index 1e2be95a8819bcc573243e88d0c9c41f2221635a..45d3107b087964c4eba73c203dbdeb3a524b245d 100644 (file)
@@ -324,17 +324,17 @@ template<> \
 bool to_number<type>(const string &value, type &retval) \
 { return __to_number(value, retval); }
 
-STN(unsigned long long);
-STN(signed long long);
-STN(unsigned long);
-STN(signed long);
-STN(unsigned int);
-STN(signed int);
-STN(unsigned short);
-STN(signed short);
-STN(unsigned char);
-STN(signed char);
-STN(char);
+STN(unsigned long long)
+STN(signed long long)
+STN(unsigned long)
+STN(signed long)
+STN(unsigned int)
+STN(signed int)
+STN(unsigned short)
+STN(signed short)
+STN(unsigned char)
+STN(signed char)
+STN(char)
 
 template<>
 bool to_number<bool>(const string &value, bool &retval)
index 17df0747b94e3da542081663072b9dc350aee165..d6c4ea18f2ab2c242ffc5159306eb569b50b6b3b 100644 (file)
@@ -61,7 +61,7 @@ class VideoConvert
         bgr444,
         bgr4444,
         rgb444,
-        rgb4444,
+        rgb4444
     };
 
     // supports bpp32 RGB (bmp) and bpp16 5:6:5 mode BGR (linux)
index 7715ef57f72d05a41dcc3b7ed2c7d61a837ede31..900a98aa034afc7cb1ca611e8c2e48170051fef8 100644 (file)
@@ -96,7 +96,7 @@ class BaseDynInst : public FastAlloc, public RefCounted
 
     enum {
         MaxInstSrcRegs = TheISA::MaxInstSrcRegs,        /// Max source regs
-        MaxInstDestRegs = TheISA::MaxInstDestRegs,      /// Max dest regs
+        MaxInstDestRegs = TheISA::MaxInstDestRegs       /// Max dest regs
     };
 
     /** The StaticInst used by this BaseDynInst. */
index 0b21a1270cae3d800e6b7c7665cf0bfee2fc3ccd..fdefcc98053b97fc589ff7918b7f774176c0d9ac 100644 (file)
@@ -171,4 +171,4 @@ Trace::ExeTracer *
 ExeTracerParams::create()
 {
     return new Trace::ExeTracer(this);
-};
+}
index 48620475a0b96a24ab8523aa90e5253b783331d5..4b48a157b7c03bd58e5adbc3f6df354b8eb25adf 100644 (file)
@@ -103,7 +103,7 @@ class InOrderDynInst : public FastAlloc, public RefCounted
 
     enum {
         MaxInstSrcRegs = TheISA::MaxInstSrcRegs,        /// Max source regs
-        MaxInstDestRegs = TheISA::MaxInstDestRegs,      /// Max dest regs
+        MaxInstDestRegs = TheISA::MaxInstDestRegs       /// Max dest regs
     };
 
   public:
index dd12a8f1dc6456b1fa72e27851095276309ea33a..5df61368f797d0c9131fc0b73c65b71b99519ce2 100644 (file)
@@ -77,7 +77,7 @@ namespace ThePipeline {
     //////////////////////////
     typedef ResourceSked ResSchedule;
     typedef ResourceSked* RSkedPtr;
-};
+}
 
 
 
index 8822a3620dde5af837cd9656361bf81d9f2d5945..3c1a8cc470e802d2995af82e18e4c559a268056b 100644 (file)
@@ -263,7 +263,7 @@ class ResourceEvent : public Event
     /// (for InOrderCPU model).
     /// check src/sim/eventq.hh for more event priorities.
     enum InOrderPriority {
-        Resource_Event_Pri = 45,
+        Resource_Event_Pri = 45
     };
 
     /** The Resource Slot that this event is servicing */
index 0d1d003d199fbbf1fcdf9d1b942944c34ac72312..05bdc64d093f734652474117a7bd95eaf2ef27d8 100644 (file)
@@ -67,4 +67,4 @@ Trace::IntelTrace *
 IntelTraceParams::create()
 {
     return new Trace::IntelTrace(this);
-};
+}
index 1b101ede930a0cb6bbb737cb352a3945d56ed19c..ed947d92fe1f8edf0d69445fab0fcd8af4294fc3 100644 (file)
@@ -81,7 +81,7 @@ class BaseO3DynInst : public BaseDynInst<Impl>
 
     enum {
         MaxInstSrcRegs = TheISA::MaxInstSrcRegs,        //< Max source regs
-        MaxInstDestRegs = TheISA::MaxInstDestRegs,      //< Max dest regs
+        MaxInstDestRegs = TheISA::MaxInstDestRegs       //< Max dest regs
     };
 
   public:
index ae76176ce3eb48137cf720acc92eb712f22ce046..178a344f9fc4ca5b780d5a5255e58c7efadd4a58 100755 (executable)
@@ -50,7 +50,7 @@
 class EndQuiesceEvent;
 namespace Kernel {
     class Statistics;
-};
+}
 
 /**
  * Derived ThreadContext class for use with the O3CPU.  It
index ceab53c7910357c6e611c43148b4291ffef3e657..b1b8a66e42a47c12e0268cfa22d512eb8ab0a9aa 100644 (file)
@@ -73,8 +73,8 @@ class ProfileNode;
 namespace TheISA {
     namespace Kernel {
         class Statistics;
-    };
-};
+    }
+}
 
 /**
  * The SimpleThread object provides a combination of the ThreadState
index 7c5fcaa3aa4bd53f8fde98f67dde487bba8d4468..db2cd817d85cdffcb737694921015888a7f251e5 100644 (file)
@@ -87,7 +87,7 @@ class StaticInst : public RefCounted
 
     enum {
         MaxInstSrcRegs = TheISA::MaxInstSrcRegs,        //< Max source regs
-        MaxInstDestRegs = TheISA::MaxInstDestRegs,      //< Max dest regs
+        MaxInstDestRegs = TheISA::MaxInstDestRegs       //< Max dest regs
     };
 
     /// Set of boolean static instruction properties.
index 119de1fe0b30790d9606b1d1c38c3bfc9c29e9ea..220c6cfc5467def9ce7b54723342b43bbf38e263 100644 (file)
@@ -70,8 +70,8 @@ class System;
 namespace TheISA {
     namespace Kernel {
         class Statistics;
-    };
-};
+    }
+}
 
 /**
  * ThreadContext is the external interface to all thread state for
index 15304981211d789d29a1dc1757aa92d6e5e008c8..3f58e4f146595eb06cab65b12319e172e7c537a4 100644 (file)
@@ -45,8 +45,8 @@ class ProfileNode;
 namespace TheISA {
     namespace Kernel {
         class Statistics;
-    };
-};
+    }
+}
 
 class Checkpoint;
 
index 1e50be1653baa14be25fc56c7aa87dc3672baee6..7c31222ed6f4f4be670fa2c9dd02d34bff0264cc 100644 (file)
@@ -430,7 +430,7 @@ class IGbE : public EtherDevice
         Addr tsoMss;
         Addr tsoTotalLen;
         Addr tsoUsedLen;
-        Addr tsoPrevSeq;;
+        Addr tsoPrevSeq;
         Addr tsoPktPayloadBytes;
         bool tsoLoadedHeader;
         bool tsoPktHasHeader;
index b9f1d9e0f202b2ca4cc6e816c5ec48ca2d0996be..d19a75462815e20953bb506617e1f6c65dd3d5a7 100644 (file)
@@ -33,7 +33,7 @@
 #ifndef _DEV_ATA_ATAREG_H_
 #define _DEV_ATA_ATAREG_H_
 
-#if defined(linux)
+#if defined(__linux__)
 #include <endian.h>
 #elif defined(__sun)
 #include <sys/isa_defs.h>
index 43dc46dc4c11f9eac8b9403d2f28c33441da4ffe..540e690b059e70d0e726f795fcf6a4366aec3189 100644 (file)
@@ -31,8 +31,8 @@
 #ifndef __DEV_SINICREG_HH__
 #define __DEV_SINICREG_HH__
 
-#define __SINIC_REG32(NAME, VAL) static const uint32_t NAME = (VAL)
-#define __SINIC_REG64(NAME, VAL) static const uint64_t NAME = (VAL)
+#define __SINIC_REG32(NAME, VAL) static const uint32_t NAME = (VAL);
+#define __SINIC_REG64(NAME, VAL) static const uint64_t NAME = (VAL);
 
 #define __SINIC_VAL32(NAME, OFFSET, WIDTH) \
         static const uint32_t NAME##_width = WIDTH; \
@@ -61,114 +61,114 @@ static const int VirtualShift = 8;
 static const int VirtualMask = 0xff;
 
 // Registers
-__SINIC_REG32(Config,        0x00); // 32: configuration register
-__SINIC_REG32(Command,       0x04); // 32: command register
-__SINIC_REG32(IntrStatus,    0x08); // 32: interrupt status
-__SINIC_REG32(IntrMask,      0x0c); // 32: interrupt mask
-__SINIC_REG32(RxMaxCopy,     0x10); // 32: max bytes per rx copy
-__SINIC_REG32(TxMaxCopy,     0x14); // 32: max bytes per tx copy
-__SINIC_REG32(ZeroCopySize,  0x18); // 32: bytes to copy if below threshold
-__SINIC_REG32(ZeroCopyMark,  0x1c); // 32: only zero-copy above this threshold
-__SINIC_REG32(VirtualCount,  0x20); // 32: number of virutal NICs
-__SINIC_REG32(RxMaxIntr,     0x24); // 32: max receives per interrupt
-__SINIC_REG32(RxFifoSize,    0x28); // 32: rx fifo capacity in bytes
-__SINIC_REG32(TxFifoSize,    0x2c); // 32: tx fifo capacity in bytes
-__SINIC_REG32(RxFifoLow,     0x30); // 32: rx fifo low watermark
-__SINIC_REG32(TxFifoLow,     0x34); // 32: tx fifo low watermark
-__SINIC_REG32(RxFifoHigh,    0x38); // 32: rx fifo high watermark
-__SINIC_REG32(TxFifoHigh,    0x3c); // 32: tx fifo high watermark
-__SINIC_REG32(RxData,        0x40); // 64: receive data
-__SINIC_REG32(RxDone,        0x48); // 64: receive done
-__SINIC_REG32(RxWait,        0x50); // 64: receive done (busy wait)
-__SINIC_REG32(TxData,        0x58); // 64: transmit data
-__SINIC_REG32(TxDone,        0x60); // 64: transmit done
-__SINIC_REG32(TxWait,        0x68); // 64: transmit done (busy wait)
-__SINIC_REG32(HwAddr,        0x70); // 64: mac address
-__SINIC_REG32(RxStatus,      0x78);
-__SINIC_REG32(Size,          0x80); // register addres space size
+__SINIC_REG32(Config,        0x00) // 32: configuration register
+__SINIC_REG32(Command,       0x04) // 32: command register
+__SINIC_REG32(IntrStatus,    0x08) // 32: interrupt status
+__SINIC_REG32(IntrMask,      0x0c) // 32: interrupt mask
+__SINIC_REG32(RxMaxCopy,     0x10) // 32: max bytes per rx copy
+__SINIC_REG32(TxMaxCopy,     0x14) // 32: max bytes per tx copy
+__SINIC_REG32(ZeroCopySize,  0x18) // 32: bytes to copy if below threshold
+__SINIC_REG32(ZeroCopyMark,  0x1c) // 32: only zero-copy above this threshold
+__SINIC_REG32(VirtualCount,  0x20) // 32: number of virutal NICs
+__SINIC_REG32(RxMaxIntr,     0x24) // 32: max receives per interrupt
+__SINIC_REG32(RxFifoSize,    0x28) // 32: rx fifo capacity in bytes
+__SINIC_REG32(TxFifoSize,    0x2c) // 32: tx fifo capacity in bytes
+__SINIC_REG32(RxFifoLow,     0x30) // 32: rx fifo low watermark
+__SINIC_REG32(TxFifoLow,     0x34) // 32: tx fifo low watermark
+__SINIC_REG32(RxFifoHigh,    0x38) // 32: rx fifo high watermark
+__SINIC_REG32(TxFifoHigh,    0x3c) // 32: tx fifo high watermark
+__SINIC_REG32(RxData,        0x40) // 64: receive data
+__SINIC_REG32(RxDone,        0x48) // 64: receive done
+__SINIC_REG32(RxWait,        0x50) // 64: receive done (busy wait)
+__SINIC_REG32(TxData,        0x58) // 64: transmit data
+__SINIC_REG32(TxDone,        0x60) // 64: transmit done
+__SINIC_REG32(TxWait,        0x68) // 64: transmit done (busy wait)
+__SINIC_REG32(HwAddr,        0x70) // 64: mac address
+__SINIC_REG32(RxStatus,      0x78)
+__SINIC_REG32(Size,          0x80) // register addres space size
 
 // Config register bits
-__SINIC_VAL32(Config_ZeroCopy, 12, 1); // enable zero copy
-__SINIC_VAL32(Config_DelayCopy,11, 1); // enable delayed copy
-__SINIC_VAL32(Config_RSS,      10, 1); // enable receive side scaling
-__SINIC_VAL32(Config_RxThread,  9, 1); // enable receive threads
-__SINIC_VAL32(Config_TxThread,  8, 1); // enable transmit thread
-__SINIC_VAL32(Config_Filter,    7, 1); // enable receive filter
-__SINIC_VAL32(Config_Vlan,      6, 1); // enable vlan tagging
-__SINIC_VAL32(Config_Vaddr,     5, 1); // enable virtual addressing
-__SINIC_VAL32(Config_Desc,      4, 1); // enable tx/rx descriptors
-__SINIC_VAL32(Config_Poll,      3, 1); // enable polling
-__SINIC_VAL32(Config_IntEn,     2, 1); // enable interrupts
-__SINIC_VAL32(Config_TxEn,      1, 1); // enable transmit
-__SINIC_VAL32(Config_RxEn,      0, 1); // enable receive
+__SINIC_VAL32(Config_ZeroCopy, 12, 1) // enable zero copy
+__SINIC_VAL32(Config_DelayCopy,11, 1) // enable delayed copy
+__SINIC_VAL32(Config_RSS,      10, 1) // enable receive side scaling
+__SINIC_VAL32(Config_RxThread,  9, 1) // enable receive threads
+__SINIC_VAL32(Config_TxThread,  8, 1) // enable transmit thread
+__SINIC_VAL32(Config_Filter,    7, 1) // enable receive filter
+__SINIC_VAL32(Config_Vlan,      6, 1) // enable vlan tagging
+__SINIC_VAL32(Config_Vaddr,     5, 1) // enable virtual addressing
+__SINIC_VAL32(Config_Desc,      4, 1) // enable tx/rx descriptors
+__SINIC_VAL32(Config_Poll,      3, 1) // enable polling
+__SINIC_VAL32(Config_IntEn,     2, 1) // enable interrupts
+__SINIC_VAL32(Config_TxEn,      1, 1) // enable transmit
+__SINIC_VAL32(Config_RxEn,      0, 1) // enable receive
 
 // Command register bits
-__SINIC_VAL32(Command_Intr,  1, 1); // software interrupt
-__SINIC_VAL32(Command_Reset, 0, 1); // reset chip
+__SINIC_VAL32(Command_Intr,  1, 1) // software interrupt
+__SINIC_VAL32(Command_Reset, 0, 1) // reset chip
 
 // Interrupt register bits
-__SINIC_VAL32(Intr_Soft,      8, 1); // software interrupt
-__SINIC_VAL32(Intr_TxLow,     7, 1); // tx fifo dropped below watermark
-__SINIC_VAL32(Intr_TxFull,    6, 1); // tx fifo full
-__SINIC_VAL32(Intr_TxDMA,     5, 1); // tx dma completed w/ interrupt
-__SINIC_VAL32(Intr_TxPacket,  4, 1); // packet transmitted
-__SINIC_VAL32(Intr_RxHigh,    3, 1); // rx fifo above high watermark
-__SINIC_VAL32(Intr_RxEmpty,   2, 1); // rx fifo empty
-__SINIC_VAL32(Intr_RxDMA,     1, 1); // rx dma completed w/ interrupt
-__SINIC_VAL32(Intr_RxPacket,  0, 1); // packet received
-__SINIC_REG32(Intr_All,       0x01ff); // all valid interrupts
-__SINIC_REG32(Intr_NoDelay,   0x01cc); // interrupts that aren't coalesced
-__SINIC_REG32(Intr_Res,      ~0x01ff); // reserved interrupt bits
+__SINIC_VAL32(Intr_Soft,      8, 1) // software interrupt
+__SINIC_VAL32(Intr_TxLow,     7, 1) // tx fifo dropped below watermark
+__SINIC_VAL32(Intr_TxFull,    6, 1) // tx fifo full
+__SINIC_VAL32(Intr_TxDMA,     5, 1) // tx dma completed w/ interrupt
+__SINIC_VAL32(Intr_TxPacket,  4, 1) // packet transmitted
+__SINIC_VAL32(Intr_RxHigh,    3, 1) // rx fifo above high watermark
+__SINIC_VAL32(Intr_RxEmpty,   2, 1) // rx fifo empty
+__SINIC_VAL32(Intr_RxDMA,     1, 1) // rx dma completed w/ interrupt
+__SINIC_VAL32(Intr_RxPacket,  0, 1) // packet received
+__SINIC_REG32(Intr_All,       0x01ff) // all valid interrupts
+__SINIC_REG32(Intr_NoDelay,   0x01cc) // interrupts that aren't coalesced
+__SINIC_REG32(Intr_Res,      ~0x01ff) // reserved interrupt bits
 
 // RX Data Description
-__SINIC_VAL64(RxData_NoDelay,  61,  1); // Don't Delay this copy
-__SINIC_VAL64(RxData_Vaddr,    60,  1); // Addr is virtual
-__SINIC_VAL64(RxData_Len,      40, 20); // 0 - 256k
-__SINIC_VAL64(RxData_Addr,      0, 40); // Address 1TB
+__SINIC_VAL64(RxData_NoDelay,  61,  1) // Don't Delay this copy
+__SINIC_VAL64(RxData_Vaddr,    60,  1) // Addr is virtual
+__SINIC_VAL64(RxData_Len,      40, 20) // 0 - 256k
+__SINIC_VAL64(RxData_Addr,      0, 40) // Address 1TB
 
 // TX Data Description
-__SINIC_VAL64(TxData_More,     63,  1); // Packet not complete (will dma more)
-__SINIC_VAL64(TxData_Checksum, 62,  1); // do checksum
-__SINIC_VAL64(TxData_Vaddr,    60,  1); // Addr is virtual
-__SINIC_VAL64(TxData_Len,      40, 20); // 0 - 256k
-__SINIC_VAL64(TxData_Addr,      0, 40); // Address 1TB
+__SINIC_VAL64(TxData_More,     63,  1) // Packet not complete (will dma more)
+__SINIC_VAL64(TxData_Checksum, 62,  1) // do checksum
+__SINIC_VAL64(TxData_Vaddr,    60,  1) // Addr is virtual
+__SINIC_VAL64(TxData_Len,      40, 20) // 0 - 256k
+__SINIC_VAL64(TxData_Addr,      0, 40) // Address 1TB
 
 // RX Done/Busy Information
-__SINIC_VAL64(RxDone_Packets,   32, 16); // number of packets in rx fifo
-__SINIC_VAL64(RxDone_Busy,      31,  1); // receive dma busy copying
-__SINIC_VAL64(RxDone_Complete,  30,  1); // valid data (packet complete)
-__SINIC_VAL64(RxDone_More,      29,  1); // Packet has more data (dma again)
-__SINIC_VAL64(RxDone_Empty,     28,  1); // rx fifo is empty
-__SINIC_VAL64(RxDone_High,      27,  1); // rx fifo is above the watermark
-__SINIC_VAL64(RxDone_NotHigh,   26,  1); // rxfifo never hit the high watermark
-__SINIC_VAL64(RxDone_TcpError,  25,  1); // TCP packet error (bad checksum)
-__SINIC_VAL64(RxDone_UdpError,  24,  1); // UDP packet error (bad checksum)
-__SINIC_VAL64(RxDone_IpError,   23,  1); // IP packet error (bad checksum)
-__SINIC_VAL64(RxDone_TcpPacket, 22,  1); // this is a TCP packet
-__SINIC_VAL64(RxDone_UdpPacket, 21,  1); // this is a UDP packet
-__SINIC_VAL64(RxDone_IpPacket,  20,  1); // this is an IP packet
-__SINIC_VAL64(RxDone_CopyLen,    0, 20); // up to 256k
+__SINIC_VAL64(RxDone_Packets,   32, 16) // number of packets in rx fifo
+__SINIC_VAL64(RxDone_Busy,      31,  1) // receive dma busy copying
+__SINIC_VAL64(RxDone_Complete,  30,  1) // valid data (packet complete)
+__SINIC_VAL64(RxDone_More,      29,  1) // Packet has more data (dma again)
+__SINIC_VAL64(RxDone_Empty,     28,  1) // rx fifo is empty
+__SINIC_VAL64(RxDone_High,      27,  1) // rx fifo is above the watermark
+__SINIC_VAL64(RxDone_NotHigh,   26,  1) // rxfifo never hit the high watermark
+__SINIC_VAL64(RxDone_TcpError,  25,  1) // TCP packet error (bad checksum)
+__SINIC_VAL64(RxDone_UdpError,  24,  1) // UDP packet error (bad checksum)
+__SINIC_VAL64(RxDone_IpError,   23,  1) // IP packet error (bad checksum)
+__SINIC_VAL64(RxDone_TcpPacket, 22,  1) // this is a TCP packet
+__SINIC_VAL64(RxDone_UdpPacket, 21,  1) // this is a UDP packet
+__SINIC_VAL64(RxDone_IpPacket,  20,  1) // this is an IP packet
+__SINIC_VAL64(RxDone_CopyLen,    0, 20) // up to 256k
 
 // TX Done/Busy Information
-__SINIC_VAL64(TxDone_Packets,   32, 16); // number of packets in tx fifo
-__SINIC_VAL64(TxDone_Busy,      31,  1); // transmit dma busy copying
-__SINIC_VAL64(TxDone_Complete,  30,  1); // valid data (packet complete)
-__SINIC_VAL64(TxDone_Full,      29,  1); // tx fifo is full
-__SINIC_VAL64(TxDone_Low,       28,  1); // tx fifo is below the watermark
-__SINIC_VAL64(TxDone_Res0,      27,  1); // reserved
-__SINIC_VAL64(TxDone_Res1,      26,  1); // reserved
-__SINIC_VAL64(TxDone_Res2,      25,  1); // reserved
-__SINIC_VAL64(TxDone_Res3,      24,  1); // reserved
-__SINIC_VAL64(TxDone_Res4,      23,  1); // reserved
-__SINIC_VAL64(TxDone_Res5,      22,  1); // reserved
-__SINIC_VAL64(TxDone_Res6,      21,  1); // reserved
-__SINIC_VAL64(TxDone_Res7,      20,  1); // reserved
-__SINIC_VAL64(TxDone_CopyLen,    0, 20); // up to 256k
-
-__SINIC_VAL64(RxStatus_Dirty,   48, 16);
-__SINIC_VAL64(RxStatus_Mapped,  32, 16);
-__SINIC_VAL64(RxStatus_Busy,    16, 16);
-__SINIC_VAL64(RxStatus_Head,     0, 16);
+__SINIC_VAL64(TxDone_Packets,   32, 16) // number of packets in tx fifo
+__SINIC_VAL64(TxDone_Busy,      31,  1) // transmit dma busy copying
+__SINIC_VAL64(TxDone_Complete,  30,  1) // valid data (packet complete)
+__SINIC_VAL64(TxDone_Full,      29,  1) // tx fifo is full
+__SINIC_VAL64(TxDone_Low,       28,  1) // tx fifo is below the watermark
+__SINIC_VAL64(TxDone_Res0,      27,  1) // reserved
+__SINIC_VAL64(TxDone_Res1,      26,  1) // reserved
+__SINIC_VAL64(TxDone_Res2,      25,  1) // reserved
+__SINIC_VAL64(TxDone_Res3,      24,  1) // reserved
+__SINIC_VAL64(TxDone_Res4,      23,  1) // reserved
+__SINIC_VAL64(TxDone_Res5,      22,  1) // reserved
+__SINIC_VAL64(TxDone_Res6,      21,  1) // reserved
+__SINIC_VAL64(TxDone_Res7,      20,  1) // reserved
+__SINIC_VAL64(TxDone_CopyLen,    0, 20) // up to 256k
+
+__SINIC_VAL64(RxStatus_Dirty,   48, 16)
+__SINIC_VAL64(RxStatus_Mapped,  32, 16)
+__SINIC_VAL64(RxStatus_Busy,    16, 16)
+__SINIC_VAL64(RxStatus_Head,     0, 16)
 
 struct Info
 {
index 0a369e64146da6a23bdfcb6c111f2a2573bcff2f..84af269f091182b6cb10a03c1414e6e4f6e2eff4 100644 (file)
@@ -1049,7 +1049,7 @@ namespace Enums {
         code.indent(2)
         for val in cls.vals:
             code('$val = ${{cls.map[val]}},')
-        code('Num_$name = ${{len(cls.vals)}},')
+        code('Num_$name = ${{len(cls.vals)}}')
         code.dedent(2)
         code('''\
     };
index 3a0f7ce8ae440c00b55c4691fc3d6f945431e8b2..db630bd22ec31f17bbac41c6615c27d9418e8d31 100644 (file)
@@ -42,7 +42,7 @@
 #include "base/types.hh"
 
 // This lets us figure out what the byte order of the host system is
-#if defined(linux)
+#if defined(__linux__)
 #include <endian.h>
 // If this is a linux system, lets used the optimized definitions if they exist.
 // If one doesn't exist, we pretty much get what is listed below, so it all
@@ -65,7 +65,7 @@ enum ByteOrder {BigEndianByteOrder, LittleEndianByteOrder};
 inline uint64_t
 swap_byte64(uint64_t x)
 {
-#if defined(linux)
+#if defined(__linux__)
     return bswap_64(x);
 #elif defined(__APPLE__)
     return OSSwapInt64(x);
@@ -84,7 +84,7 @@ swap_byte64(uint64_t x)
 inline uint32_t
 swap_byte32(uint32_t x)
 {
-#if defined(linux)
+#if defined(__linux__)
     return bswap_32(x);
 #elif defined(__APPLE__)
     return OSSwapInt32(x);
@@ -98,7 +98,7 @@ swap_byte32(uint32_t x)
 inline uint16_t
 swap_byte16(uint16_t x)
 {
-#if defined(linux)
+#if defined(__linux__)
     return bswap_16(x);
 #elif defined(__APPLE__)
     return OSSwapInt16(x);
index 6dc25e76029c0c09ff7e842436c24d6dcbe15dc8..c859823c8ed2943eaaba7365f60f340ad09c5363 100644 (file)
@@ -66,7 +66,7 @@ class Event : public Serializable, public FastAlloc
     friend class EventQueue;
 
   protected:   
-    typedef short FlagsType;
+    typedef unsigned short FlagsType;
     typedef ::Flags<FlagsType> Flags;
 
     static const FlagsType PublicRead    = 0x003f; // public readable flags
index 12b787a5e1e81109c3c0d24690fd373853d975bc..bc64e74f8f4b1f10bb8500616fe263b8de9828cf 100644 (file)
@@ -89,6 +89,17 @@ void
 objParamIn(Checkpoint *cp, const std::string &section,
            const std::string &name, SimObject * &param);
 
+template <typename T>
+void fromInt(T &t, int i)
+{
+    t = (T)i;
+}
+
+template <typename T>
+void fromSimObject(T &t, SimObject *s)
+{
+    t = dynamic_cast<T>(s);
+}
 
 //
 // These macros are streamlined to use in serialize/unserialize
@@ -106,7 +117,7 @@ objParamIn(Checkpoint *cp, const std::string &section,
  do {                                           \
     int tmp;                                    \
     paramIn(cp, section, #scalar, tmp);         \
-    scalar = (typeof(scalar))tmp;               \
+    fromInt(scalar, tmp);                    \
   } while (0)
 
 #define SERIALIZE_ARRAY(member, size)           \
@@ -121,7 +132,7 @@ objParamIn(Checkpoint *cp, const std::string &section,
   do {                                                  \
     SimObject *sptr;                                    \
     objParamIn(cp, section, #objptr, sptr);             \
-    objptr = dynamic_cast<typeof(objptr)>(sptr);        \
+    fromSimObject(objptr, sptr);                        \
   } while (0)
 
 /*