[llvm] d55d72e - [llvm-rc] Support ARM64EC resource generation (#78908)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 31 03:49:33 PST 2024
Author: Billy Laws
Date: 2024-01-31T13:49:28+02:00
New Revision: d55d72e931bab77a3d1265cf03f4da7858a49478
URL: https://github.com/llvm/llvm-project/commit/d55d72e931bab77a3d1265cf03f4da7858a49478
DIFF: https://github.com/llvm/llvm-project/commit/d55d72e931bab77a3d1265cf03f4da7858a49478.diff
LOG: [llvm-rc] Support ARM64EC resource generation (#78908)
This is already supported in llvm-cvtres, so only a small change is
needed.
Added:
Modified:
llvm/test/tools/llvm-rc/windres-prefix.test
llvm/tools/llvm-rc/llvm-rc.cpp
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-rc/windres-prefix.test b/llvm/test/tools/llvm-rc/windres-prefix.test
index 9d24bf9ee7b2a..4c53fdfc3db65 100644
--- a/llvm/test/tools/llvm-rc/windres-prefix.test
+++ b/llvm/test/tools/llvm-rc/windres-prefix.test
@@ -5,14 +5,22 @@
; Check that a triple prefix on the executable gets picked up as target triple.
; RUN: ln -fs llvm-windres %t/aarch64-w64-mingw32-windres
+; RUN: ln -fs llvm-windres %t/arm64ec-w64-mingw32-windres
; RUN: %t/aarch64-w64-mingw32-windres -### %p/Inputs/empty.rc %t.res | FileCheck %s --check-prefix=CHECK-PREPROC
+; RUN: %t/arm64ec-w64-mingw32-windres -### %p/Inputs/empty.rc %t.res | FileCheck %s --check-prefix=CHECK-PREPROC-EC
; CHECK-PREPROC: "clang" "--driver-mode=gcc" "-target" "aarch64-w64-mingw32"
+; CHECK-PREPROC-EC: "clang" "--driver-mode=gcc" "-target" "arm64ec-w64-mingw32"
; Check that the triple prefix also affects the output object file type.
; RUN: %t/aarch64-w64-mingw32-windres --no-preprocess %p/Inputs/tag-stringtable-basic.rc %t.o
+; RUN: %t/arm64ec-w64-mingw32-windres --no-preprocess %p/Inputs/tag-stringtable-basic.rc %t-ec.o
; RUN: llvm-readobj --coff-resources %t.o | FileCheck %s --check-prefix=CHECK-OBJ
+; RUN: llvm-readobj --coff-resources %t-ec.o | FileCheck %s --check-prefix=CHECK-OBJ-EC
; CHECK-OBJ: Format: COFF-ARM64
; CHECK-OBJ: Resources [
; CHECK-OBJ: Total Number of Resources:
+; CHECK-OBJ-EC: Format: COFF-ARM64EC
+; CHECK-OBJ-EC: Resources [
+; CHECK-OBJ-EC: Total Number of Resources:
diff --git a/llvm/tools/llvm-rc/llvm-rc.cpp b/llvm/tools/llvm-rc/llvm-rc.cpp
index 1c3379a3a9678..51214524adeef 100644
--- a/llvm/tools/llvm-rc/llvm-rc.cpp
+++ b/llvm/tools/llvm-rc/llvm-rc.cpp
@@ -710,7 +710,10 @@ void doCvtres(std::string Src, std::string Dest, std::string TargetTriple) {
MachineType = COFF::IMAGE_FILE_MACHINE_ARMNT;
break;
case Triple::aarch64:
- MachineType = COFF::IMAGE_FILE_MACHINE_ARM64;
+ if (T.isWindowsArm64EC())
+ MachineType = COFF::IMAGE_FILE_MACHINE_ARM64EC;
+ else
+ MachineType = COFF::IMAGE_FILE_MACHINE_ARM64;
break;
default:
fatalError("Unsupported architecture in target '" + Twine(TargetTriple) +
More information about the llvm-commits
mailing list