From ba7a75c7b2d56c89d20500290b97565ecd44ea80 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 22 Sep 2017 04:31:44 +0000 Subject: AArch64: support SwiftCC properly on AAPCS64 The previous SwiftCC support for AAPCS64 was partially correct. It setup swiftself parameters in the proper register but failed to setup swifterror in the correct register. This would break compilation of swift code for non-Darwin AAPCS64 conforming environments. llvm-svn: 313956 --- llvm/test/CodeGen/AArch64/swift-error.ll | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 llvm/test/CodeGen/AArch64/swift-error.ll (limited to 'llvm/test/CodeGen/AArch64/swift-error.ll') diff --git a/llvm/test/CodeGen/AArch64/swift-error.ll b/llvm/test/CodeGen/AArch64/swift-error.ll new file mode 100644 index 00000000000..79a31c19be1 --- /dev/null +++ b/llvm/test/CodeGen/AArch64/swift-error.ll @@ -0,0 +1,18 @@ +; RUN: llc -mtriple aarch64-unknown-linux-gnu -filetype asm -o - %s | FileCheck %s + +%swift.error = type opaque + +declare swiftcc void @f(%swift.error** swifterror) + +define swiftcc void @g(i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %swift.error** swifterror %error) { +entry: + call swiftcc void @f(%swift.error** nonnull nocapture swifterror %error) + ret void +} + +; CHEECK-LABEL: g +; CHECK: str x30, [sp, #-16]! +; CHECK: bl f +; CHECK: ldr x30, [sp], #16 +; CHECK: ret + -- cgit v1.2.3