@@ -38,8 +38,9 @@ func addFDF(x: Float, y: Double, z: Float) -> Float {
3838// CHECK: fadd double
3939// CHECK: ret double
4040// V7K-LABEL: _$s8test_v7k8addStack
41+ // V7K: mov r7, sp
4142// V7K: sub sp, #72
42- // V7K: vldr d16, [sp , #72 ]
43+ // V7K: vldr d16, [r7 , #8 ]
4344// V7K: vadd.f64 d0, d6, d16
4445// a is assigned to d6, c is passed via stack
4546func addStack( d0: Double , d1: Double , d2: Double , d3: Double , d4: Double ,
@@ -50,8 +51,9 @@ func addStack(d0: Double, d1: Double, d2: Double, d3: Double, d4: Double,
5051// CHECK-LABEL: define hidden swiftcc float @"$s8test_v7k9addStack{{.*}}"(double %0, double %1, double %2, double %3, double %4, double %5, double %6, float %7, double %8, float %9)
5152// CHECK: fadd float
5253// V7K-LABEL: _$s8test_v7k9addStack
54+ // V7K: mov r7, sp
5355// V7K: sub sp, #80
54- // V7K: vldr s0, [sp , #88 ]
56+ // V7K: vldr s0, [r7 , #16 ]
5557// V7K: vadd.f32 s0, s14, s0
5658// a is assigned to s14, b is via stack, c is via stack since it can't be back-filled to s15
5759func addStack2( d0: Double , d1: Double , d2: Double , d3: Double , d4: Double ,
@@ -81,11 +83,12 @@ func testSingle(x: SingleCase) -> Int32{
8183// CHECK-LABEL: define hidden swiftcc double @"$s8test_v7k0A4Data{{.*}}"(i32 %0, double %1)
8284// CHECK: ret double
8385// V7K-LABEL: _$s8test_v7k0A4Data
86+ // V7K: push {r7, lr}
8487// V7K: vstr d0, [sp, #16]
8588// V7K: vldr d16, [sp, #16]
8689// V7K: vstr d16, [sp, #8]
8790// V7K: vldr d0, [sp, #8]
88- // V7K: bx lr
91+ // V7K: pop {r7, pc}
8992enum DataCase { case Y( Int , Double ) }
9093func testData( x: DataCase ) -> Double {
9194 switch x {
@@ -184,6 +187,7 @@ func testSingleP(x: SinglePayload) -> Double {
184187// CHECK: phi double [ 0.000000e+00, {{.*}} ]
185188// CHECK: ret double
186189// V7K-LABEL: _$s8test_v7k0A6MultiP
190+ // V7K: push {r7, lr}
187191// V7K: ldr r0, [sp, #24]
188192// V7K: ldr r1, [sp, #28]
189193// V7K: vmov d16, r0, r1
@@ -192,7 +196,7 @@ func testSingleP(x: SinglePayload) -> Double {
192196// V7K: vstr d16, [sp]
193197// V7K: vldr d0, [sp]
194198// V7K: add sp, #{{[0-9]+}}
195- // V7K: bx lr
199+ // V7K: pop {r7, pc}
196200// Backend will assign r0, r1 and r2 for input parameters and d0 for return values.
197201class Bignum { }
198202enum MultiPayload {
0 commit comments