https://github.com/bylaws created 
https://github.com/llvm/llvm-project/pull/78913

This is required so that the linker knows that any symbols defined in assembly 
code are ARM64EC rather than X86_64.

CC: @cjacek 

>From 4e2390bd8ec88af0bae6bb4fa99ebef1f966849a Mon Sep 17 00:00:00 2001
From: Billy Laws <blaw...@gmail.com>
Date: Tue, 19 Sep 2023 18:03:41 +0100
Subject: [PATCH] [Clang][AArch64] Define __USER_LABEL_PREFIX__ to # for
 ARM64EC

This is required so that the linker knows that any symbols defined in
assembly code are ARM64EC rather than X86_64.
---
 clang/lib/Basic/Targets/AArch64.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/clang/lib/Basic/Targets/AArch64.cpp 
b/clang/lib/Basic/Targets/AArch64.cpp
index d47181bfca4fc8..4f57c30279a91f 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -1462,10 +1462,12 @@ WindowsARM64TargetInfo::WindowsARM64TargetInfo(const 
llvm::Triple &Triple,
 }
 
 void WindowsARM64TargetInfo::setDataLayout() {
-  resetDataLayout(Triple.isOSBinFormatMachO()
-                      ? "e-m:o-i64:64-i128:128-n32:64-S128"
-                      : "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128",
-                  Triple.isOSBinFormatMachO() ? "_" : "");
+  if (Triple.isOSBinFormatMachO()) {
+    resetDataLayout("e-m:o-i64:64-i128:128-n32:64-S128", "_");
+  } else {
+    resetDataLayout("e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128",
+                    Triple.isWindowsArm64EC() ? "#" : "");
+  }
 }
 
 TargetInfo::BuiltinVaListKind

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to