arch-arm: Add initial support for SVE contiguous loads/stores
[gem5.git] / src / arch / sparc / system.hh
index 5d50ea06777f0b329250aeb2ca60f1a3f7470aa0..ac877a9646ace58b920a9347a85227f176ae879a 100644 (file)
 #include "base/loader/symtab.hh"
 #include "cpu/pc_event.hh"
 #include "kern/system_events.hh"
+#include "params/SparcSystem.hh"
 #include "sim/sim_object.hh"
 #include "sim/system.hh"
 
 class SparcSystem : public System
 {
   public:
-    struct Params : public System::Params
-    {
-        PhysicalMemory *rom;
-        PhysicalMemory *nvram;
-        PhysicalMemory *hypervisor_desc;
-        PhysicalMemory *partition_desc;
-        Addr reset_addr;
-        Addr hypervisor_addr;
-        Addr openboot_addr;
-        Addr nvram_addr;
-        Addr hypervisor_desc_addr;
-        Addr partition_desc_addr;
-        std::string reset_bin;
-        std::string hypervisor_bin;
-        std::string openboot_bin;
-        std::string nvram_bin;
-        std::string hypervisor_desc_bin;
-        std::string partition_desc_bin;
-        std::string boot_osflags;
-    };
-
+    typedef SparcSystemParams Params;
     SparcSystem(Params *p);
-
     ~SparcSystem();
 
-    virtual bool breakpoint();
+    void initState() override;
 
 /**
  * Serialization stuff
  */
   public:
-    virtual void serialize(std::ostream &os);
-    virtual void unserialize(Checkpoint *cp, const std::string &section);
+    void serializeSymtab(CheckpointOut &cp) const override;
+    void unserializeSymtab(CheckpointIn &cp) override;
 
     /** reset binary symbol table */
     SymbolTable *resetSymtab;
@@ -116,43 +96,35 @@ class SparcSystem : public System
     /** System Tick for syncronized tick across all cpus. */
     Tick sysTick;
 
-    /** functional port to ROM */
-    FunctionalPort funcRomPort;
-
-    /** functional port to nvram */
-    FunctionalPort funcNvramPort;
-
-    /** functional port to hypervisor description */
-    FunctionalPort funcHypDescPort;
-
-    /** functional port to partition description */
-    FunctionalPort funcPartDescPort;
-
   protected:
     const Params *params() const { return (const Params *)_params; }
 
     /** Add a function-based event to reset binary. */
     template <class T>
-    T *SparcSystem::addResetFuncEvent(const char *lbl)
+    T *
+    addResetFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(resetSymtab, lbl);
     }
 
     /** Add a function-based event to the hypervisor. */
     template <class T>
-    T *SparcSystem::addHypervisorFuncEvent(const char *lbl)
+    T *
+    addHypervisorFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(hypervisorSymtab, lbl);
     }
 
     /** Add a function-based event to the openboot. */
     template <class T>
-    T *SparcSystem::addOpenbootFuncEvent(const char *lbl)
+    T *
+    addOpenbootFuncEvent(const char *lbl)
     {
         return addFuncEvent<T>(openbootSymtab, lbl);
     }
 
-    virtual Addr fixFuncEventAddr(Addr addr)
+    Addr
+    fixFuncEventAddr(Addr addr) override
     {
         //XXX This may eventually have to do something useful.
         return addr;