util: handle missing register mapping gracefully
It's OK if we cannot map every register LLVM knows to a Fail register ID, but we need to explicitly skip these cases in the RegisterImporter. Change-Id: I2152f819fb94aa4de5720c5798b229b66988d382
This commit is contained in:
@ -9,7 +9,7 @@ const LLVMtoFailTranslator::reginfo_t & LLVMtoFailTranslator::getFailRegisterID
|
||||
if( it != llvm_to_fail_map.end() ) {// found
|
||||
return (*it).second;
|
||||
} else { // not found
|
||||
std::cout << "Fail ID for LLVM Register id " << regid << " not found :(" << std::endl;
|
||||
std::cout << "Fail ID for LLVM Register id " << std::dec << regid << " not found :(" << std::endl;
|
||||
//exit(EXIT_FAILURE);
|
||||
return notfound;
|
||||
}
|
||||
|
||||
@ -51,6 +51,12 @@ protected:
|
||||
|
||||
|
||||
public:
|
||||
/**
|
||||
* Translates a backend-specific register ID to a Fail register ID.
|
||||
* @param regid A backend-specific register ID.
|
||||
* @return A Fail* register ID, or LLVMtoFailTranslator::notfound if no
|
||||
* mapping was found.
|
||||
*/
|
||||
const reginfo_t & getFailRegisterID(unsigned int regid);
|
||||
|
||||
regdata_t getRegisterContent(ConcreteCPU & cpu, const reginfo_t & reg);
|
||||
@ -63,7 +69,7 @@ public:
|
||||
}
|
||||
|
||||
int getFailRegisterId(unsigned int regid) { return this->getFailRegisterID(regid).id; };
|
||||
private:
|
||||
|
||||
reginfo_t notfound;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user