Skip to content

Commit fe08262

Browse files
[clang][uefi] add arm, aarch64, x86, loongarch64, riscv64 targets
1 parent 69ade7c commit fe08262

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

clang/include/clang/Basic/TargetOSMacros.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,7 @@ TARGET_OS(TARGET_OS_NANO, Triple.isWatchOS())
5353
TARGET_OS(TARGET_IPHONE_SIMULATOR, Triple.isSimulatorEnvironment())
5454
TARGET_OS(TARGET_OS_UIKITFORMAC, Triple.isMacCatalystEnvironment())
5555

56+
// UEFI target.
57+
TARGET_OS(TARGET_OS_UEFI, Triple.isUEFI())
58+
5659
#undef TARGET_OS

clang/lib/Basic/Targets.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
164164
return std::make_unique<OHOSTargetInfo<AArch64leTargetInfo>>(Triple,
165165
Opts);
166166
}
167+
168+
case llvm::Triple::UEFI:
169+
return std::make_unique<UEFITargetInfo<AArch64leTargetInfo>>(Triple,
170+
Opts);
171+
167172
case llvm::Triple::NetBSD:
168173
return std::make_unique<NetBSDTargetInfo<AArch64leTargetInfo>>(Triple,
169174
Opts);
@@ -227,6 +232,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
227232
return std::make_unique<HaikuTargetInfo<ARMleTargetInfo>>(Triple, Opts);
228233
case llvm::Triple::NaCl:
229234
return std::make_unique<NaClTargetInfo<ARMleTargetInfo>>(Triple, Opts);
235+
case llvm::Triple::UEFI:
236+
return std::make_unique<UEFITargetInfo<ARMleTargetInfo>>(Triple, Opts);
230237
case llvm::Triple::Win32:
231238
switch (Triple.getEnvironment()) {
232239
case llvm::Triple::Cygnus:
@@ -457,6 +464,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
457464
case llvm::Triple::Haiku:
458465
return std::make_unique<HaikuTargetInfo<RISCV64TargetInfo>>(Triple,
459466
Opts);
467+
case llvm::Triple::UEFI:
468+
return std::make_unique<UEFITargetInfo<RISCV64TargetInfo>>(Triple, Opts);
460469
case llvm::Triple::Linux:
461470
switch (Triple.getEnvironment()) {
462471
default:
@@ -569,6 +578,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
569578
case llvm::Triple::Solaris:
570579
return std::make_unique<SolarisTargetInfo<X86_32TargetInfo>>(Triple,
571580
Opts);
581+
case llvm::Triple::UEFI:
582+
return std::make_unique<UEFITargetInfo<X86_32TargetInfo>>(Triple, Opts);
572583
case llvm::Triple::Win32: {
573584
switch (Triple.getEnvironment()) {
574585
case llvm::Triple::Cygnus:
@@ -760,6 +771,9 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
760771
case llvm::Triple::FreeBSD:
761772
return std::make_unique<FreeBSDTargetInfo<LoongArch64TargetInfo>>(Triple,
762773
Opts);
774+
case llvm::Triple::UEFI:
775+
return std::make_unique<UEFITargetInfo<LoongArch64TargetInfo>>(Triple,
776+
Opts);
763777
default:
764778
return std::make_unique<LoongArch64TargetInfo>(Triple, Opts);
765779
}

clang/test/Preprocessor/init.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2835,6 +2835,11 @@
28352835
// RISCV64-LINUX: #define unix 1
28362836

28372837
// RUN: %clang_cc1 -dM -triple=x86_64-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2838+
// RUN: %clang_cc1 -dM -triple=armv7l-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2839+
// RUN: %clang_cc1 -dM -triple=aarch64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2840+
// RUN: %clang_cc1 -dM -triple=loongarch64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2841+
// RUN: %clang_cc1 -dM -triple=riscv64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2842+
// RUN: %clang_cc1 -dM -triple=x86_64-unknown-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
28382843

28392844
// UEFI: #define __UEFI__ 1
28402845

0 commit comments

Comments
 (0)