ARMTargetParser: Normalising build attributes

Now that most of the methods in Clang and LLVM that were parsing arch/cpu/fpu
strings are using ARMTargetParser, it's time to make it a bit more conforming
with what the ABI says.

This commit adds some clarification on what build attributes are accepted and
which are "non-standard". It also makes clear that the "defaultCPU" and
"defaultArch" methods were really just build attribute getters.

It also diverges from GCC's behaviour to say that armv2/armv3 are really an
ARMv4 in the build attributes, when the ABI has a clear state for that: Pre-v4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238344 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Renato Golin
2015-05-27 18:15:37 +00:00
parent fb421f446e
commit a052a77187
7 changed files with 35 additions and 31 deletions

View File

@@ -56,17 +56,19 @@ namespace ARM {
AK_ARMV5,
AK_ARMV5T,
AK_ARMV5TE,
AK_ARMV5TEJ,
AK_ARMV6,
AK_ARMV6J,
AK_ARMV6K,
AK_ARMV6T2,
AK_ARMV6Z,
AK_ARMV6ZK,
AK_ARMV6M,
AK_ARMV6SM,
AK_ARMV7,
AK_ARMV7A,
AK_ARMV7R,
AK_ARMV7M,
AK_ARMV7EM,
AK_ARMV8A,
AK_ARMV8_1A,
// Non-standard Arch names.
@@ -74,13 +76,11 @@ namespace ARM {
AK_IWMMXT2,
AK_XSCALE,
AK_ARMV5E,
AK_ARMV5TEJ,
AK_ARMV6SM,
AK_ARMV6J,
AK_ARMV6HL,
AK_ARMV7L,
AK_ARMV7HL,
AK_ARMV7S,
AK_ARMV7EM,
AK_LAST
};
@@ -133,8 +133,8 @@ public:
// Information by ID
static const char * getFPUName(unsigned FPUKind);
static const char * getArchName(unsigned ArchKind);
static unsigned getArchDefaultCPUArch(unsigned ArchKind);
static const char * getArchDefaultCPUName(unsigned ArchKind);
static unsigned getArchAttr(unsigned ArchKind);
static const char * getCPUAttr(unsigned ArchKind);
static const char * getArchExtName(unsigned ArchExtKind);
static const char * getDefaultCPU(StringRef Arch);