diff --git a/src/core/sal/CMakeLists.txt b/src/core/sal/CMakeLists.txt index 9ebad96d..92e691a3 100644 --- a/src/core/sal/CMakeLists.txt +++ b/src/core/sal/CMakeLists.txt @@ -69,7 +69,7 @@ if(BUILD_X86) ) elseif(BUILD_ARM) set(SRCS ${SRCS} - arm/arch.cc + arm/Architecture.cc ) endif(BUILD_X86) diff --git a/src/core/sal/arm/arch.cc b/src/core/sal/arm/Architecture.cc similarity index 94% rename from src/core/sal/arm/arch.cc rename to src/core/sal/arm/Architecture.cc index 95fa7e5a..bd9c5a31 100644 --- a/src/core/sal/arm/arch.cc +++ b/src/core/sal/arm/Architecture.cc @@ -1,4 +1,4 @@ -#include "arch.hpp" +#include "ArmArchitecture.hpp" #include "../Register.hpp" namespace fail { diff --git a/src/core/sal/arm/arch.hpp b/src/core/sal/arm/Architecture.hpp similarity index 70% rename from src/core/sal/arm/arch.hpp rename to src/core/sal/arm/Architecture.hpp index 384f2f3f..8b861cde 100644 --- a/src/core/sal/arm/arch.hpp +++ b/src/core/sal/arm/Architecture.hpp @@ -1,10 +1,11 @@ -#ifndef __ARM_ARCH_HPP__ - #define __ARM_ARCH_HPP__ +#ifndef __ARM_ARCHITECURE_HPP__ + #define __ARM_ARCHITECURE_HPP__ #include "../CPU.hpp" #include "../CPUState.hpp" namespace fail { + /** * \class ArmArchitecture * This class adds ARM specific functionality to the base architecture. @@ -18,19 +19,6 @@ private: void fillRegisterList(); }; -class ArmCPUState : public CPUState { -public: - virtual regdata_t getRegisterContent(Register* reg) = 0; - - virtual address_t getInstructionPointer() = 0; - virtual address_t getStackPointer() = 0; - /** - * Returns the current Link Register. - * @return the current lr - */ - virtual address_t getLinkRegister() = 0; -}; - enum GPRegIndex { RI_R0, RI_R1, diff --git a/src/core/sal/arm/CPUState.hpp b/src/core/sal/arm/CPUState.hpp new file mode 100644 index 00000000..53ae1b90 --- /dev/null +++ b/src/core/sal/arm/CPUState.hpp @@ -0,0 +1,26 @@ +#ifndef __ARM_CPU_STATE_HPP__ + #define __ARM_CPU_STATE_HPP__ + +#include "../CPU.hpp" +#include "../CPUState.hpp" + +namespace fail { + +class ArmCPUState : public CPUState { +public: + virtual regdata_t getRegisterContent(Register* reg) = 0; + + virtual address_t getInstructionPointer() = 0; + virtual address_t getStackPointer() = 0; + /** + * Returns the current Link Register. + * @return the current lr + */ + virtual address_t getLinkRegister() = 0; +}; + +// TODO: Enum for misc registers + +} // end-of-namespace: fail + +#endif // __ARM_CPU_STATE_HPP__ diff --git a/src/core/sal/gem5/Gem5ArmCPU.hpp b/src/core/sal/gem5/Gem5ArmCPU.hpp index 3abef361..914e2231 100644 --- a/src/core/sal/gem5/Gem5ArmCPU.hpp +++ b/src/core/sal/gem5/Gem5ArmCPU.hpp @@ -1,7 +1,8 @@ #ifndef __GEM5_ARM_CPU_HPP__ #define __GEM5_ARM_CPU_HPP__ -#include "../arm/arch.hpp" +#include "../arm/Architecture.hpp" +#include "../arm/CPUState.hpp" #include "sim/system.hh"