Make CPUArchitecure::addRegister protected: no need to modify the register config in an experiment

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2062 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
adrian
2013-02-06 15:39:41 +00:00
parent 8ce25257c3
commit 38b7064189
4 changed files with 14 additions and 15 deletions

View File

@ -2,7 +2,7 @@
namespace fail { namespace fail {
void CPUArchitecture::addRegister(Register* reg) void CPUArchitecture::m_addRegister(Register* reg)
{ {
assert(!reg->isAssigned() && "FATAL ERROR: The register is already assigned!"); assert(!reg->isAssigned() && "FATAL ERROR: The register is already assigned!");
m_Registers.push_back(reg); m_Registers.push_back(reg);

View File

@ -43,14 +43,6 @@ public:
* @return the number of sets * @return the number of sets
*/ */
size_t registerSubsetCount() const { return m_RegisterSubsets.size(); } size_t registerSubsetCount() const { return m_RegisterSubsets.size(); }
/**
* Adds a new register to this set. The register object needs to be
* typed (see Register::getType).
* @param reg a pointer to the register object to be added
* @see getType()
*/
void addRegister(Register* reg);
// FIXME: make this protected? no need to modify the register config at runtime...
/** /**
* Retrieves the \a i-th register. * Retrieves the \a i-th register.
* @return a pointer to the \a i-th register; if \a i is invalid, an * @return a pointer to the \a i-th register; if \a i is invalid, an
@ -74,6 +66,13 @@ public:
protected: protected:
std::vector<Register*> m_Registers; std::vector<Register*> m_Registers;
std::vector<UniformRegisterSet*> m_RegisterSubsets; std::vector<UniformRegisterSet*> m_RegisterSubsets;
/**
* Adds a new register to this set. The register object needs to be
* typed (see Register::getType).
* @param reg a pointer to the register object to be added
* @see getType()
*/
void m_addRegister(Register* reg);
}; };
} // end-of-namespace: fail } // end-of-namespace: fail

View File

@ -21,13 +21,13 @@ void ArmArchitecture::fillRegisterList()
// FIXME This doesn't work because no matching setName is found. // FIXME This doesn't work because no matching setName is found.
// Not sure why this happens. // Not sure why this happens.
//reg->setName(sstr.str()); //reg->setName(sstr.str());
addRegister(reg); m_addRegister(reg);
} }
// Instruction Pointer // Instruction Pointer
Register *reg = new Register(RI_IP, RT_IP, 32); Register *reg = new Register(RI_IP, RT_IP, 32);
reg->setName("IP"); reg->setName("IP");
addRegister(reg); m_addRegister(reg);
} }
ArmArchitecture::~ArmArchitecture() ArmArchitecture::~ArmArchitecture()

View File

@ -15,7 +15,7 @@ X86Architecture::X86Architecture()
for (unsigned short i = 0; i < 16; i++) { for (unsigned short i = 0; i < 16; i++) {
Register* pReg = new Register(i, RT_GP, 64); Register* pReg = new Register(i, RT_GP, 64);
pReg->setName(names[i]); pReg->setName(names[i]);
addRegister(pReg); m_addRegister(pReg);
} }
#else #else
// -- 32 bit register -- // -- 32 bit register --
@ -23,7 +23,7 @@ X86Architecture::X86Architecture()
for (unsigned short i = 0; i < 8; i++) { for (unsigned short i = 0; i < 8; i++) {
Register* pReg = new Register(i, RT_GP, 32); Register* pReg = new Register(i, RT_GP, 32);
pReg->setName(names[i]); pReg->setName(names[i]);
addRegister(pReg); m_addRegister(pReg);
} }
#endif // SIM_SUPPORT_64 #endif // SIM_SUPPORT_64
// ------------------------------------- // -------------------------------------
@ -35,12 +35,12 @@ X86Architecture::X86Architecture()
Register* pPCReg = new Register(RID_PC, RT_IP, 32); Register* pPCReg = new Register(RID_PC, RT_IP, 32);
pPCReg->setName("EIP"); pPCReg->setName("EIP");
#endif // SIM_SUPPORT_64 #endif // SIM_SUPPORT_64
addRegister(pPCReg); m_addRegister(pPCReg);
// ------------------------------------- // -------------------------------------
// Add the status register (EFLAGS): // Add the status register (EFLAGS):
Register* pFlagReg = new Register(RID_FLAGS, RT_ST, 32); Register* pFlagReg = new Register(RID_FLAGS, RT_ST, 32);
pFlagReg->setName("EFLAGS"); pFlagReg->setName("EFLAGS");
addRegister(pFlagReg); m_addRegister(pFlagReg);
} }
X86Architecture::~X86Architecture() X86Architecture::~X86Architecture()