Make sure EmulateInstructionARM doesn't have to have "armv4", "armv6", "armv7" as the exact architecture name, the arch name can just start with any of these strings. We need to be able to recognize different variants that might come along and not fail to backtrace completely (which happens when we aren't able to find an architecture that matches) when we don't have exact matches.

llvm-svn: 155045
This commit is contained in:
Greg Clayton 2012-04-18 21:16:06 +00:00
parent b54f86aa9d
commit af54653c32
1 changed files with 4 additions and 4 deletions

View File

@ -12780,18 +12780,18 @@ EmulateInstructionARM::SetArchitecture (const ArchSpec &arch)
if (arch_cstr)
{
if (0 == ::strcasecmp(arch_cstr, "armv4t")) m_arm_isa = ARMv4T;
else if (0 == ::strcasecmp(arch_cstr, "armv4")) m_arm_isa = ARMv4;
else if (0 == ::strcasecmp(arch_cstr, "armv5tej")) m_arm_isa = ARMv5TEJ;
else if (0 == ::strcasecmp(arch_cstr, "armv5te")) m_arm_isa = ARMv5TE;
else if (0 == ::strcasecmp(arch_cstr, "armv5t")) m_arm_isa = ARMv5T;
else if (0 == ::strcasecmp(arch_cstr, "armv6k")) m_arm_isa = ARMv6K;
else if (0 == ::strcasecmp(arch_cstr, "armv6")) m_arm_isa = ARMv6;
else if (0 == ::strcasecmp(arch_cstr, "armv6t2")) m_arm_isa = ARMv6T2;
else if (0 == ::strcasecmp(arch_cstr, "armv7")) m_arm_isa = ARMv7;
else if (0 == ::strcasecmp(arch_cstr, "armv7s")) m_arm_isa = ARMv7S;
else if (0 == ::strcasecmp(arch_cstr, "armv8")) m_arm_isa = ARMv8;
else if (0 == ::strcasecmp(arch_cstr, "arm")) m_arm_isa = ARMvAll;
else if (0 == ::strcasecmp(arch_cstr, "thumb")) m_arm_isa = ARMvAll;
else if (0 == ::strncasecmp(arch_cstr,"armv4", 5)) m_arm_isa = ARMv4;
else if (0 == ::strncasecmp(arch_cstr,"armv6", 5)) m_arm_isa = ARMv6;
else if (0 == ::strncasecmp(arch_cstr,"armv7", 5)) m_arm_isa = ARMv7;
else if (0 == ::strncasecmp(arch_cstr,"armv8", 5)) m_arm_isa = ARMv8;
}
return m_arm_isa != 0;
}