Introducing a temporary work-around for a register mapping problem with 32-bit Linux targets.

llvm-svn: 188954
This commit is contained in:
Andrew Kaylor 2013-08-21 22:46:02 +00:00
parent 1b2c2d8414
commit 53386dc836
1 changed files with 9 additions and 0 deletions

View File

@ -456,6 +456,15 @@ RegisterContext::CalculateExecutionContext (ExecutionContext &exe_ctx)
bool
RegisterContext::ConvertBetweenRegisterKinds (int source_rk, uint32_t source_regnum, int target_rk, uint32_t& target_regnum)
{
// FIXME: This works around a problem with 32-bit register mapping on Linux.
// A more general fix is needed.
if (target_rk == eRegisterKindLLDB)
{
target_regnum = ConvertRegisterKindToRegisterNumber(source_rk, source_regnum);
if (target_regnum != LLDB_INVALID_REGNUM)
return true;
}
const uint32_t num_registers = GetRegisterCount();
for (uint32_t reg = 0; reg < num_registers; ++reg)
{