@@ -182,12 +182,10 @@ define i128 @or128(ptr %p) {
182
182
; X86-SSE2-NEXT: .cfi_offset %ebp, -8
183
183
; X86-SSE2-NEXT: movl %esp, %ebp
184
184
; X86-SSE2-NEXT: .cfi_def_cfa_register %ebp
185
- ; X86-SSE2-NEXT: pushl %edi
186
185
; X86-SSE2-NEXT: pushl %esi
187
- ; X86-SSE2-NEXT: andl $-8, %esp
188
- ; X86-SSE2-NEXT: subl $16, %esp
189
- ; X86-SSE2-NEXT: .cfi_offset %esi, -16
190
- ; X86-SSE2-NEXT: .cfi_offset %edi, -12
186
+ ; X86-SSE2-NEXT: andl $-16, %esp
187
+ ; X86-SSE2-NEXT: subl $32, %esp
188
+ ; X86-SSE2-NEXT: .cfi_offset %esi, -12
191
189
; X86-SSE2-NEXT: movl 8(%ebp), %esi
192
190
; X86-SSE2-NEXT: movl %esp, %eax
193
191
; X86-SSE2-NEXT: pushl $0
@@ -198,18 +196,11 @@ define i128 @or128(ptr %p) {
198
196
; X86-SSE2-NEXT: pushl %eax
199
197
; X86-SSE2-NEXT: calll __sync_fetch_and_or_16
200
198
; X86-SSE2-NEXT: addl $20, %esp
201
- ; X86-SSE2-NEXT: movl (%esp), %eax
202
- ; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
203
- ; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
204
- ; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edi
205
- ; X86-SSE2-NEXT: movl %edi, 8(%esi)
206
- ; X86-SSE2-NEXT: movl %edx, 12(%esi)
207
- ; X86-SSE2-NEXT: movl %eax, (%esi)
208
- ; X86-SSE2-NEXT: movl %ecx, 4(%esi)
199
+ ; X86-SSE2-NEXT: movaps (%esp), %xmm0
200
+ ; X86-SSE2-NEXT: movaps %xmm0, (%esi)
209
201
; X86-SSE2-NEXT: movl %esi, %eax
210
- ; X86-SSE2-NEXT: leal -8 (%ebp), %esp
202
+ ; X86-SSE2-NEXT: leal -4 (%ebp), %esp
211
203
; X86-SSE2-NEXT: popl %esi
212
- ; X86-SSE2-NEXT: popl %edi
213
204
; X86-SSE2-NEXT: popl %ebp
214
205
; X86-SSE2-NEXT: .cfi_def_cfa %esp, 4
215
206
; X86-SSE2-NEXT: retl $4
@@ -223,7 +214,7 @@ define i128 @or128(ptr %p) {
223
214
; X86-SLM-NEXT: .cfi_def_cfa_register %ebp
224
215
; X86-SLM-NEXT: pushl %edi
225
216
; X86-SLM-NEXT: pushl %esi
226
- ; X86-SLM-NEXT: andl $-8 , %esp
217
+ ; X86-SLM-NEXT: andl $-16 , %esp
227
218
; X86-SLM-NEXT: subl $16, %esp
228
219
; X86-SLM-NEXT: .cfi_offset %esi, -16
229
220
; X86-SLM-NEXT: .cfi_offset %edi, -12
@@ -263,7 +254,7 @@ define i128 @or128(ptr %p) {
263
254
; X86-ATOM-NEXT: .cfi_def_cfa_register %ebp
264
255
; X86-ATOM-NEXT: pushl %edi
265
256
; X86-ATOM-NEXT: pushl %esi
266
- ; X86-ATOM-NEXT: andl $-8 , %esp
257
+ ; X86-ATOM-NEXT: andl $-16 , %esp
267
258
; X86-ATOM-NEXT: leal -{{[0-9]+}}(%esp), %esp
268
259
; X86-ATOM-NEXT: .cfi_offset %esi, -16
269
260
; X86-ATOM-NEXT: .cfi_offset %edi, -12
@@ -528,8 +519,8 @@ define void @or128_nouse_seq_cst(ptr %p) {
528
519
; X86-SSE2-NEXT: .cfi_offset %ebp, -8
529
520
; X86-SSE2-NEXT: movl %esp, %ebp
530
521
; X86-SSE2-NEXT: .cfi_def_cfa_register %ebp
531
- ; X86-SSE2-NEXT: andl $-8 , %esp
532
- ; X86-SSE2-NEXT: subl $16 , %esp
522
+ ; X86-SSE2-NEXT: andl $-16 , %esp
523
+ ; X86-SSE2-NEXT: subl $32 , %esp
533
524
; X86-SSE2-NEXT: movl %esp, %eax
534
525
; X86-SSE2-NEXT: pushl $0
535
526
; X86-SSE2-NEXT: pushl $0
@@ -551,8 +542,8 @@ define void @or128_nouse_seq_cst(ptr %p) {
551
542
; X86-SLM-NEXT: .cfi_offset %ebp, -8
552
543
; X86-SLM-NEXT: movl %esp, %ebp
553
544
; X86-SLM-NEXT: .cfi_def_cfa_register %ebp
554
- ; X86-SLM-NEXT: andl $-8 , %esp
555
- ; X86-SLM-NEXT: subl $16 , %esp
545
+ ; X86-SLM-NEXT: andl $-16 , %esp
546
+ ; X86-SLM-NEXT: subl $32 , %esp
556
547
; X86-SLM-NEXT: movl 8(%ebp), %eax
557
548
; X86-SLM-NEXT: movl %esp, %ecx
558
549
; X86-SLM-NEXT: pushl $0
@@ -575,7 +566,7 @@ define void @or128_nouse_seq_cst(ptr %p) {
575
566
; X86-ATOM-NEXT: .cfi_offset %ebp, -8
576
567
; X86-ATOM-NEXT: leal (%esp), %ebp
577
568
; X86-ATOM-NEXT: .cfi_def_cfa_register %ebp
578
- ; X86-ATOM-NEXT: andl $-8 , %esp
569
+ ; X86-ATOM-NEXT: andl $-16 , %esp
579
570
; X86-ATOM-NEXT: leal -{{[0-9]+}}(%esp), %esp
580
571
; X86-ATOM-NEXT: movl 8(%ebp), %eax
581
572
; X86-ATOM-NEXT: movl %esp, %ecx
0 commit comments