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:
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user