]> granicus.if.org Git - clang/commitdiff
Revert "[COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry"
authorMandeep Singh Grang <mgrang@codeaurora.org>
Thu, 1 Nov 2018 18:38:26 +0000 (18:38 +0000)
committerMandeep Singh Grang <mgrang@codeaurora.org>
Thu, 1 Nov 2018 18:38:26 +0000 (18:38 +0000)
This reverts commit 619111f5ccf349b635e4987ec02d15777c571495.

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

lib/CodeGen/CGBuiltin.cpp
test/CodeGen/ms-setjmp.c

index c67db26711a7d960ad4c7cc22cf753e4bf57b9eb..bf53e25b2f9fbcac0e20373f031c282730b2d83a 100644 (file)
@@ -711,11 +711,8 @@ static RValue EmitMSVCRTSetJmp(CodeGenFunction &CGF, MSVCSetJmpKind SJKind,
   } else {
     Name = SJKind == MSVCSetJmpKind::_setjmp ? "_setjmp" : "_setjmpex";
     Arg1Ty = CGF.Int8PtrTy;
-    if (CGF.getTarget().getTriple().getArch() == llvm::Triple::aarch64) {
-      Arg1 = CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(Intrinsic::sponentry));
-    } else
-      Arg1 = CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(Intrinsic::frameaddress),
-                                    llvm::ConstantInt::get(CGF.Int32Ty, 0));
+    Arg1 = CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(Intrinsic::frameaddress),
+                                  llvm::ConstantInt::get(CGF.Int32Ty, 0));
   }
 
   // Mark the call site and declaration with ReturnsTwice.
index a6e30cb96aa4796e51ac28d35891d4a224244f1a..d92f4d00ff5c23a6aef815a90391e605c4f3c0a2 100644 (file)
@@ -25,7 +25,7 @@ int test_setjmp() {
   // X64-NEXT:  ret i32 %[[call]]
 
   // AARCH64-LABEL: define dso_local i32 @test_setjmp
-  // AARCH64:       %[[addr:.*]] = call i8* @llvm.sponentry()
+  // AARCH64:       %[[addr:.*]] = call i8* @llvm.frameaddress(i32 0)
   // AARCH64:       %[[call:.*]] = call i32 @_setjmpex(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @jb, i32 0, i32 0), i8* %[[addr]])
   // AARCH64-NEXT:  ret i32 %[[call]]
 }
@@ -38,7 +38,7 @@ int test_setjmpex() {
   // X64-NEXT:  ret i32 %[[call]]
 
   // AARCH64-LABEL: define dso_local i32 @test_setjmpex
-  // AARCH64:       %[[addr:.*]] = call i8* @llvm.sponentry()
+  // AARCH64:       %[[addr:.*]] = call i8* @llvm.frameaddress(i32 0)
   // AARCH64:       %[[call:.*]] = call i32 @_setjmpex(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @jb, i32 0, i32 0), i8* %[[addr]])
   // AARCH64-NEXT:  ret i32 %[[call]]
 }