summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
diff options
context:
space:
mode:
authorAlexei Starovoitov <alexei.starovoitov@gmail.com>2015-06-04 19:15:05 +0000
committerAlexei Starovoitov <alexei.starovoitov@gmail.com>2015-06-04 19:15:05 +0000
commit310deada107208511c1199d0580b9e3cdfbb45ca (patch)
tree0935bc73294e4addf7f01991c0db460bb3055293 /llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
parent9ac8a6b13d998968226fdefb58ebd37eb3620ceb (diff)
downloadbcm5719-llvm-310deada107208511c1199d0580b9e3cdfbb45ca.tar.gz
bcm5719-llvm-310deada107208511c1199d0580b9e3cdfbb45ca.zip
[bpf] add big- and host- endian support
Summary: -march=bpf -> host endian -march=bpf_le -> little endian -match=bpf_be -> big endian Test Plan: v1 was tested by IBM s390 guys and appears to be working there. It bit rots too fast here. Reviewers: chandlerc, tstellarAMD Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10177 llvm-svn: 239071
Diffstat (limited to 'llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp')
-rw-r--r--llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp b/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
index 87716e6775c..406165bca1e 100644
--- a/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
+++ b/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
@@ -11,8 +11,18 @@
#include "llvm/Support/TargetRegistry.h"
using namespace llvm;
-Target llvm::TheBPFTarget;
+namespace llvm {
+Target TheBPFleTarget;
+Target TheBPFbeTarget;
+Target TheBPFTarget;
+}
extern "C" void LLVMInitializeBPFTargetInfo() {
- RegisterTarget<Triple::bpf, /*HasJIT=*/true> X(TheBPFTarget, "bpf", "BPF");
+ TargetRegistry::RegisterTarget(TheBPFTarget, "bpf",
+ "BPF (host endian)",
+ [](Triple::ArchType) { return false; }, true);
+ RegisterTarget<Triple::bpf_le, /*HasJIT=*/true> X(
+ TheBPFleTarget, "bpf_le", "BPF (little endian)");
+ RegisterTarget<Triple::bpf_be, /*HasJIT=*/true> Y(
+ TheBPFbeTarget, "bpf_be", "BPF (big endian)");
}
OpenPOWER on IntegriCloud