diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:12:03 +0000 |
| commit | c9157d925c489f07ba9c0b2ce47e5149b75969a5 (patch) | |
| tree | 08bc4a3d9cad3f9ebffa558ddf140b9d9257b219 /contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp | |
| parent | 2a66844f606a35d68ad8a8061f4bea204274b3bc (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp index 1bb4ecdff299..2b6c4b9e7f43 100644 --- a/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp +++ b/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp @@ -11,6 +11,7 @@ #include "llvm/BinaryFormat/ELF.h" #include "llvm/ExecutionEngine/JITLink/ELF_x86_64.h" #include "llvm/ExecutionEngine/JITLink/aarch64.h" +#include "llvm/ExecutionEngine/JITLink/ppc64.h" #include "llvm/ExecutionEngine/JITLink/x86_64.h" #include "llvm/ExecutionEngine/Orc/DebugUtils.h" #include "llvm/ExecutionEngine/Orc/ExecutionUtils.h" @@ -39,21 +40,31 @@ public: void materialize(std::unique_ptr<MaterializationResponsibility> R) override { unsigned PointerSize; - support::endianness Endianness; + llvm::endianness Endianness; jitlink::Edge::Kind EdgeKind; const auto &TT = ENP.getExecutionSession().getTargetTriple(); switch (TT.getArch()) { case Triple::x86_64: PointerSize = 8; - Endianness = support::endianness::little; + Endianness = llvm::endianness::little; EdgeKind = jitlink::x86_64::Pointer64; break; case Triple::aarch64: PointerSize = 8; - Endianness = support::endianness::little; + Endianness = llvm::endianness::little; EdgeKind = jitlink::aarch64::Pointer64; break; + case Triple::ppc64: + PointerSize = 8; + Endianness = llvm::endianness::big; + EdgeKind = jitlink::ppc64::Pointer64; + break; + case Triple::ppc64le: + PointerSize = 8; + Endianness = llvm::endianness::little; + EdgeKind = jitlink::ppc64::Pointer64; + break; default: llvm_unreachable("Unrecognized architecture"); } @@ -238,6 +249,9 @@ bool ELFNixPlatform::supportedTarget(const Triple &TT) { switch (TT.getArch()) { case Triple::x86_64: case Triple::aarch64: + // FIXME: jitlink for ppc64 hasn't been well tested, leave it unsupported + // right now. + case Triple::ppc64le: return true; default: return false; |
