mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Make Triple::parseARMArch use ARMTargetParser
Simplifying Triple::parseARMArch, leaving all the parsing to ARMTargetParser. This commit also adds AArch64 detection to ARMTargetParser canonicalization, and a two RedHat arch names (v{6,7}hl, meaning hard-float / little-endian). Adding enough unit tests to cover the basics. Clang checks fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237902 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -878,4 +878,69 @@ TEST(TripleTest, NormalizeARM) {
|
||||
EXPECT_EQ(Triple::armeb, T.getArch());
|
||||
}
|
||||
|
||||
TEST(TripleTest, ParseARMArch) {
|
||||
// ARM
|
||||
{
|
||||
Triple T = Triple("arm");
|
||||
EXPECT_EQ(Triple::arm, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("armv6t2");
|
||||
EXPECT_EQ(Triple::arm, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("armv8");
|
||||
EXPECT_EQ(Triple::arm, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("armeb");
|
||||
EXPECT_EQ(Triple::armeb, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("armv5eb");
|
||||
EXPECT_EQ(Triple::armeb, T.getArch());
|
||||
}
|
||||
// THUMB
|
||||
{
|
||||
Triple T = Triple("thumb");
|
||||
EXPECT_EQ(Triple::thumb, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("thumbv7a");
|
||||
EXPECT_EQ(Triple::thumb, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("thumbeb");
|
||||
EXPECT_EQ(Triple::thumbeb, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("thumbv4teb");
|
||||
EXPECT_EQ(Triple::thumbeb, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("thumbv2");
|
||||
EXPECT_EQ(Triple::UnknownArch, T.getArch());
|
||||
}
|
||||
// AARCH64
|
||||
{
|
||||
Triple T = Triple("arm64");
|
||||
EXPECT_EQ(Triple::aarch64, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("aarch64");
|
||||
EXPECT_EQ(Triple::aarch64, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("aarch64_be");
|
||||
EXPECT_EQ(Triple::aarch64_be, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("aarch64be");
|
||||
EXPECT_EQ(Triple::UnknownArch, T.getArch());
|
||||
}
|
||||
{
|
||||
Triple T = Triple("arm64be");
|
||||
EXPECT_EQ(Triple::UnknownArch, T.getArch());
|
||||
}
|
||||
}
|
||||
} // end anonymous namespace
|
||||
|
Reference in New Issue
Block a user