Don't add suffixes for stdcall/fastcall on 64 coff.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 9 Dec 2013 20:44:48 +0000 (20:44 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 9 Dec 2013 20:44:48 +0000 (20:44 +0000)
This matches the behavior of both msvc and mingw.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196814 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
test/CodeGen/X86/fastcall-correct-mangling.ll

index 9304decce723c1deece38426bd68241a9250b0db..bb31c472d48b206aec19a62cb73b056d441e0e81 100644 (file)
@@ -128,6 +128,7 @@ X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft(const Triple &Triple) {
   if (Triple.getArch() == Triple::x86_64) {
     GlobalPrefix = '\0';
     PrivateGlobalPrefix = ".L";
+    HasMicrosoftFastStdCallMangling = false;
   }
 
   AssemblerDialect = AsmWriterFlavor;
@@ -143,6 +144,7 @@ X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
   if (Triple.getArch() == Triple::x86_64) {
     GlobalPrefix = '\0';
     PrivateGlobalPrefix = ".L";
+    HasMicrosoftFastStdCallMangling = false;
   }
 
   AssemblerDialect = AsmWriterFlavor;
index 3569d36541f7a48b2dfcf2728fa9a4dc778269d7..15cffa4fbd0620639b23a68805a68b0de01a4f12 100644 (file)
@@ -1,14 +1,26 @@
-; RUN: llc < %s -mtriple=i386-unknown-mingw32 | FileCheck %s
+; RUN: llc < %s -mtriple=i386-unknown-mingw32 | \
+; RUN: FileCheck --check-prefix=CHECK32 %s
+
+; RUN: llc < %s -mtriple=i386-unknown-win32 | \
+; RUN: FileCheck --check-prefix=CHECK32 %s
+
+; RUN: llc < %s -mtriple=x86_64-unknown-mingw32 | \
+; RUN: FileCheck --check-prefix=CHECK64 %s
+
+; RUN: llc < %s -mtriple=x86_64-unknown-mingw32 | \
+; RUN: FileCheck --check-prefix=CHECK64 %s
 
 ; Check that a fastcall function gets correct mangling
 
 define x86_fastcallcc void @func(i64 %X, i8 %Y, i8 %G, i16 %Z) {
-; CHECK: @func@20:
+; CHECK32-LABEL: {{^}}@func@20:
+; CHECK64-LABEL: {{^}}func:
         ret void
 }
 
 define x86_fastcallcc i32 @"\01DoNotMangle"(i32 %a) {
-; CHECK: DoNotMangle:
+; CHECK32-LABEL: {{^}}DoNotMangle:
+; CHECK64-LABEL: {{^}}DoNotMangle:
 entry:
   ret i32 %a
 }