@@ -120,26 +120,30 @@ define void @caller1(ptr %a) {
120120; WIN-NEXT: .seh_save_regp x27, 64
121121; WIN-NEXT: str x30, [sp, #80] // 8-byte Folded Spill
122122; WIN-NEXT: .seh_save_reg x30, 80
123- ; WIN-NEXT: stp d8, d9, [sp, #88] // 16-byte Folded Spill
124- ; WIN-NEXT: .seh_save_fregp d8, 88
125- ; WIN-NEXT: stp d10, d11, [sp, #104] // 16-byte Folded Spill
126- ; WIN-NEXT: .seh_save_fregp d10, 104
127- ; WIN-NEXT: stp d12, d13, [sp, #120] // 16-byte Folded Spill
128- ; WIN-NEXT: .seh_save_fregp d12, 120
129- ; WIN-NEXT: stp d14, d15, [sp, #136] // 16-byte Folded Spill
130- ; WIN-NEXT: .seh_save_fregp d14, 136
123+ ; WIN-NEXT: str d8, [sp, #88] // 8-byte Folded Spill
124+ ; WIN-NEXT: .seh_save_freg d8, 88
125+ ; WIN-NEXT: stp d9, d10, [sp, #96] // 16-byte Folded Spill
126+ ; WIN-NEXT: .seh_save_fregp d9, 96
127+ ; WIN-NEXT: stp d11, d12, [sp, #112] // 16-byte Folded Spill
128+ ; WIN-NEXT: .seh_save_fregp d11, 112
129+ ; WIN-NEXT: stp d13, d14, [sp, #128] // 16-byte Folded Spill
130+ ; WIN-NEXT: .seh_save_fregp d13, 128
131+ ; WIN-NEXT: str d15, [sp, #144] // 8-byte Folded Spill
132+ ; WIN-NEXT: .seh_save_freg d15, 144
131133; WIN-NEXT: .seh_endprologue
132134; WIN-NEXT: mov x20, x0
133135; WIN-NEXT: bl callee
134136; WIN-NEXT: .seh_startepilogue
135- ; WIN-NEXT: ldp d14, d15, [sp, #136] // 16-byte Folded Reload
136- ; WIN-NEXT: .seh_save_fregp d14, 136
137- ; WIN-NEXT: ldp d12, d13, [sp, #120] // 16-byte Folded Reload
138- ; WIN-NEXT: .seh_save_fregp d12, 120
139- ; WIN-NEXT: ldp d10, d11, [sp, #104] // 16-byte Folded Reload
140- ; WIN-NEXT: .seh_save_fregp d10, 104
141- ; WIN-NEXT: ldp d8, d9, [sp, #88] // 16-byte Folded Reload
142- ; WIN-NEXT: .seh_save_fregp d8, 88
137+ ; WIN-NEXT: ldr d15, [sp, #144] // 8-byte Folded Reload
138+ ; WIN-NEXT: .seh_save_freg d15, 144
139+ ; WIN-NEXT: ldp d13, d14, [sp, #128] // 16-byte Folded Reload
140+ ; WIN-NEXT: .seh_save_fregp d13, 128
141+ ; WIN-NEXT: ldp d11, d12, [sp, #112] // 16-byte Folded Reload
142+ ; WIN-NEXT: .seh_save_fregp d11, 112
143+ ; WIN-NEXT: ldp d9, d10, [sp, #96] // 16-byte Folded Reload
144+ ; WIN-NEXT: .seh_save_fregp d9, 96
145+ ; WIN-NEXT: ldr d8, [sp, #88] // 8-byte Folded Reload
146+ ; WIN-NEXT: .seh_save_freg d8, 88
143147; WIN-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload
144148; WIN-NEXT: .seh_save_reg x30, 80
145149; WIN-NEXT: ldp x27, x28, [sp, #64] // 16-byte Folded Reload
@@ -456,14 +460,16 @@ define i64 @caller3() {
456460; WIN-NEXT: .seh_save_regp x27, 80
457461; WIN-NEXT: str x30, [sp, #96] // 8-byte Folded Spill
458462; WIN-NEXT: .seh_save_reg x30, 96
459- ; WIN-NEXT: stp d8, d9, [sp, #104] // 16-byte Folded Spill
460- ; WIN-NEXT: .seh_save_fregp d8, 104
461- ; WIN-NEXT: stp d10, d11, [sp, #120] // 16-byte Folded Spill
462- ; WIN-NEXT: .seh_save_fregp d10, 120
463- ; WIN-NEXT: stp d12, d13, [sp, #136] // 16-byte Folded Spill
464- ; WIN-NEXT: .seh_save_fregp d12, 136
465- ; WIN-NEXT: stp d14, d15, [sp, #152] // 16-byte Folded Spill
466- ; WIN-NEXT: .seh_save_fregp d14, 152
463+ ; WIN-NEXT: str d8, [sp, #104] // 8-byte Folded Spill
464+ ; WIN-NEXT: .seh_save_freg d8, 104
465+ ; WIN-NEXT: stp d9, d10, [sp, #112] // 16-byte Folded Spill
466+ ; WIN-NEXT: .seh_save_fregp d9, 112
467+ ; WIN-NEXT: stp d11, d12, [sp, #128] // 16-byte Folded Spill
468+ ; WIN-NEXT: .seh_save_fregp d11, 128
469+ ; WIN-NEXT: stp d13, d14, [sp, #144] // 16-byte Folded Spill
470+ ; WIN-NEXT: .seh_save_fregp d13, 144
471+ ; WIN-NEXT: str d15, [sp, #160] // 8-byte Folded Spill
472+ ; WIN-NEXT: .seh_save_freg d15, 160
467473; WIN-NEXT: .seh_endprologue
468474; WIN-NEXT: mov w8, #24 // =0x18
469475; WIN-NEXT: mov w20, #1 // =0x1
@@ -492,14 +498,16 @@ define i64 @caller3() {
492498; WIN-NEXT: str x8, [sp]
493499; WIN-NEXT: bl callee_with_many_param
494500; WIN-NEXT: .seh_startepilogue
495- ; WIN-NEXT: ldp d14, d15, [sp, #152] // 16-byte Folded Reload
496- ; WIN-NEXT: .seh_save_fregp d14, 152
497- ; WIN-NEXT: ldp d12, d13, [sp, #136] // 16-byte Folded Reload
498- ; WIN-NEXT: .seh_save_fregp d12, 136
499- ; WIN-NEXT: ldp d10, d11, [sp, #120] // 16-byte Folded Reload
500- ; WIN-NEXT: .seh_save_fregp d10, 120
501- ; WIN-NEXT: ldp d8, d9, [sp, #104] // 16-byte Folded Reload
502- ; WIN-NEXT: .seh_save_fregp d8, 104
501+ ; WIN-NEXT: ldr d15, [sp, #160] // 8-byte Folded Reload
502+ ; WIN-NEXT: .seh_save_freg d15, 160
503+ ; WIN-NEXT: ldp d13, d14, [sp, #144] // 16-byte Folded Reload
504+ ; WIN-NEXT: .seh_save_fregp d13, 144
505+ ; WIN-NEXT: ldp d11, d12, [sp, #128] // 16-byte Folded Reload
506+ ; WIN-NEXT: .seh_save_fregp d11, 128
507+ ; WIN-NEXT: ldp d9, d10, [sp, #112] // 16-byte Folded Reload
508+ ; WIN-NEXT: .seh_save_fregp d9, 112
509+ ; WIN-NEXT: ldr d8, [sp, #104] // 8-byte Folded Reload
510+ ; WIN-NEXT: .seh_save_freg d8, 104
503511; WIN-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload
504512; WIN-NEXT: .seh_save_reg x30, 96
505513; WIN-NEXT: ldp x27, x28, [sp, #80] // 16-byte Folded Reload
0 commit comments