|
37 | 37 | // CHECK: [[exe:%.*]] = load %swift.executor*, %swift.executor** [[exe_addr]]
|
38 | 38 | // CHECK: store %swift.executor* [[exe]], %swift.executor** [[exectuor_addr]]
|
39 | 39 | // Initialize the async task with the continuation function and async continuation context.
|
40 |
| -// CHECK: [[task_continuation_fn_addr:%.*]] = getelementptr inbounds %swift.task, %swift.task* [[tsk]], i32 0, i32 4 |
| 40 | +// CHECK: [[continuation_fn_addr:%.*]] = getelementptr inbounds %swift.task, %swift.task* [[tsk]], i32 0, i32 4 |
41 | 41 | // CHECK: [[continuation_fn:%.*]] = call i8* @llvm.coro.async.resume()
|
42 |
| -// CHECK: store i8* [[continuation_fn]], i8** [[task_continuation_fn_addr]] |
| 42 | + |
| 43 | +// CHECK-arm64e: [[continuation_fn_addr_int:%[0-9]+]] = ptrtoint i8** [[continuation_fn_addr]] to i64 |
| 44 | +// CHECK-arm64e: [[ptrauth_blend:%[0-9]+]] = call i64 @llvm.ptrauth.blend.i64(i64 [[continuation_fn_addr_int]], i64 11330) |
| 45 | +// CHECK-arm64e: [[continuation_fn_int:%[0-9]+]] = ptrtoint i8* [[continuation_fn]] to i64 |
| 46 | +// CHECK-arm64e: [[signed_int:%[0-9]+]] = call i64 @llvm.ptrauth.sign.i64(i64 [[continuation_fn_int]], i32 0, i64 [[ptrauth_blend]]) |
| 47 | +// CHECK-arm64e: [[signed_continuation_fn:%[0-9]+]] = inttoptr i64 [[signed_int]] to i8* |
| 48 | +// CHECK-arm64e: store i8* [[signed_continuation_fn]], i8** [[continuation_fn_addr]] |
| 49 | +// CHECK-x86_64: store i8* [[continuation_fn]], i8** [[continuation_fn_addr]] |
| 50 | + |
43 | 51 | // CHECK: [[task_resume_context_addr:%.*]] = getelementptr inbounds %swift.task, %swift.task* [[tsk]], i32 0, i32 5
|
44 | 52 | // CHECK: [[task_resume_context:%.*]] = bitcast %swift.async_continuation_context* [[cont_context]] to %swift.context*
|
45 | 53 |
|
|
0 commit comments