1 //===-- ARMTargetInfo.cpp - ARM Target Implementation ---------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "TargetInfo/ARMTargetInfo.h"
10 #include "llvm/Support/TargetRegistry.h"
13 Target
&llvm::getTheARMLETarget() {
14 static Target TheARMLETarget
;
15 return TheARMLETarget
;
17 Target
&llvm::getTheARMBETarget() {
18 static Target TheARMBETarget
;
19 return TheARMBETarget
;
21 Target
&llvm::getTheThumbLETarget() {
22 static Target TheThumbLETarget
;
23 return TheThumbLETarget
;
25 Target
&llvm::getTheThumbBETarget() {
26 static Target TheThumbBETarget
;
27 return TheThumbBETarget
;
30 extern "C" void LLVMInitializeARMTargetInfo() {
31 RegisterTarget
<Triple::arm
, /*HasJIT=*/true> X(getTheARMLETarget(), "arm",
33 RegisterTarget
<Triple::armeb
, /*HasJIT=*/true> Y(getTheARMBETarget(), "armeb",
34 "ARM (big endian)", "ARM");
36 RegisterTarget
<Triple::thumb
, /*HasJIT=*/true> A(getTheThumbLETarget(),
37 "thumb", "Thumb", "ARM");
38 RegisterTarget
<Triple::thumbeb
, /*HasJIT=*/true> B(
39 getTheThumbBETarget(), "thumbeb", "Thumb (big endian)", "ARM");