diff options
Diffstat (limited to 'llvm/lib/Target/ARM/TargetInfo')
| -rw-r--r-- | llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp | 40 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h | 23 | 
2 files changed, 63 insertions, 0 deletions
| diff --git a/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp b/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp new file mode 100644 index 000000000000..86cb907abfa3 --- /dev/null +++ b/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp @@ -0,0 +1,40 @@ +//===-- ARMTargetInfo.cpp - ARM Target Implementation ---------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "TargetInfo/ARMTargetInfo.h" +#include "llvm/Support/TargetRegistry.h" +using namespace llvm; + +Target &llvm::getTheARMLETarget() { +  static Target TheARMLETarget; +  return TheARMLETarget; +} +Target &llvm::getTheARMBETarget() { +  static Target TheARMBETarget; +  return TheARMBETarget; +} +Target &llvm::getTheThumbLETarget() { +  static Target TheThumbLETarget; +  return TheThumbLETarget; +} +Target &llvm::getTheThumbBETarget() { +  static Target TheThumbBETarget; +  return TheThumbBETarget; +} + +extern "C" void LLVMInitializeARMTargetInfo() { +  RegisterTarget<Triple::arm, /*HasJIT=*/true> X(getTheARMLETarget(), "arm", +                                                 "ARM", "ARM"); +  RegisterTarget<Triple::armeb, /*HasJIT=*/true> Y(getTheARMBETarget(), "armeb", +                                                   "ARM (big endian)", "ARM"); + +  RegisterTarget<Triple::thumb, /*HasJIT=*/true> A(getTheThumbLETarget(), +                                                   "thumb", "Thumb", "ARM"); +  RegisterTarget<Triple::thumbeb, /*HasJIT=*/true> B( +      getTheThumbBETarget(), "thumbeb", "Thumb (big endian)", "ARM"); +} diff --git a/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h b/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h new file mode 100644 index 000000000000..c217dd5c4612 --- /dev/null +++ b/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h @@ -0,0 +1,23 @@ +//===-- ARMTargetInfo.h - ARM Target Implementation -------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIB_TARGET_ARM_TARGETINFO_ARMTARGETINFO_H +#define LLVM_LIB_TARGET_ARM_TARGETINFO_ARMTARGETINFO_H + +namespace llvm { + +class Target; + +Target &getTheARMLETarget(); +Target &getTheARMBETarget(); +Target &getTheThumbLETarget(); +Target &getTheThumbBETarget(); + +} // namespace llvm + +#endif // LLVM_LIB_TARGET_ARM_TARGETINFO_ARMTARGETINFO_H | 
