core/sal: register issue fixed
Before, it was not possible to add registers in arbitrary order. Change-Id: I952c03ea4339da2cdaf34bd4546c76c33cecd4cd
This commit is contained in:
@ -7,9 +7,10 @@ void CPUArchitecture::m_addRegister(Register* reg, RegisterType type)
|
|||||||
{
|
{
|
||||||
// We may be called multiple times with the same register, if it needs to
|
// We may be called multiple times with the same register, if it needs to
|
||||||
// reside in multiple subsets.
|
// reside in multiple subsets.
|
||||||
if (std::find(m_Registers.begin(), m_Registers.end(), reg) == m_Registers.end()) {
|
if ((m_Registers.size()) < reg->getId()+1) {
|
||||||
m_Registers.push_back(reg);
|
m_Registers.resize(reg->getId()+1);
|
||||||
}
|
}
|
||||||
|
m_Registers[reg->getId()] = reg;
|
||||||
|
|
||||||
UniformRegisterSet* urs = getRegisterSetOfType(type);
|
UniformRegisterSet* urs = getRegisterSetOfType(type);
|
||||||
if (!urs) {
|
if (!urs) {
|
||||||
@ -21,7 +22,7 @@ void CPUArchitecture::m_addRegister(Register* reg, RegisterType type)
|
|||||||
|
|
||||||
Register* CPUArchitecture::getRegister(size_t i) const
|
Register* CPUArchitecture::getRegister(size_t i) const
|
||||||
{
|
{
|
||||||
assert(i < m_Registers.size() && "FATAL ERROR: Invalid index provided!");
|
assert(i < m_Registers.size() && m_Registers[i] != NULL && "FATAL ERROR: Invalid index provided!");
|
||||||
assert(m_Registers[i]->getId() == i && "FATAL ERROR: Register index mismatch");
|
assert(m_Registers[i]->getId() == i && "FATAL ERROR: Register index mismatch");
|
||||||
return m_Registers[i];
|
return m_Registers[i];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user