[llvm] r285431 - Make swift calling convention test specific to armv7
Arnold Schwaighofer via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 28 12:18:09 PDT 2016
Author: arnolds
Date: Fri Oct 28 14:18:09 2016
New Revision: 285431
URL: http://llvm.org/viewvc/llvm-project?rev=285431&view=rev
Log:
Make swift calling convention test specific to armv7
Modified:
llvm/trunk/test/CodeGen/ARM/swifterror.ll
Modified: llvm/trunk/test/CodeGen/ARM/swifterror.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/swifterror.ll?rev=285431&r1=285430&r2=285431&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/swifterror.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/swifterror.ll Fri Oct 28 14:18:09 2016
@@ -1,4 +1,4 @@
-; RUN: llc -verify-machineinstrs < %s -mtriple=armv7-apple-ios | FileCheck --check-prefix=CHECK-APPLE %s
+; RUN: llc -verify-machineinstrs < %s -mtriple=armv7-apple-ios | FileCheck --check-prefix=CHECK-APPLE --check-prefix=CHECK-ARMV7 %s
; RUN: llc -verify-machineinstrs -O0 < %s -mtriple=armv7-apple-ios | FileCheck --check-prefix=CHECK-O0 %s
declare i8* @malloc(i64)
@@ -413,35 +413,34 @@ define swiftcc void @swifterror_reg_clob
ret void
}
-; CHECK-APPLE-LABEL: _params_in_reg
+; CHECK-ARMV7-LABEL: _params_in_reg
; Store callee saved registers excluding swifterror.
-; CHECK-APPLE: push {r8, r10, r11, r4, r5, r7, lr}
+; CHECK-ARMV7: push {r8, r10, r11, r4, r5, r7, lr}
; Store swiftself (r10) and swifterror (r6).
-; CHECK-APPLE: str r6, [sp, #4]
-; CHECK-APPLE: str r10, [sp]
+; CHECK-ARMV7-DAG: str r6, [s[[STK1:.*]]]
+; CHECK-ARMV7-DAG: str r10, [s[[STK2:.*]]]
; Store arguments.
-; CHECK-APPLE: mov r4, r3
-; CHECK-APPLE: mov r5, r2
-; CHECK-APPLE: mov r8, r1
-; CHECK-APPLE: mov r11, r0
+; CHECK-ARMV7: mov r4, r3
+; CHECK-ARMV7: mov r5, r2
+; CHECK-ARMV7: mov r8, r1
+; CHECK-ARMV7: mov r11, r0
; Setup call.
-; CHECK-APPLE: mov r0, #1
-; CHECK-APPLE: mov r1, #2
-; CHECK-APPLE: mov r2, #3
-; CHECK-APPLE: mov r3, #4
-; CHECK-APPLE: mov r10, #0
-; CHECK-APPLE: mov r6, #0
-; CHECK-APPLE: bl _params_in_reg2
+; CHECK-ARMV7: mov r0, #1
+; CHECK-ARMV7: mov r1, #2
+; CHECK-ARMV7: mov r2, #3
+; CHECK-ARMV7: mov r3, #4
+; CHECK-ARMV7: mov r10, #0
+; CHECK-ARMV7: mov r6, #0
+; CHECK-ARMV7: bl _params_in_reg2
; Restore original arguments.
-; CHECK-APPLE: ldr r10, [sp]
-; CHECK-APPLE: ldr r6, [sp, #4]
-; CHECK-APPLE: mov r0, r11
-; CHECK-APPLE: mov r1, r8
-; CHECK-APPLE: mov r2, r5
-; CHECK-APPLE: mov r3, r4
-; CHECK-APPLE: bl _params_in_reg2
-; CHECK-APPLE: sub sp, r7, #20
-; CHECK-APPLE: pop {r8, r10, r11, r4, r5, r7, pc}
+; CHECK-ARMV7-DAG: ldr r10, [s[[STK2]]]
+; CHECK-ARMV7-DAG: ldr r6, [s[[STK1]]]
+; CHECK-ARMV7: mov r0, r11
+; CHECK-ARMV7: mov r1, r8
+; CHECK-ARMV7: mov r2, r5
+; CHECK-ARMV7: mov r3, r4
+; CHECK-ARMV7: bl _params_in_reg2
+; CHECK-ARMV7: pop {r8, r10, r11, r4, r5, r7, pc}
define swiftcc void @params_in_reg(i32, i32, i32, i32, i8* swiftself, %swift_error** nocapture swifterror %err) {
%error_ptr_ref = alloca swifterror %swift_error*, align 8
store %swift_error* null, %swift_error** %error_ptr_ref
@@ -451,60 +450,59 @@ define swiftcc void @params_in_reg(i32,
}
declare swiftcc void @params_in_reg2(i32, i32, i32, i32, i8* swiftself, %swift_error** nocapture swifterror %err)
-; CHECK-LABEL: params_and_return_in_reg
-; CHECK-APPLE: push {r8, r10, r11, r4, r5, r7, lr}
+; CHECK-ARMV7-LABEL: params_and_return_in_reg
+; CHECK-ARMV7: push {r8, r10, r11, r4, r5, r7, lr}
; Store swifterror and swiftself
-; CHECK-APPLE: mov r4, r6
-; CHECK-APPLE: str r10, [sp, #12]
+; CHECK-ARMV7: mov r4, r6
+; CHECK-ARMV7: str r10, [s[[STK1:.*]]]
; Store arguments.
-; CHECK-APPLE: str r3, [sp, #8]
-; CHECK-APPLE: mov r5, r2
-; CHECK-APPLE: mov r8, r1
-; CHECK-APPLE: mov r11, r0
+; CHECK-ARMV7: str r3, [s[[STK2:.*]]]
+; CHECK-ARMV7: mov r5, r2
+; CHECK-ARMV7: mov r8, r1
+; CHECK-ARMV7: mov r11, r0
; Setup call.
-; CHECK-APPLE: mov r0, #1
-; CHECK-APPLE: mov r1, #2
-; CHECK-APPLE: mov r2, #3
-; CHECK-APPLE: mov r3, #4
-; CHECK-APPLE: mov r10, #0
-; CHECK-APPLE: mov r6, #0
-; CHECK-APPLE: bl _params_in_reg2
+; CHECK-ARMV7: mov r0, #1
+; CHECK-ARMV7: mov r1, #2
+; CHECK-ARMV7: mov r2, #3
+; CHECK-ARMV7: mov r3, #4
+; CHECK-ARMV7: mov r10, #0
+; CHECK-ARMV7: mov r6, #0
+; CHECK-ARMV7: bl _params_in_reg2
; Restore original arguments.
-; CHECK-APPLE: ldr r3, [sp, #8]
-; CHECK-APPLE: ldr r10, [sp, #12]
+; CHECK-ARMV7: ldr r3, [s[[STK2]]]
+; CHECK-ARMV7: ldr r10, [s[[STK1]]]
; Store %error_ptr_ref;
-; CHECK-APPLE: str r6, [sp, #4]
+; CHECK-ARMV7: str r6, [s[[STK3:.*]]]
; Restore original arguments.
-; CHECK-APPLE: mov r0, r11
-; CHECK-APPLE: mov r1, r8
-; CHECK-APPLE: mov r2, r5
-; CHECK-APPLE: mov r6, r4
-; CHECK-APPLE: bl _params_and_return_in_reg2
+; CHECK-ARMV7: mov r0, r11
+; CHECK-ARMV7: mov r1, r8
+; CHECK-ARMV7: mov r2, r5
+; CHECK-ARMV7: mov r6, r4
+; CHECK-ARMV7: bl _params_and_return_in_reg2
; Store swifterror return %err;
-; CHECK-APPLE: str r6, [sp, #12]
+; CHECK-ARMV7: str r6, [s[[STK1]]]
; Load swifterror value %error_ptr_ref.
-; CHECK-APPLE: ldr r6, [sp, #4]
+; CHECK-ARMV7: ldr r6, [s[[STK3]]]
; Save return values.
-; CHECK-APPLE: mov r5, r0
-; CHECK-APPLE: mov r4, r1
-; CHECK-APPLE: mov r8, r2
-; CHECK-APPLE: mov r11, r3
+; CHECK-ARMV7: mov r5, r0
+; CHECK-ARMV7: mov r4, r1
+; CHECK-ARMV7: mov r8, r2
+; CHECK-ARMV7: mov r11, r3
; Setup call.
-; CHECK-APPLE: mov r0, #1
-; CHECK-APPLE: mov r1, #2
-; CHECK-APPLE: mov r2, #3
-; CHECK-APPLE: mov r3, #4
-; CHECK-APPLE: mov r10, #0
-; CHECK-APPLE: bl _params_in_reg2
+; CHECK-ARMV7: mov r0, #1
+; CHECK-ARMV7: mov r1, #2
+; CHECK-ARMV7: mov r2, #3
+; CHECK-ARMV7: mov r3, #4
+; CHECK-ARMV7: mov r10, #0
+; CHECK-ARMV7: bl _params_in_reg2
; Load swifterror %err;
-; CHECK-APPLE: ldr r6, [sp, #12]
+; CHECK-ARMV7: ldr r6, [s[[STK1]]]
; Restore return values for returning.
-; CHECK-APPLE: mov r0, r5
-; CHECK-APPLE: mov r1, r4
-; CHECK-APPLE: mov r2, r8
-; CHECK-APPLE: mov r3, r11
-; CHECK-APPLE: sub sp, r7, #20
-; CHECK-APPLE: pop {r8, r10, r11, r4, r5, r7, pc}
+; CHECK-ARMV7: mov r0, r5
+; CHECK-ARMV7: mov r1, r4
+; CHECK-ARMV7: mov r2, r8
+; CHECK-ARMV7: mov r3, r11
+; CHECK-ARMV7: pop {r8, r10, r11, r4, r5, r7, pc}
define swiftcc { i32, i32, i32, i32} @params_and_return_in_reg(i32, i32, i32, i32, i8* swiftself, %swift_error** nocapture swifterror %err) {
%error_ptr_ref = alloca swifterror %swift_error*, align 8
store %swift_error* null, %swift_error** %error_ptr_ref
More information about the llvm-commits
mailing list