From f6c7255d5f71ebe87abf3ea28380943d4be5e0dd Mon Sep 17 00:00:00 2001 From: Alex Rosenberg Date: Sun, 25 Jan 2015 22:46:59 +0000 Subject: [PATCH] =?UTF-8?q?Add=20the=20triple=20for=20the=20Sony=20Playsta?= =?UTF-8?q?tion=C2=AE4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lots more to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227060 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/Triple.h | 16 +++++++++++++++- lib/Support/Triple.cpp | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h index 48df27e4bb6..55c884f65f0 100644 --- a/include/llvm/ADT/Triple.h +++ b/include/llvm/ADT/Triple.h @@ -141,7 +141,8 @@ public: AIX, CUDA, // NVIDIA CUDA NVCL, // NVIDIA OpenCL - AMDHSA // AMD HSA Runtime + AMDHSA, // AMD HSA Runtime + PS4 }; enum EnvironmentType { UnknownEnvironment, @@ -455,6 +456,19 @@ public: return getObjectFormat() == Triple::MachO; } + /// \brief Tests whether the target is the PS4 CPU + bool isPS4CPU() const { + return getArch() == Triple::x86_64 && + getVendor() == Triple::SCEI && + getOS() == Triple::PS4; + } + + /// \brief Tests whether the target is the PS4 platform + bool isPS4() const { + return getVendor() == Triple::SCEI && + getOS() == Triple::PS4; + } + /// @} /// @name Mutators /// @{ diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index 68548299d34..4032d6d77c9 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -163,6 +163,7 @@ const char *Triple::getOSTypeName(OSType Kind) { case CUDA: return "cuda"; case NVCL: return "nvcl"; case AMDHSA: return "amdhsa"; + case PS4: return "ps4"; } llvm_unreachable("Invalid OSType"); @@ -356,6 +357,7 @@ static Triple::OSType parseOS(StringRef OSName) { .StartsWith("cuda", Triple::CUDA) .StartsWith("nvcl", Triple::NVCL) .StartsWith("amdhsa", Triple::AMDHSA) + .StartsWith("ps4", Triple::PS4) .Default(Triple::UnknownOS); }