Lines Matching +full:0 +full:x64

3 …s -mcpu=generic -mtriple=x86_64-linux  -verify-machineinstrs | FileCheck %s -check-prefix=X64-Linux
4 …e=x86_64-linux -code-model=large -verify-machineinstrs | FileCheck %s -check-prefix=X64-Linux-Large
7 … -mcpu=generic -mtriple=x86_64-darwin -verify-machineinstrs | FileCheck %s -check-prefix=X64-Darwin
9 …mcpu=generic -mtriple=x86_64-freebsd -verify-machineinstrs | FileCheck %s -check-prefix=X64-FreeBSD
11 …pu=generic -mtriple=x86_64-dragonfly -verify-machineinstrs | FileCheck %s -check-prefix=X64-DFlyBSD
12 … -mcpu=generic -mtriple=x86_64-mingw32 -verify-machineinstrs | FileCheck %s -check-prefix=X64-MinGW
27 ; RUN: FileCheck %s -input-file=%t.log -check-prefix=X64-Solaris
31 ; X64-Solaris: Segmented stacks not supported on this platform
37 define void @test_basic() #0 {
39 ; X86-Linux: # %bb.0:
45 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
55 ; X86-Linux-NEXT: pushl $0
61 ; X64-Linux-LABEL: test_basic:
62 ; X64-Linux: # %bb.0:
63 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
64 ; X64-Linux-NEXT: jbe .LBB0_1
65 ; X64-Linux-NEXT: .LBB0_2:
66 ; X64-Linux-NEXT: subq $40, %rsp
67 ; X64-Linux-NEXT: .cfi_def_cfa_offset 48
68 ; X64-Linux-NEXT: movq %rsp, %rdi
69 ; X64-Linux-NEXT: movl $10, %esi
70 ; X64-Linux-NEXT: callq dummy_use@PLT
71 ; X64-Linux-NEXT: addq $40, %rsp
72 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
73 ; X64-Linux-NEXT: retq
74 ; X64-Linux-NEXT: .LBB0_1:
75 ; X64-Linux-NEXT: movl $40, %r10d
76 ; X64-Linux-NEXT: movl $0, %r11d
77 ; X64-Linux-NEXT: callq __morestack
78 ; X64-Linux-NEXT: retq
79 ; X64-Linux-NEXT: jmp .LBB0_2
81 ; X64-Linux-Large-LABEL: test_basic:
82 ; X64-Linux-Large: # %bb.0:
83 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
84 ; X64-Linux-Large-NEXT: jbe .LBB0_1
85 ; X64-Linux-Large-NEXT: .LBB0_2:
86 ; X64-Linux-Large-NEXT: subq $40, %rsp
87 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 48
88 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
89 ; X64-Linux-Large-NEXT: movq %rsp, %rdi
90 ; X64-Linux-Large-NEXT: movl $10, %esi
91 ; X64-Linux-Large-NEXT: callq *%rax
92 ; X64-Linux-Large-NEXT: addq $40, %rsp
93 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
94 ; X64-Linux-Large-NEXT: retq
95 ; X64-Linux-Large-NEXT: .LBB0_1:
96 ; X64-Linux-Large-NEXT: movl $40, %r10d
97 ; X64-Linux-Large-NEXT: movl $0, %r11d
98 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
99 ; X64-Linux-Large-NEXT: retq
100 ; X64-Linux-Large-NEXT: jmp .LBB0_2
103 ; X32ABI: # %bb.0:
117 ; X32ABI-NEXT: movl $0, %r11d
123 ; X86-Darwin: ## %bb.0:
124 ; X86-Darwin-NEXT: movl $432, %ecx ## imm = 0x1B0
130 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
132 ; X86-Darwin-NEXT: movl $10, {{[0-9]+}}(%esp)
137 ; X86-Darwin-NEXT: pushl $0
143 ; X64-Darwin-LABEL: test_basic:
144 ; X64-Darwin: ## %bb.0:
145 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
146 ; X64-Darwin-NEXT: jbe LBB0_1
147 ; X64-Darwin-NEXT: LBB0_2:
148 ; X64-Darwin-NEXT: subq $40, %rsp
149 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 48
150 ; X64-Darwin-NEXT: movq %rsp, %rdi
151 ; X64-Darwin-NEXT: movl $10, %esi
152 ; X64-Darwin-NEXT: callq _dummy_use
153 ; X64-Darwin-NEXT: addq $40, %rsp
154 ; X64-Darwin-NEXT: retq
155 ; X64-Darwin-NEXT: LBB0_1:
156 ; X64-Darwin-NEXT: movl $40, %r10d
157 ; X64-Darwin-NEXT: movl $0, %r11d
158 ; X64-Darwin-NEXT: callq ___morestack
159 ; X64-Darwin-NEXT: retq
160 ; X64-Darwin-NEXT: jmp LBB0_2
163 ; X86-MinGW: # %bb.0:
179 ; X86-MinGW-NEXT: pushl $0
185 ; X64-FreeBSD-LABEL: test_basic:
186 ; X64-FreeBSD: # %bb.0:
187 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
188 ; X64-FreeBSD-NEXT: jbe .LBB0_1
189 ; X64-FreeBSD-NEXT: .LBB0_2:
190 ; X64-FreeBSD-NEXT: subq $40, %rsp
191 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 48
192 ; X64-FreeBSD-NEXT: movq %rsp, %rdi
193 ; X64-FreeBSD-NEXT: movl $10, %esi
194 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
195 ; X64-FreeBSD-NEXT: addq $40, %rsp
196 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
197 ; X64-FreeBSD-NEXT: retq
198 ; X64-FreeBSD-NEXT: .LBB0_1:
199 ; X64-FreeBSD-NEXT: movl $40, %r10d
200 ; X64-FreeBSD-NEXT: movl $0, %r11d
201 ; X64-FreeBSD-NEXT: callq __morestack
202 ; X64-FreeBSD-NEXT: retq
203 ; X64-FreeBSD-NEXT: jmp .LBB0_2
206 ; X86-DFlyBSD: # %bb.0:
222 ; X86-DFlyBSD-NEXT: pushl $0
228 ; X64-DFlyBSD-LABEL: test_basic:
229 ; X64-DFlyBSD: # %bb.0:
230 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
231 ; X64-DFlyBSD-NEXT: jbe .LBB0_1
232 ; X64-DFlyBSD-NEXT: .LBB0_2:
233 ; X64-DFlyBSD-NEXT: subq $40, %rsp
234 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 48
235 ; X64-DFlyBSD-NEXT: movq %rsp, %rdi
236 ; X64-DFlyBSD-NEXT: movl $10, %esi
237 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
238 ; X64-DFlyBSD-NEXT: addq $40, %rsp
239 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
240 ; X64-DFlyBSD-NEXT: retq
241 ; X64-DFlyBSD-NEXT: .LBB0_1:
242 ; X64-DFlyBSD-NEXT: movl $40, %r10d
243 ; X64-DFlyBSD-NEXT: movl $0, %r11d
244 ; X64-DFlyBSD-NEXT: callq __morestack
245 ; X64-DFlyBSD-NEXT: retq
246 ; X64-DFlyBSD-NEXT: jmp .LBB0_2
248 ; X64-MinGW-LABEL: test_basic:
249 ; X64-MinGW: # %bb.0:
250 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
251 ; X64-MinGW-NEXT: jbe .LBB0_1
252 ; X64-MinGW-NEXT: .LBB0_2:
253 ; X64-MinGW-NEXT: subq $72, %rsp
254 ; X64-MinGW-NEXT: .seh_stackalloc 72
255 ; X64-MinGW-NEXT: .seh_endprologue
256 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
257 ; X64-MinGW-NEXT: movl $10, %edx
258 ; X64-MinGW-NEXT: callq dummy_use
259 ; X64-MinGW-NEXT: nop
260 ; X64-MinGW-NEXT: addq $72, %rsp
261 ; X64-MinGW-NEXT: retq
262 ; X64-MinGW-NEXT: .LBB0_1:
263 ; X64-MinGW-NEXT: movl $72, %r10d
264 ; X64-MinGW-NEXT: movl $32, %r11d
265 ; X64-MinGW-NEXT: callq __morestack
266 ; X64-MinGW-NEXT: retq
267 ; X64-MinGW-NEXT: jmp .LBB0_2
268 ; X64-MinGW-NEXT: .seh_endproc
274 define i32 @test_nested(ptr nest %closure, i32 %other) #0 {
276 ; X86-Linux: # %bb.0:
285 ; X86-Linux-NEXT: movl {{[0-9]+}}(%esp), %esi
289 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
311 ; X64-Linux-LABEL: test_nested:
312 ; X64-Linux: # %bb.0:
313 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
314 ; X64-Linux-NEXT: jbe .LBB1_1
315 ; X64-Linux-NEXT: .LBB1_2:
316 ; X64-Linux-NEXT: pushq %rbx
317 ; X64-Linux-NEXT: .cfi_def_cfa_offset 16
318 ; X64-Linux-NEXT: subq $48, %rsp
319 ; X64-Linux-NEXT: .cfi_def_cfa_offset 64
320 ; X64-Linux-NEXT: .cfi_offset %rbx, -16
321 ; X64-Linux-NEXT: movl %edi, %ebx
322 ; X64-Linux-NEXT: addl (%r10), %ebx
323 ; X64-Linux-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
324 ; X64-Linux-NEXT: movl $10, %esi
325 ; X64-Linux-NEXT: callq dummy_use@PLT
326 ; X64-Linux-NEXT: movl %ebx, %eax
327 ; X64-Linux-NEXT: addq $48, %rsp
328 ; X64-Linux-NEXT: .cfi_def_cfa_offset 16
329 ; X64-Linux-NEXT: popq %rbx
330 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
331 ; X64-Linux-NEXT: retq
332 ; X64-Linux-NEXT: .LBB1_1:
333 ; X64-Linux-NEXT: .cfi_restore %rbx
334 ; X64-Linux-NEXT: movq %r10, %rax
335 ; X64-Linux-NEXT: movl $56, %r10d
336 ; X64-Linux-NEXT: movl $0, %r11d
337 ; X64-Linux-NEXT: callq __morestack
338 ; X64-Linux-NEXT: retq
339 ; X64-Linux-NEXT: movq %rax, %r10
340 ; X64-Linux-NEXT: jmp .LBB1_2
342 ; X64-Linux-Large-LABEL: test_nested:
343 ; X64-Linux-Large: # %bb.0:
344 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
345 ; X64-Linux-Large-NEXT: jbe .LBB1_1
346 ; X64-Linux-Large-NEXT: .LBB1_2:
347 ; X64-Linux-Large-NEXT: pushq %rbx
348 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 16
349 ; X64-Linux-Large-NEXT: subq $48, %rsp
350 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 64
351 ; X64-Linux-Large-NEXT: .cfi_offset %rbx, -16
352 ; X64-Linux-Large-NEXT: movl %edi, %ebx
353 ; X64-Linux-Large-NEXT: addl (%r10), %ebx
354 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
355 ; X64-Linux-Large-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
356 ; X64-Linux-Large-NEXT: movl $10, %esi
357 ; X64-Linux-Large-NEXT: callq *%rax
358 ; X64-Linux-Large-NEXT: movl %ebx, %eax
359 ; X64-Linux-Large-NEXT: addq $48, %rsp
360 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 16
361 ; X64-Linux-Large-NEXT: popq %rbx
362 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
363 ; X64-Linux-Large-NEXT: retq
364 ; X64-Linux-Large-NEXT: .LBB1_1:
365 ; X64-Linux-Large-NEXT: .cfi_restore %rbx
366 ; X64-Linux-Large-NEXT: movq %r10, %rax
367 ; X64-Linux-Large-NEXT: movl $56, %r10d
368 ; X64-Linux-Large-NEXT: movl $0, %r11d
369 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
370 ; X64-Linux-Large-NEXT: retq
371 ; X64-Linux-Large-NEXT: movq %rax, %r10
372 ; X64-Linux-Large-NEXT: jmp .LBB1_2
375 ; X32ABI: # %bb.0:
386 ; X32ABI-NEXT: leal {{[0-9]+}}(%rsp), %edi
399 ; X32ABI-NEXT: movl $0, %r11d
406 ; X86-Darwin: ## %bb.0:
407 ; X86-Darwin-NEXT: movl $432, %edx ## imm = 0x1B0
416 ; X86-Darwin-NEXT: movl {{[0-9]+}}(%esp), %esi
418 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
420 ; X86-Darwin-NEXT: movl $10, {{[0-9]+}}(%esp)
433 ; X64-Darwin-LABEL: test_nested:
434 ; X64-Darwin: ## %bb.0:
435 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
436 ; X64-Darwin-NEXT: jbe LBB1_1
437 ; X64-Darwin-NEXT: LBB1_2:
438 ; X64-Darwin-NEXT: pushq %rbx
439 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 16
440 ; X64-Darwin-NEXT: subq $48, %rsp
441 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 64
442 ; X64-Darwin-NEXT: .cfi_offset %rbx, -16
443 ; X64-Darwin-NEXT: movl %edi, %ebx
444 ; X64-Darwin-NEXT: addl (%r10), %ebx
445 ; X64-Darwin-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
446 ; X64-Darwin-NEXT: movl $10, %esi
447 ; X64-Darwin-NEXT: callq _dummy_use
448 ; X64-Darwin-NEXT: movl %ebx, %eax
449 ; X64-Darwin-NEXT: addq $48, %rsp
450 ; X64-Darwin-NEXT: popq %rbx
451 ; X64-Darwin-NEXT: retq
452 ; X64-Darwin-NEXT: LBB1_1:
453 ; X64-Darwin-NEXT: movq %r10, %rax
454 ; X64-Darwin-NEXT: movl $56, %r10d
455 ; X64-Darwin-NEXT: movl $0, %r11d
456 ; X64-Darwin-NEXT: callq ___morestack
457 ; X64-Darwin-NEXT: retq
458 ; X64-Darwin-NEXT: movq %rax, %r10
459 ; X64-Darwin-NEXT: jmp LBB1_2
462 ; X86-MinGW: # %bb.0:
471 ; X86-MinGW-NEXT: movl {{[0-9]+}}(%esp), %esi
494 ; X64-FreeBSD-LABEL: test_nested:
495 ; X64-FreeBSD: # %bb.0:
496 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
497 ; X64-FreeBSD-NEXT: jbe .LBB1_1
498 ; X64-FreeBSD-NEXT: .LBB1_2:
499 ; X64-FreeBSD-NEXT: pushq %rbx
500 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 16
501 ; X64-FreeBSD-NEXT: subq $48, %rsp
502 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 64
503 ; X64-FreeBSD-NEXT: .cfi_offset %rbx, -16
504 ; X64-FreeBSD-NEXT: movl %edi, %ebx
505 ; X64-FreeBSD-NEXT: addl (%r10), %ebx
506 ; X64-FreeBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
507 ; X64-FreeBSD-NEXT: movl $10, %esi
508 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
509 ; X64-FreeBSD-NEXT: movl %ebx, %eax
510 ; X64-FreeBSD-NEXT: addq $48, %rsp
511 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 16
512 ; X64-FreeBSD-NEXT: popq %rbx
513 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
514 ; X64-FreeBSD-NEXT: retq
515 ; X64-FreeBSD-NEXT: .LBB1_1:
516 ; X64-FreeBSD-NEXT: .cfi_restore %rbx
517 ; X64-FreeBSD-NEXT: movq %r10, %rax
518 ; X64-FreeBSD-NEXT: movl $56, %r10d
519 ; X64-FreeBSD-NEXT: movl $0, %r11d
520 ; X64-FreeBSD-NEXT: callq __morestack
521 ; X64-FreeBSD-NEXT: retq
522 ; X64-FreeBSD-NEXT: movq %rax, %r10
523 ; X64-FreeBSD-NEXT: jmp .LBB1_2
526 ; X86-DFlyBSD: # %bb.0:
535 ; X86-DFlyBSD-NEXT: movl {{[0-9]+}}(%esp), %esi
559 ; X64-DFlyBSD-LABEL: test_nested:
560 ; X64-DFlyBSD: # %bb.0:
561 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
562 ; X64-DFlyBSD-NEXT: jbe .LBB1_1
563 ; X64-DFlyBSD-NEXT: .LBB1_2:
564 ; X64-DFlyBSD-NEXT: pushq %rbx
565 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 16
566 ; X64-DFlyBSD-NEXT: subq $48, %rsp
567 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 64
568 ; X64-DFlyBSD-NEXT: .cfi_offset %rbx, -16
569 ; X64-DFlyBSD-NEXT: movl %edi, %ebx
570 ; X64-DFlyBSD-NEXT: addl (%r10), %ebx
571 ; X64-DFlyBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
572 ; X64-DFlyBSD-NEXT: movl $10, %esi
573 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
574 ; X64-DFlyBSD-NEXT: movl %ebx, %eax
575 ; X64-DFlyBSD-NEXT: addq $48, %rsp
576 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 16
577 ; X64-DFlyBSD-NEXT: popq %rbx
578 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
579 ; X64-DFlyBSD-NEXT: retq
580 ; X64-DFlyBSD-NEXT: .LBB1_1:
581 ; X64-DFlyBSD-NEXT: .cfi_restore %rbx
582 ; X64-DFlyBSD-NEXT: movq %r10, %rax
583 ; X64-DFlyBSD-NEXT: movl $56, %r10d
584 ; X64-DFlyBSD-NEXT: movl $0, %r11d
585 ; X64-DFlyBSD-NEXT: callq __morestack
586 ; X64-DFlyBSD-NEXT: retq
587 ; X64-DFlyBSD-NEXT: movq %rax, %r10
588 ; X64-DFlyBSD-NEXT: jmp .LBB1_2
590 ; X64-MinGW-LABEL: test_nested:
591 ; X64-MinGW: # %bb.0:
592 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
593 ; X64-MinGW-NEXT: jbe .LBB1_1
594 ; X64-MinGW-NEXT: .LBB1_2:
595 ; X64-MinGW-NEXT: pushq %rsi
596 ; X64-MinGW-NEXT: .seh_pushreg %rsi
597 ; X64-MinGW-NEXT: subq $80, %rsp
598 ; X64-MinGW-NEXT: .seh_stackalloc 80
599 ; X64-MinGW-NEXT: .seh_endprologue
600 ; X64-MinGW-NEXT: movl %ecx, %esi
601 ; X64-MinGW-NEXT: addl (%r10), %esi
602 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
603 ; X64-MinGW-NEXT: movl $10, %edx
604 ; X64-MinGW-NEXT: callq dummy_use
605 ; X64-MinGW-NEXT: movl %esi, %eax
606 ; X64-MinGW-NEXT: addq $80, %rsp
607 ; X64-MinGW-NEXT: popq %rsi
608 ; X64-MinGW-NEXT: retq
609 ; X64-MinGW-NEXT: .LBB1_1:
610 ; X64-MinGW-NEXT: movq %r10, %rax
611 ; X64-MinGW-NEXT: movl $88, %r10d
612 ; X64-MinGW-NEXT: movl $32, %r11d
613 ; X64-MinGW-NEXT: callq __morestack
614 ; X64-MinGW-NEXT: retq
615 ; X64-MinGW-NEXT: movq %rax, %r10
616 ; X64-MinGW-NEXT: jmp .LBB1_2
617 ; X64-MinGW-NEXT: .seh_endproc
625 define void @test_large() #0 {
627 ; X86-Linux: # %bb.0:
628 ; X86-Linux-NEXT: leal -{{[0-9]+}}(%esp), %ecx
632 ; X86-Linux-NEXT: subl $40020, %esp # imm = 0x9C54
634 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
640 ; X86-Linux-NEXT: addl $40028, %esp # imm = 0x9C5C
644 ; X86-Linux-NEXT: pushl $0
645 ; X86-Linux-NEXT: pushl $40012 # imm = 0x9C4C
650 ; X64-Linux-LABEL: test_large:
651 ; X64-Linux: # %bb.0:
652 ; X64-Linux-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
653 ; X64-Linux-NEXT: cmpq %fs:112, %r11
654 ; X64-Linux-NEXT: jbe .LBB2_1
655 ; X64-Linux-NEXT: .LBB2_2:
656 ; X64-Linux-NEXT: subq $40008, %rsp # imm = 0x9C48
657 ; X64-Linux-NEXT: .cfi_def_cfa_offset 40016
658 ; X64-Linux-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
659 ; X64-Linux-NEXT: movl $3, %esi
660 ; X64-Linux-NEXT: callq dummy_use@PLT
661 ; X64-Linux-NEXT: addq $40008, %rsp # imm = 0x9C48
662 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
663 ; X64-Linux-NEXT: retq
664 ; X64-Linux-NEXT: .LBB2_1:
665 ; X64-Linux-NEXT: movl $40008, %r10d # imm = 0x9C48
666 ; X64-Linux-NEXT: movl $0, %r11d
667 ; X64-Linux-NEXT: callq __morestack
668 ; X64-Linux-NEXT: retq
669 ; X64-Linux-NEXT: jmp .LBB2_2
671 ; X64-Linux-Large-LABEL: test_large:
672 ; X64-Linux-Large: # %bb.0:
673 ; X64-Linux-Large-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
674 ; X64-Linux-Large-NEXT: cmpq %fs:112, %r11
675 ; X64-Linux-Large-NEXT: jbe .LBB2_1
676 ; X64-Linux-Large-NEXT: .LBB2_2:
677 ; X64-Linux-Large-NEXT: subq $40008, %rsp # imm = 0x9C48
678 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 40016
679 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
680 ; X64-Linux-Large-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
681 ; X64-Linux-Large-NEXT: movl $3, %esi
682 ; X64-Linux-Large-NEXT: callq *%rax
683 ; X64-Linux-Large-NEXT: addq $40008, %rsp # imm = 0x9C48
684 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
685 ; X64-Linux-Large-NEXT: retq
686 ; X64-Linux-Large-NEXT: .LBB2_1:
687 ; X64-Linux-Large-NEXT: movl $40008, %r10d # imm = 0x9C48
688 ; X64-Linux-Large-NEXT: movl $0, %r11d
689 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
690 ; X64-Linux-Large-NEXT: retq
691 ; X64-Linux-Large-NEXT: jmp .LBB2_2
694 ; X32ABI: # %bb.0:
695 ; X32ABI-NEXT: leal -{{[0-9]+}}(%rsp), %r11d
699 ; X32ABI-NEXT: subl $40008, %esp # imm = 0x9C48
701 ; X32ABI-NEXT: leal {{[0-9]+}}(%rsp), %edi
704 ; X32ABI-NEXT: addl $40008, %esp # imm = 0x9C48
708 ; X32ABI-NEXT: movl $40008, %r10d # imm = 0x9C48
709 ; X32ABI-NEXT: movl $0, %r11d
715 ; X86-Darwin: ## %bb.0:
716 ; X86-Darwin-NEXT: leal -{{[0-9]+}}(%esp), %ecx
717 ; X86-Darwin-NEXT: movl $432, %eax ## imm = 0x1B0
721 ; X86-Darwin-NEXT: subl $40012, %esp ## imm = 0x9C4C
723 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
725 ; X86-Darwin-NEXT: movl $3, {{[0-9]+}}(%esp)
727 ; X86-Darwin-NEXT: addl $40012, %esp ## imm = 0x9C4C
730 ; X86-Darwin-NEXT: pushl $0
731 ; X86-Darwin-NEXT: pushl $40012 ## imm = 0x9C4C
736 ; X64-Darwin-LABEL: test_large:
737 ; X64-Darwin: ## %bb.0:
738 ; X64-Darwin-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
739 ; X64-Darwin-NEXT: cmpq %gs:816, %r11
740 ; X64-Darwin-NEXT: jbe LBB2_1
741 ; X64-Darwin-NEXT: LBB2_2:
742 ; X64-Darwin-NEXT: subq $40008, %rsp ## imm = 0x9C48
743 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 40016
744 ; X64-Darwin-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
745 ; X64-Darwin-NEXT: movl $3, %esi
746 ; X64-Darwin-NEXT: callq _dummy_use
747 ; X64-Darwin-NEXT: addq $40008, %rsp ## imm = 0x9C48
748 ; X64-Darwin-NEXT: retq
749 ; X64-Darwin-NEXT: LBB2_1:
750 ; X64-Darwin-NEXT: movl $40008, %r10d ## imm = 0x9C48
751 ; X64-Darwin-NEXT: movl $0, %r11d
752 ; X64-Darwin-NEXT: callq ___morestack
753 ; X64-Darwin-NEXT: retq
754 ; X64-Darwin-NEXT: jmp LBB2_2
757 ; X86-MinGW: # %bb.0:
758 ; X86-MinGW-NEXT: leal -{{[0-9]+}}(%esp), %ecx
762 ; X86-MinGW-NEXT: movl $40000, %eax # imm = 0x9C40
771 ; X86-MinGW-NEXT: addl $40008, %esp # imm = 0x9C48
775 ; X86-MinGW-NEXT: pushl $0
776 ; X86-MinGW-NEXT: pushl $40000 # imm = 0x9C40
781 ; X64-FreeBSD-LABEL: test_large:
782 ; X64-FreeBSD: # %bb.0:
783 ; X64-FreeBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
784 ; X64-FreeBSD-NEXT: cmpq %fs:24, %r11
785 ; X64-FreeBSD-NEXT: jbe .LBB2_1
786 ; X64-FreeBSD-NEXT: .LBB2_2:
787 ; X64-FreeBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
788 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 40016
789 ; X64-FreeBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
790 ; X64-FreeBSD-NEXT: movl $3, %esi
791 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
792 ; X64-FreeBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
793 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
794 ; X64-FreeBSD-NEXT: retq
795 ; X64-FreeBSD-NEXT: .LBB2_1:
796 ; X64-FreeBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
797 ; X64-FreeBSD-NEXT: movl $0, %r11d
798 ; X64-FreeBSD-NEXT: callq __morestack
799 ; X64-FreeBSD-NEXT: retq
800 ; X64-FreeBSD-NEXT: jmp .LBB2_2
803 ; X86-DFlyBSD: # %bb.0:
804 ; X86-DFlyBSD-NEXT: leal -{{[0-9]+}}(%esp), %ecx
808 ; X86-DFlyBSD-NEXT: subl $40000, %esp # imm = 0x9C40
816 ; X86-DFlyBSD-NEXT: addl $40008, %esp # imm = 0x9C48
820 ; X86-DFlyBSD-NEXT: pushl $0
821 ; X86-DFlyBSD-NEXT: pushl $40000 # imm = 0x9C40
826 ; X64-DFlyBSD-LABEL: test_large:
827 ; X64-DFlyBSD: # %bb.0:
828 ; X64-DFlyBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
829 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %r11
830 ; X64-DFlyBSD-NEXT: jbe .LBB2_1
831 ; X64-DFlyBSD-NEXT: .LBB2_2:
832 ; X64-DFlyBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
833 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 40016
834 ; X64-DFlyBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
835 ; X64-DFlyBSD-NEXT: movl $3, %esi
836 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
837 ; X64-DFlyBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
838 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
839 ; X64-DFlyBSD-NEXT: retq
840 ; X64-DFlyBSD-NEXT: .LBB2_1:
841 ; X64-DFlyBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
842 ; X64-DFlyBSD-NEXT: movl $0, %r11d
843 ; X64-DFlyBSD-NEXT: callq __morestack
844 ; X64-DFlyBSD-NEXT: retq
845 ; X64-DFlyBSD-NEXT: jmp .LBB2_2
847 ; X64-MinGW-LABEL: test_large:
848 ; X64-MinGW: # %bb.0:
849 ; X64-MinGW-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
850 ; X64-MinGW-NEXT: cmpq %gs:40, %r11
851 ; X64-MinGW-NEXT: jbe .LBB2_1
852 ; X64-MinGW-NEXT: .LBB2_2:
853 ; X64-MinGW-NEXT: movl $40040, %eax # imm = 0x9C68
854 ; X64-MinGW-NEXT: callq ___chkstk_ms
855 ; X64-MinGW-NEXT: subq %rax, %rsp
856 ; X64-MinGW-NEXT: .seh_stackalloc 40040
857 ; X64-MinGW-NEXT: .seh_endprologue
858 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
859 ; X64-MinGW-NEXT: movl $3, %edx
860 ; X64-MinGW-NEXT: callq dummy_use
861 ; X64-MinGW-NEXT: nop
862 ; X64-MinGW-NEXT: addq $40040, %rsp # imm = 0x9C68
863 ; X64-MinGW-NEXT: retq
864 ; X64-MinGW-NEXT: .LBB2_1:
865 ; X64-MinGW-NEXT: movl $40040, %r10d # imm = 0x9C68
866 ; X64-MinGW-NEXT: movl $32, %r11d
867 ; X64-MinGW-NEXT: callq __morestack
868 ; X64-MinGW-NEXT: retq
869 ; X64-MinGW-NEXT: jmp .LBB2_2
870 ; X64-MinGW-NEXT: .seh_endproc
876 define fastcc void @test_fastcc() #0 {
878 ; X86-Linux: # %bb.0:
884 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
894 ; X86-Linux-NEXT: pushl $0
900 ; X64-Linux-LABEL: test_fastcc:
901 ; X64-Linux: # %bb.0:
902 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
903 ; X64-Linux-NEXT: jbe .LBB3_1
904 ; X64-Linux-NEXT: .LBB3_2:
905 ; X64-Linux-NEXT: subq $40, %rsp
906 ; X64-Linux-NEXT: .cfi_def_cfa_offset 48
907 ; X64-Linux-NEXT: movq %rsp, %rdi
908 ; X64-Linux-NEXT: movl $10, %esi
909 ; X64-Linux-NEXT: callq dummy_use@PLT
910 ; X64-Linux-NEXT: addq $40, %rsp
911 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
912 ; X64-Linux-NEXT: retq
913 ; X64-Linux-NEXT: .LBB3_1:
914 ; X64-Linux-NEXT: movl $40, %r10d
915 ; X64-Linux-NEXT: movl $0, %r11d
916 ; X64-Linux-NEXT: callq __morestack
917 ; X64-Linux-NEXT: retq
918 ; X64-Linux-NEXT: jmp .LBB3_2
920 ; X64-Linux-Large-LABEL: test_fastcc:
921 ; X64-Linux-Large: # %bb.0:
922 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
923 ; X64-Linux-Large-NEXT: jbe .LBB3_1
924 ; X64-Linux-Large-NEXT: .LBB3_2:
925 ; X64-Linux-Large-NEXT: subq $40, %rsp
926 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 48
927 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
928 ; X64-Linux-Large-NEXT: movq %rsp, %rdi
929 ; X64-Linux-Large-NEXT: movl $10, %esi
930 ; X64-Linux-Large-NEXT: callq *%rax
931 ; X64-Linux-Large-NEXT: addq $40, %rsp
932 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
933 ; X64-Linux-Large-NEXT: retq
934 ; X64-Linux-Large-NEXT: .LBB3_1:
935 ; X64-Linux-Large-NEXT: movl $40, %r10d
936 ; X64-Linux-Large-NEXT: movl $0, %r11d
937 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
938 ; X64-Linux-Large-NEXT: retq
939 ; X64-Linux-Large-NEXT: jmp .LBB3_2
942 ; X32ABI: # %bb.0:
956 ; X32ABI-NEXT: movl $0, %r11d
962 ; X86-Darwin: ## %bb.0:
963 ; X86-Darwin-NEXT: movl $432, %eax ## imm = 0x1B0
969 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
971 ; X86-Darwin-NEXT: movl $10, {{[0-9]+}}(%esp)
976 ; X86-Darwin-NEXT: pushl $0
982 ; X64-Darwin-LABEL: test_fastcc:
983 ; X64-Darwin: ## %bb.0:
984 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
985 ; X64-Darwin-NEXT: jbe LBB3_1
986 ; X64-Darwin-NEXT: LBB3_2:
987 ; X64-Darwin-NEXT: subq $40, %rsp
988 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 48
989 ; X64-Darwin-NEXT: movq %rsp, %rdi
990 ; X64-Darwin-NEXT: movl $10, %esi
991 ; X64-Darwin-NEXT: callq _dummy_use
992 ; X64-Darwin-NEXT: addq $40, %rsp
993 ; X64-Darwin-NEXT: retq
994 ; X64-Darwin-NEXT: LBB3_1:
995 ; X64-Darwin-NEXT: movl $40, %r10d
996 ; X64-Darwin-NEXT: movl $0, %r11d
997 ; X64-Darwin-NEXT: callq ___morestack
998 ; X64-Darwin-NEXT: retq
999 ; X64-Darwin-NEXT: jmp LBB3_2
1002 ; X86-MinGW: # %bb.0:
1018 ; X86-MinGW-NEXT: pushl $0
1024 ; X64-FreeBSD-LABEL: test_fastcc:
1025 ; X64-FreeBSD: # %bb.0:
1026 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
1027 ; X64-FreeBSD-NEXT: jbe .LBB3_1
1028 ; X64-FreeBSD-NEXT: .LBB3_2:
1029 ; X64-FreeBSD-NEXT: subq $40, %rsp
1030 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 48
1031 ; X64-FreeBSD-NEXT: movq %rsp, %rdi
1032 ; X64-FreeBSD-NEXT: movl $10, %esi
1033 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
1034 ; X64-FreeBSD-NEXT: addq $40, %rsp
1035 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
1036 ; X64-FreeBSD-NEXT: retq
1037 ; X64-FreeBSD-NEXT: .LBB3_1:
1038 ; X64-FreeBSD-NEXT: movl $40, %r10d
1039 ; X64-FreeBSD-NEXT: movl $0, %r11d
1040 ; X64-FreeBSD-NEXT: callq __morestack
1041 ; X64-FreeBSD-NEXT: retq
1042 ; X64-FreeBSD-NEXT: jmp .LBB3_2
1045 ; X86-DFlyBSD: # %bb.0:
1061 ; X86-DFlyBSD-NEXT: pushl $0
1067 ; X64-DFlyBSD-LABEL: test_fastcc:
1068 ; X64-DFlyBSD: # %bb.0:
1069 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
1070 ; X64-DFlyBSD-NEXT: jbe .LBB3_1
1071 ; X64-DFlyBSD-NEXT: .LBB3_2:
1072 ; X64-DFlyBSD-NEXT: subq $40, %rsp
1073 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 48
1074 ; X64-DFlyBSD-NEXT: movq %rsp, %rdi
1075 ; X64-DFlyBSD-NEXT: movl $10, %esi
1076 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
1077 ; X64-DFlyBSD-NEXT: addq $40, %rsp
1078 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
1079 ; X64-DFlyBSD-NEXT: retq
1080 ; X64-DFlyBSD-NEXT: .LBB3_1:
1081 ; X64-DFlyBSD-NEXT: movl $40, %r10d
1082 ; X64-DFlyBSD-NEXT: movl $0, %r11d
1083 ; X64-DFlyBSD-NEXT: callq __morestack
1084 ; X64-DFlyBSD-NEXT: retq
1085 ; X64-DFlyBSD-NEXT: jmp .LBB3_2
1087 ; X64-MinGW-LABEL: test_fastcc:
1088 ; X64-MinGW: # %bb.0:
1089 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
1090 ; X64-MinGW-NEXT: jbe .LBB3_1
1091 ; X64-MinGW-NEXT: .LBB3_2:
1092 ; X64-MinGW-NEXT: subq $72, %rsp
1093 ; X64-MinGW-NEXT: .seh_stackalloc 72
1094 ; X64-MinGW-NEXT: .seh_endprologue
1095 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
1096 ; X64-MinGW-NEXT: movl $10, %edx
1097 ; X64-MinGW-NEXT: callq dummy_use
1098 ; X64-MinGW-NEXT: nop
1099 ; X64-MinGW-NEXT: addq $72, %rsp
1100 ; X64-MinGW-NEXT: retq
1101 ; X64-MinGW-NEXT: .LBB3_1:
1102 ; X64-MinGW-NEXT: movl $72, %r10d
1103 ; X64-MinGW-NEXT: movl $32, %r11d
1104 ; X64-MinGW-NEXT: callq __morestack
1105 ; X64-MinGW-NEXT: retq
1106 ; X64-MinGW-NEXT: jmp .LBB3_2
1107 ; X64-MinGW-NEXT: .seh_endproc
1113 define fastcc void @test_fastcc_large() #0 {
1115 ; X86-Linux: # %bb.0:
1116 ; X86-Linux-NEXT: leal -{{[0-9]+}}(%esp), %eax
1120 ; X86-Linux-NEXT: subl $40020, %esp # imm = 0x9C54
1122 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
1128 ; X86-Linux-NEXT: addl $40028, %esp # imm = 0x9C5C
1132 ; X86-Linux-NEXT: pushl $0
1133 ; X86-Linux-NEXT: pushl $40012 # imm = 0x9C4C
1138 ; X64-Linux-LABEL: test_fastcc_large:
1139 ; X64-Linux: # %bb.0:
1140 ; X64-Linux-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1141 ; X64-Linux-NEXT: cmpq %fs:112, %r11
1142 ; X64-Linux-NEXT: jbe .LBB4_1
1143 ; X64-Linux-NEXT: .LBB4_2:
1144 ; X64-Linux-NEXT: subq $40008, %rsp # imm = 0x9C48
1145 ; X64-Linux-NEXT: .cfi_def_cfa_offset 40016
1146 ; X64-Linux-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1147 ; X64-Linux-NEXT: movl $3, %esi
1148 ; X64-Linux-NEXT: callq dummy_use@PLT
1149 ; X64-Linux-NEXT: addq $40008, %rsp # imm = 0x9C48
1150 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
1151 ; X64-Linux-NEXT: retq
1152 ; X64-Linux-NEXT: .LBB4_1:
1153 ; X64-Linux-NEXT: movl $40008, %r10d # imm = 0x9C48
1154 ; X64-Linux-NEXT: movl $0, %r11d
1155 ; X64-Linux-NEXT: callq __morestack
1156 ; X64-Linux-NEXT: retq
1157 ; X64-Linux-NEXT: jmp .LBB4_2
1159 ; X64-Linux-Large-LABEL: test_fastcc_large:
1160 ; X64-Linux-Large: # %bb.0:
1161 ; X64-Linux-Large-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1162 ; X64-Linux-Large-NEXT: cmpq %fs:112, %r11
1163 ; X64-Linux-Large-NEXT: jbe .LBB4_1
1164 ; X64-Linux-Large-NEXT: .LBB4_2:
1165 ; X64-Linux-Large-NEXT: subq $40008, %rsp # imm = 0x9C48
1166 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 40016
1167 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
1168 ; X64-Linux-Large-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1169 ; X64-Linux-Large-NEXT: movl $3, %esi
1170 ; X64-Linux-Large-NEXT: callq *%rax
1171 ; X64-Linux-Large-NEXT: addq $40008, %rsp # imm = 0x9C48
1172 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
1173 ; X64-Linux-Large-NEXT: retq
1174 ; X64-Linux-Large-NEXT: .LBB4_1:
1175 ; X64-Linux-Large-NEXT: movl $40008, %r10d # imm = 0x9C48
1176 ; X64-Linux-Large-NEXT: movl $0, %r11d
1177 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1178 ; X64-Linux-Large-NEXT: retq
1179 ; X64-Linux-Large-NEXT: jmp .LBB4_2
1182 ; X32ABI: # %bb.0:
1183 ; X32ABI-NEXT: leal -{{[0-9]+}}(%rsp), %r11d
1187 ; X32ABI-NEXT: subl $40008, %esp # imm = 0x9C48
1189 ; X32ABI-NEXT: leal {{[0-9]+}}(%rsp), %edi
1192 ; X32ABI-NEXT: addl $40008, %esp # imm = 0x9C48
1196 ; X32ABI-NEXT: movl $40008, %r10d # imm = 0x9C48
1197 ; X32ABI-NEXT: movl $0, %r11d
1203 ; X86-Darwin: ## %bb.0:
1204 ; X86-Darwin-NEXT: leal -{{[0-9]+}}(%esp), %eax
1205 ; X86-Darwin-NEXT: movl $432, %ecx ## imm = 0x1B0
1209 ; X86-Darwin-NEXT: subl $40012, %esp ## imm = 0x9C4C
1211 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
1213 ; X86-Darwin-NEXT: movl $3, {{[0-9]+}}(%esp)
1215 ; X86-Darwin-NEXT: addl $40012, %esp ## imm = 0x9C4C
1218 ; X86-Darwin-NEXT: pushl $0
1219 ; X86-Darwin-NEXT: pushl $40012 ## imm = 0x9C4C
1224 ; X64-Darwin-LABEL: test_fastcc_large:
1225 ; X64-Darwin: ## %bb.0:
1226 ; X64-Darwin-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1227 ; X64-Darwin-NEXT: cmpq %gs:816, %r11
1228 ; X64-Darwin-NEXT: jbe LBB4_1
1229 ; X64-Darwin-NEXT: LBB4_2:
1230 ; X64-Darwin-NEXT: subq $40008, %rsp ## imm = 0x9C48
1231 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 40016
1232 ; X64-Darwin-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1233 ; X64-Darwin-NEXT: movl $3, %esi
1234 ; X64-Darwin-NEXT: callq _dummy_use
1235 ; X64-Darwin-NEXT: addq $40008, %rsp ## imm = 0x9C48
1236 ; X64-Darwin-NEXT: retq
1237 ; X64-Darwin-NEXT: LBB4_1:
1238 ; X64-Darwin-NEXT: movl $40008, %r10d ## imm = 0x9C48
1239 ; X64-Darwin-NEXT: movl $0, %r11d
1240 ; X64-Darwin-NEXT: callq ___morestack
1241 ; X64-Darwin-NEXT: retq
1242 ; X64-Darwin-NEXT: jmp LBB4_2
1245 ; X86-MinGW: # %bb.0:
1246 ; X86-MinGW-NEXT: leal -{{[0-9]+}}(%esp), %eax
1250 ; X86-MinGW-NEXT: movl $40000, %eax # imm = 0x9C40
1259 ; X86-MinGW-NEXT: addl $40008, %esp # imm = 0x9C48
1263 ; X86-MinGW-NEXT: pushl $0
1264 ; X86-MinGW-NEXT: pushl $40000 # imm = 0x9C40
1269 ; X64-FreeBSD-LABEL: test_fastcc_large:
1270 ; X64-FreeBSD: # %bb.0:
1271 ; X64-FreeBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1272 ; X64-FreeBSD-NEXT: cmpq %fs:24, %r11
1273 ; X64-FreeBSD-NEXT: jbe .LBB4_1
1274 ; X64-FreeBSD-NEXT: .LBB4_2:
1275 ; X64-FreeBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
1276 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 40016
1277 ; X64-FreeBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1278 ; X64-FreeBSD-NEXT: movl $3, %esi
1279 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
1280 ; X64-FreeBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
1281 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
1282 ; X64-FreeBSD-NEXT: retq
1283 ; X64-FreeBSD-NEXT: .LBB4_1:
1284 ; X64-FreeBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
1285 ; X64-FreeBSD-NEXT: movl $0, %r11d
1286 ; X64-FreeBSD-NEXT: callq __morestack
1287 ; X64-FreeBSD-NEXT: retq
1288 ; X64-FreeBSD-NEXT: jmp .LBB4_2
1291 ; X86-DFlyBSD: # %bb.0:
1292 ; X86-DFlyBSD-NEXT: leal -{{[0-9]+}}(%esp), %eax
1296 ; X86-DFlyBSD-NEXT: subl $40000, %esp # imm = 0x9C40
1304 ; X86-DFlyBSD-NEXT: addl $40008, %esp # imm = 0x9C48
1308 ; X86-DFlyBSD-NEXT: pushl $0
1309 ; X86-DFlyBSD-NEXT: pushl $40000 # imm = 0x9C40
1314 ; X64-DFlyBSD-LABEL: test_fastcc_large:
1315 ; X64-DFlyBSD: # %bb.0:
1316 ; X64-DFlyBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1317 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %r11
1318 ; X64-DFlyBSD-NEXT: jbe .LBB4_1
1319 ; X64-DFlyBSD-NEXT: .LBB4_2:
1320 ; X64-DFlyBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
1321 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 40016
1322 ; X64-DFlyBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1323 ; X64-DFlyBSD-NEXT: movl $3, %esi
1324 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
1325 ; X64-DFlyBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
1326 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
1327 ; X64-DFlyBSD-NEXT: retq
1328 ; X64-DFlyBSD-NEXT: .LBB4_1:
1329 ; X64-DFlyBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
1330 ; X64-DFlyBSD-NEXT: movl $0, %r11d
1331 ; X64-DFlyBSD-NEXT: callq __morestack
1332 ; X64-DFlyBSD-NEXT: retq
1333 ; X64-DFlyBSD-NEXT: jmp .LBB4_2
1335 ; X64-MinGW-LABEL: test_fastcc_large:
1336 ; X64-MinGW: # %bb.0:
1337 ; X64-MinGW-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1338 ; X64-MinGW-NEXT: cmpq %gs:40, %r11
1339 ; X64-MinGW-NEXT: jbe .LBB4_1
1340 ; X64-MinGW-NEXT: .LBB4_2:
1341 ; X64-MinGW-NEXT: movl $40040, %eax # imm = 0x9C68
1342 ; X64-MinGW-NEXT: callq ___chkstk_ms
1343 ; X64-MinGW-NEXT: subq %rax, %rsp
1344 ; X64-MinGW-NEXT: .seh_stackalloc 40040
1345 ; X64-MinGW-NEXT: .seh_endprologue
1346 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
1347 ; X64-MinGW-NEXT: movl $3, %edx
1348 ; X64-MinGW-NEXT: callq dummy_use
1349 ; X64-MinGW-NEXT: nop
1350 ; X64-MinGW-NEXT: addq $40040, %rsp # imm = 0x9C68
1351 ; X64-MinGW-NEXT: retq
1352 ; X64-MinGW-NEXT: .LBB4_1:
1353 ; X64-MinGW-NEXT: movl $40040, %r10d # imm = 0x9C68
1354 ; X64-MinGW-NEXT: movl $32, %r11d
1355 ; X64-MinGW-NEXT: callq __morestack
1356 ; X64-MinGW-NEXT: retq
1357 ; X64-MinGW-NEXT: jmp .LBB4_2
1358 ; X64-MinGW-NEXT: .seh_endproc
1366 define fastcc void @test_fastcc_large_with_ecx_arg(i32 %a) #0 {
1368 ; X86-Linux: # %bb.0:
1369 ; X86-Linux-NEXT: leal -{{[0-9]+}}(%esp), %eax
1373 ; X86-Linux-NEXT: subl $40020, %esp # imm = 0x9C54
1375 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
1381 ; X86-Linux-NEXT: addl $40028, %esp # imm = 0x9C5C
1385 ; X86-Linux-NEXT: pushl $0
1386 ; X86-Linux-NEXT: pushl $40012 # imm = 0x9C4C
1391 ; X64-Linux-LABEL: test_fastcc_large_with_ecx_arg:
1392 ; X64-Linux: # %bb.0:
1393 ; X64-Linux-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1394 ; X64-Linux-NEXT: cmpq %fs:112, %r11
1395 ; X64-Linux-NEXT: jbe .LBB5_1
1396 ; X64-Linux-NEXT: .LBB5_2:
1397 ; X64-Linux-NEXT: subq $40008, %rsp # imm = 0x9C48
1398 ; X64-Linux-NEXT: .cfi_def_cfa_offset 40016
1399 ; X64-Linux-NEXT: movl %edi, %esi
1400 ; X64-Linux-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1401 ; X64-Linux-NEXT: callq dummy_use@PLT
1402 ; X64-Linux-NEXT: addq $40008, %rsp # imm = 0x9C48
1403 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
1404 ; X64-Linux-NEXT: retq
1405 ; X64-Linux-NEXT: .LBB5_1:
1406 ; X64-Linux-NEXT: movl $40008, %r10d # imm = 0x9C48
1407 ; X64-Linux-NEXT: movl $0, %r11d
1408 ; X64-Linux-NEXT: callq __morestack
1409 ; X64-Linux-NEXT: retq
1410 ; X64-Linux-NEXT: jmp .LBB5_2
1412 ; X64-Linux-Large-LABEL: test_fastcc_large_with_ecx_arg:
1413 ; X64-Linux-Large: # %bb.0:
1414 ; X64-Linux-Large-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1415 ; X64-Linux-Large-NEXT: cmpq %fs:112, %r11
1416 ; X64-Linux-Large-NEXT: jbe .LBB5_1
1417 ; X64-Linux-Large-NEXT: .LBB5_2:
1418 ; X64-Linux-Large-NEXT: subq $40008, %rsp # imm = 0x9C48
1419 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 40016
1420 ; X64-Linux-Large-NEXT: movl %edi, %esi
1421 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
1422 ; X64-Linux-Large-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1423 ; X64-Linux-Large-NEXT: callq *%rax
1424 ; X64-Linux-Large-NEXT: addq $40008, %rsp # imm = 0x9C48
1425 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
1426 ; X64-Linux-Large-NEXT: retq
1427 ; X64-Linux-Large-NEXT: .LBB5_1:
1428 ; X64-Linux-Large-NEXT: movl $40008, %r10d # imm = 0x9C48
1429 ; X64-Linux-Large-NEXT: movl $0, %r11d
1430 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1431 ; X64-Linux-Large-NEXT: retq
1432 ; X64-Linux-Large-NEXT: jmp .LBB5_2
1435 ; X32ABI: # %bb.0:
1436 ; X32ABI-NEXT: leal -{{[0-9]+}}(%rsp), %r11d
1440 ; X32ABI-NEXT: subl $40008, %esp # imm = 0x9C48
1443 ; X32ABI-NEXT: leal {{[0-9]+}}(%rsp), %edi
1445 ; X32ABI-NEXT: addl $40008, %esp # imm = 0x9C48
1449 ; X32ABI-NEXT: movl $40008, %r10d # imm = 0x9C48
1450 ; X32ABI-NEXT: movl $0, %r11d
1456 ; X86-Darwin: ## %bb.0:
1457 ; X86-Darwin-NEXT: leal -{{[0-9]+}}(%esp), %eax
1459 ; X86-Darwin-NEXT: movl $432, %ecx ## imm = 0x1B0
1464 ; X86-Darwin-NEXT: subl $40012, %esp ## imm = 0x9C4C
1466 ; X86-Darwin-NEXT: movl %ecx, {{[0-9]+}}(%esp)
1467 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
1470 ; X86-Darwin-NEXT: addl $40012, %esp ## imm = 0x9C4C
1473 ; X86-Darwin-NEXT: pushl $0
1474 ; X86-Darwin-NEXT: pushl $40012 ## imm = 0x9C4C
1479 ; X64-Darwin-LABEL: test_fastcc_large_with_ecx_arg:
1480 ; X64-Darwin: ## %bb.0:
1481 ; X64-Darwin-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1482 ; X64-Darwin-NEXT: cmpq %gs:816, %r11
1483 ; X64-Darwin-NEXT: jbe LBB5_1
1484 ; X64-Darwin-NEXT: LBB5_2:
1485 ; X64-Darwin-NEXT: subq $40008, %rsp ## imm = 0x9C48
1486 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 40016
1487 ; X64-Darwin-NEXT: movl %edi, %esi
1488 ; X64-Darwin-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1489 ; X64-Darwin-NEXT: callq _dummy_use
1490 ; X64-Darwin-NEXT: addq $40008, %rsp ## imm = 0x9C48
1491 ; X64-Darwin-NEXT: retq
1492 ; X64-Darwin-NEXT: LBB5_1:
1493 ; X64-Darwin-NEXT: movl $40008, %r10d ## imm = 0x9C48
1494 ; X64-Darwin-NEXT: movl $0, %r11d
1495 ; X64-Darwin-NEXT: callq ___morestack
1496 ; X64-Darwin-NEXT: retq
1497 ; X64-Darwin-NEXT: jmp LBB5_2
1500 ; X86-MinGW: # %bb.0:
1501 ; X86-MinGW-NEXT: leal -{{[0-9]+}}(%esp), %eax
1505 ; X86-MinGW-NEXT: movl $40000, %eax # imm = 0x9C40
1514 ; X86-MinGW-NEXT: addl $40008, %esp # imm = 0x9C48
1518 ; X86-MinGW-NEXT: pushl $0
1519 ; X86-MinGW-NEXT: pushl $40000 # imm = 0x9C40
1524 ; X64-FreeBSD-LABEL: test_fastcc_large_with_ecx_arg:
1525 ; X64-FreeBSD: # %bb.0:
1526 ; X64-FreeBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1527 ; X64-FreeBSD-NEXT: cmpq %fs:24, %r11
1528 ; X64-FreeBSD-NEXT: jbe .LBB5_1
1529 ; X64-FreeBSD-NEXT: .LBB5_2:
1530 ; X64-FreeBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
1531 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 40016
1532 ; X64-FreeBSD-NEXT: movl %edi, %esi
1533 ; X64-FreeBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1534 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
1535 ; X64-FreeBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
1536 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
1537 ; X64-FreeBSD-NEXT: retq
1538 ; X64-FreeBSD-NEXT: .LBB5_1:
1539 ; X64-FreeBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
1540 ; X64-FreeBSD-NEXT: movl $0, %r11d
1541 ; X64-FreeBSD-NEXT: callq __morestack
1542 ; X64-FreeBSD-NEXT: retq
1543 ; X64-FreeBSD-NEXT: jmp .LBB5_2
1546 ; X86-DFlyBSD: # %bb.0:
1547 ; X86-DFlyBSD-NEXT: leal -{{[0-9]+}}(%esp), %eax
1551 ; X86-DFlyBSD-NEXT: subl $40000, %esp # imm = 0x9C40
1559 ; X86-DFlyBSD-NEXT: addl $40008, %esp # imm = 0x9C48
1563 ; X86-DFlyBSD-NEXT: pushl $0
1564 ; X86-DFlyBSD-NEXT: pushl $40000 # imm = 0x9C40
1569 ; X64-DFlyBSD-LABEL: test_fastcc_large_with_ecx_arg:
1570 ; X64-DFlyBSD: # %bb.0:
1571 ; X64-DFlyBSD-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1572 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %r11
1573 ; X64-DFlyBSD-NEXT: jbe .LBB5_1
1574 ; X64-DFlyBSD-NEXT: .LBB5_2:
1575 ; X64-DFlyBSD-NEXT: subq $40008, %rsp # imm = 0x9C48
1576 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 40016
1577 ; X64-DFlyBSD-NEXT: movl %edi, %esi
1578 ; X64-DFlyBSD-NEXT: leaq {{[0-9]+}}(%rsp), %rdi
1579 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
1580 ; X64-DFlyBSD-NEXT: addq $40008, %rsp # imm = 0x9C48
1581 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
1582 ; X64-DFlyBSD-NEXT: retq
1583 ; X64-DFlyBSD-NEXT: .LBB5_1:
1584 ; X64-DFlyBSD-NEXT: movl $40008, %r10d # imm = 0x9C48
1585 ; X64-DFlyBSD-NEXT: movl $0, %r11d
1586 ; X64-DFlyBSD-NEXT: callq __morestack
1587 ; X64-DFlyBSD-NEXT: retq
1588 ; X64-DFlyBSD-NEXT: jmp .LBB5_2
1590 ; X64-MinGW-LABEL: test_fastcc_large_with_ecx_arg:
1591 ; X64-MinGW: # %bb.0:
1592 ; X64-MinGW-NEXT: leaq -{{[0-9]+}}(%rsp), %r11
1593 ; X64-MinGW-NEXT: cmpq %gs:40, %r11
1594 ; X64-MinGW-NEXT: jbe .LBB5_1
1595 ; X64-MinGW-NEXT: .LBB5_2:
1596 ; X64-MinGW-NEXT: movl $40040, %eax # imm = 0x9C68
1597 ; X64-MinGW-NEXT: callq ___chkstk_ms
1598 ; X64-MinGW-NEXT: subq %rax, %rsp
1599 ; X64-MinGW-NEXT: .seh_stackalloc 40040
1600 ; X64-MinGW-NEXT: .seh_endprologue
1601 ; X64-MinGW-NEXT: movl %ecx, %edx
1602 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
1603 ; X64-MinGW-NEXT: callq dummy_use
1604 ; X64-MinGW-NEXT: nop
1605 ; X64-MinGW-NEXT: addq $40040, %rsp # imm = 0x9C68
1606 ; X64-MinGW-NEXT: retq
1607 ; X64-MinGW-NEXT: .LBB5_1:
1608 ; X64-MinGW-NEXT: movl $40040, %r10d # imm = 0x9C68
1609 ; X64-MinGW-NEXT: movl $32, %r11d
1610 ; X64-MinGW-NEXT: callq __morestack
1611 ; X64-MinGW-NEXT: retq
1612 ; X64-MinGW-NEXT: jmp .LBB5_2
1613 ; X64-MinGW-NEXT: .seh_endproc
1619 define void @test_nostack() #0 {
1621 ; X86-Linux: # %bb.0:
1624 ; X64-Linux-LABEL: test_nostack:
1625 ; X64-Linux: # %bb.0:
1626 ; X64-Linux-NEXT: retq
1628 ; X64-Linux-Large-LABEL: test_nostack:
1629 ; X64-Linux-Large: # %bb.0:
1630 ; X64-Linux-Large-NEXT: retq
1633 ; X32ABI: # %bb.0:
1637 ; X86-Darwin: ## %bb.0:
1640 ; X64-Darwin-LABEL: test_nostack:
1641 ; X64-Darwin: ## %bb.0:
1642 ; X64-Darwin-NEXT: retq
1645 ; X86-MinGW: # %bb.0:
1648 ; X64-FreeBSD-LABEL: test_nostack:
1649 ; X64-FreeBSD: # %bb.0:
1650 ; X64-FreeBSD-NEXT: retq
1653 ; X86-DFlyBSD: # %bb.0:
1656 ; X64-DFlyBSD-LABEL: test_nostack:
1657 ; X64-DFlyBSD: # %bb.0:
1658 ; X64-DFlyBSD-NEXT: retq
1660 ; X64-MinGW-LABEL: test_nostack:
1661 ; X64-MinGW: # %bb.0:
1662 ; X64-MinGW-NEXT: retq
1668 ; X86-Linux: # %bb.0:
1671 ; X64-Linux-LABEL: test_nosplitstck:
1672 ; X64-Linux: # %bb.0:
1673 ; X64-Linux-NEXT: retq
1675 ; X64-Linux-Large-LABEL: test_nosplitstck:
1676 ; X64-Linux-Large: # %bb.0:
1677 ; X64-Linux-Large-NEXT: retq
1680 ; X32ABI: # %bb.0:
1684 ; X86-Darwin: ## %bb.0:
1687 ; X64-Darwin-LABEL: test_nosplitstck:
1688 ; X64-Darwin: ## %bb.0:
1689 ; X64-Darwin-NEXT: retq
1692 ; X86-MinGW: # %bb.0:
1695 ; X64-FreeBSD-LABEL: test_nosplitstck:
1696 ; X64-FreeBSD: # %bb.0:
1697 ; X64-FreeBSD-NEXT: retq
1700 ; X86-DFlyBSD: # %bb.0:
1703 ; X64-DFlyBSD-LABEL: test_nosplitstck:
1704 ; X64-DFlyBSD: # %bb.0:
1705 ; X64-DFlyBSD-NEXT: retq
1707 ; X64-MinGW-LABEL: test_nosplitstck:
1708 ; X64-MinGW: # %bb.0:
1709 ; X64-MinGW-NEXT: retq
1719 define i32 @test_sibling_call_empty_frame(i32 %x) #0 {
1721 ; X86-Linux: # %bb.0:
1726 ; X86-Linux-NEXT: pushl $0
1731 ; X64-Linux-LABEL: test_sibling_call_empty_frame:
1732 ; X64-Linux: # %bb.0:
1733 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
1734 ; X64-Linux-NEXT: ja callee@PLT # TAILCALL
1735 ; X64-Linux-NEXT: # %bb.1:
1736 ; X64-Linux-NEXT: movl $0, %r10d
1737 ; X64-Linux-NEXT: movl $0, %r11d
1738 ; X64-Linux-NEXT: callq __morestack
1739 ; X64-Linux-NEXT: retq
1740 ; X64-Linux-NEXT: jmp callee@PLT # TAILCALL
1742 ; X64-Linux-Large-LABEL: test_sibling_call_empty_frame:
1743 ; X64-Linux-Large: # %bb.0:
1744 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
1745 ; X64-Linux-Large-NEXT: jbe .LBB8_1
1746 ; X64-Linux-Large-NEXT: # %bb.2:
1747 ; X64-Linux-Large-NEXT: movabsq $callee, %rax
1748 ; X64-Linux-Large-NEXT: jmpq *%rax # TAILCALL
1749 ; X64-Linux-Large-NEXT: .LBB8_1:
1750 ; X64-Linux-Large-NEXT: movl $0, %r10d
1751 ; X64-Linux-Large-NEXT: movl $0, %r11d
1752 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1753 ; X64-Linux-Large-NEXT: retq
1754 ; X64-Linux-Large-NEXT: movabsq $callee, %rax
1755 ; X64-Linux-Large-NEXT: jmpq *%rax # TAILCALL
1758 ; X32ABI: # %bb.0:
1762 ; X32ABI-NEXT: movl $0, %r10d
1763 ; X32ABI-NEXT: movl $0, %r11d
1769 ; X86-Darwin: ## %bb.0:
1770 ; X86-Darwin-NEXT: movl $432, %ecx ## imm = 0x1B0
1775 ; X86-Darwin-NEXT: pushl $0
1780 ; X64-Darwin-LABEL: test_sibling_call_empty_frame:
1781 ; X64-Darwin: ## %bb.0:
1782 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
1783 ; X64-Darwin-NEXT: ja _callee ## TAILCALL
1784 ; X64-Darwin-NEXT: ## %bb.1:
1785 ; X64-Darwin-NEXT: movl $0, %r10d
1786 ; X64-Darwin-NEXT: movl $0, %r11d
1787 ; X64-Darwin-NEXT: callq ___morestack
1788 ; X64-Darwin-NEXT: retq
1789 ; X64-Darwin-NEXT: jmp _callee ## TAILCALL
1792 ; X86-MinGW: # %bb.0:
1797 ; X86-MinGW-NEXT: pushl $0
1802 ; X64-FreeBSD-LABEL: test_sibling_call_empty_frame:
1803 ; X64-FreeBSD: # %bb.0:
1804 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
1805 ; X64-FreeBSD-NEXT: ja callee@PLT # TAILCALL
1806 ; X64-FreeBSD-NEXT: # %bb.1:
1807 ; X64-FreeBSD-NEXT: movl $0, %r10d
1808 ; X64-FreeBSD-NEXT: movl $0, %r11d
1809 ; X64-FreeBSD-NEXT: callq __morestack
1810 ; X64-FreeBSD-NEXT: retq
1811 ; X64-FreeBSD-NEXT: jmp callee@PLT # TAILCALL
1814 ; X86-DFlyBSD: # %bb.0:
1819 ; X86-DFlyBSD-NEXT: pushl $0
1824 ; X64-DFlyBSD-LABEL: test_sibling_call_empty_frame:
1825 ; X64-DFlyBSD: # %bb.0:
1826 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
1827 ; X64-DFlyBSD-NEXT: ja callee@PLT # TAILCALL
1828 ; X64-DFlyBSD-NEXT: # %bb.1:
1829 ; X64-DFlyBSD-NEXT: movl $0, %r10d
1830 ; X64-DFlyBSD-NEXT: movl $0, %r11d
1831 ; X64-DFlyBSD-NEXT: callq __morestack
1832 ; X64-DFlyBSD-NEXT: retq
1833 ; X64-DFlyBSD-NEXT: jmp callee@PLT # TAILCALL
1835 ; X64-MinGW-LABEL: test_sibling_call_empty_frame:
1836 ; X64-MinGW: # %bb.0:
1837 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
1838 ; X64-MinGW-NEXT: ja callee # TAILCALL
1839 ; X64-MinGW-NEXT: # %bb.1:
1840 ; X64-MinGW-NEXT: movl $0, %r10d
1841 ; X64-MinGW-NEXT: movl $32, %r11d
1842 ; X64-MinGW-NEXT: callq __morestack
1843 ; X64-MinGW-NEXT: retq
1844 ; X64-MinGW-NEXT: jmp callee # TAILCALL
1845 %call = tail call i32 @callee(i32 %x) #0
1851 define i32 @test_nested_unused(ptr nest %unused) #0 {
1853 ; X86-Linux: # %bb.0:
1859 ; X86-Linux-NEXT: leal {{[0-9]+}}(%esp), %eax
1872 ; X86-Linux-NEXT: pushl $0
1878 ; X64-Linux-LABEL: test_nested_unused:
1879 ; X64-Linux: # %bb.0:
1880 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
1881 ; X64-Linux-NEXT: jbe .LBB9_1
1882 ; X64-Linux-NEXT: .LBB9_2:
1883 ; X64-Linux-NEXT: subq $40, %rsp
1884 ; X64-Linux-NEXT: .cfi_def_cfa_offset 48
1885 ; X64-Linux-NEXT: movq %rsp, %rdi
1886 ; X64-Linux-NEXT: movl $10, %esi
1887 ; X64-Linux-NEXT: callq dummy_use@PLT
1888 ; X64-Linux-NEXT: movl $123, %eax
1889 ; X64-Linux-NEXT: addq $40, %rsp
1890 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
1891 ; X64-Linux-NEXT: retq
1892 ; X64-Linux-NEXT: .LBB9_1:
1893 ; X64-Linux-NEXT: movl $40, %r10d
1894 ; X64-Linux-NEXT: movl $0, %r11d
1895 ; X64-Linux-NEXT: callq __morestack
1896 ; X64-Linux-NEXT: retq
1897 ; X64-Linux-NEXT: jmp .LBB9_2
1899 ; X64-Linux-Large-LABEL: test_nested_unused:
1900 ; X64-Linux-Large: # %bb.0:
1901 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
1902 ; X64-Linux-Large-NEXT: jbe .LBB9_1
1903 ; X64-Linux-Large-NEXT: .LBB9_2:
1904 ; X64-Linux-Large-NEXT: subq $40, %rsp
1905 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 48
1906 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
1907 ; X64-Linux-Large-NEXT: movq %rsp, %rdi
1908 ; X64-Linux-Large-NEXT: movl $10, %esi
1909 ; X64-Linux-Large-NEXT: callq *%rax
1910 ; X64-Linux-Large-NEXT: movl $123, %eax
1911 ; X64-Linux-Large-NEXT: addq $40, %rsp
1912 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
1913 ; X64-Linux-Large-NEXT: retq
1914 ; X64-Linux-Large-NEXT: .LBB9_1:
1915 ; X64-Linux-Large-NEXT: movl $40, %r10d
1916 ; X64-Linux-Large-NEXT: movl $0, %r11d
1917 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1918 ; X64-Linux-Large-NEXT: retq
1919 ; X64-Linux-Large-NEXT: jmp .LBB9_2
1922 ; X32ABI: # %bb.0:
1937 ; X32ABI-NEXT: movl $0, %r11d
1943 ; X86-Darwin: ## %bb.0:
1944 ; X86-Darwin-NEXT: movl $432, %ecx ## imm = 0x1B0
1950 ; X86-Darwin-NEXT: leal {{[0-9]+}}(%esp), %eax
1952 ; X86-Darwin-NEXT: movl $10, {{[0-9]+}}(%esp)
1958 ; X86-Darwin-NEXT: pushl $0
1964 ; X64-Darwin-LABEL: test_nested_unused:
1965 ; X64-Darwin: ## %bb.0:
1966 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
1967 ; X64-Darwin-NEXT: jbe LBB9_1
1968 ; X64-Darwin-NEXT: LBB9_2:
1969 ; X64-Darwin-NEXT: subq $40, %rsp
1970 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 48
1971 ; X64-Darwin-NEXT: movq %rsp, %rdi
1972 ; X64-Darwin-NEXT: movl $10, %esi
1973 ; X64-Darwin-NEXT: callq _dummy_use
1974 ; X64-Darwin-NEXT: movl $123, %eax
1975 ; X64-Darwin-NEXT: addq $40, %rsp
1976 ; X64-Darwin-NEXT: retq
1977 ; X64-Darwin-NEXT: LBB9_1:
1978 ; X64-Darwin-NEXT: movl $40, %r10d
1979 ; X64-Darwin-NEXT: movl $0, %r11d
1980 ; X64-Darwin-NEXT: callq ___morestack
1981 ; X64-Darwin-NEXT: retq
1982 ; X64-Darwin-NEXT: jmp LBB9_2
1985 ; X86-MinGW: # %bb.0:
2004 ; X86-MinGW-NEXT: pushl $0
2010 ; X64-FreeBSD-LABEL: test_nested_unused:
2011 ; X64-FreeBSD: # %bb.0:
2012 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
2013 ; X64-FreeBSD-NEXT: jbe .LBB9_1
2014 ; X64-FreeBSD-NEXT: .LBB9_2:
2015 ; X64-FreeBSD-NEXT: subq $40, %rsp
2016 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 48
2017 ; X64-FreeBSD-NEXT: movq %rsp, %rdi
2018 ; X64-FreeBSD-NEXT: movl $10, %esi
2019 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
2020 ; X64-FreeBSD-NEXT: movl $123, %eax
2021 ; X64-FreeBSD-NEXT: addq $40, %rsp
2022 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
2023 ; X64-FreeBSD-NEXT: retq
2024 ; X64-FreeBSD-NEXT: .LBB9_1:
2025 ; X64-FreeBSD-NEXT: movl $40, %r10d
2026 ; X64-FreeBSD-NEXT: movl $0, %r11d
2027 ; X64-FreeBSD-NEXT: callq __morestack
2028 ; X64-FreeBSD-NEXT: retq
2029 ; X64-FreeBSD-NEXT: jmp .LBB9_2
2032 ; X86-DFlyBSD: # %bb.0:
2051 ; X86-DFlyBSD-NEXT: pushl $0
2057 ; X64-DFlyBSD-LABEL: test_nested_unused:
2058 ; X64-DFlyBSD: # %bb.0:
2059 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
2060 ; X64-DFlyBSD-NEXT: jbe .LBB9_1
2061 ; X64-DFlyBSD-NEXT: .LBB9_2:
2062 ; X64-DFlyBSD-NEXT: subq $40, %rsp
2063 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 48
2064 ; X64-DFlyBSD-NEXT: movq %rsp, %rdi
2065 ; X64-DFlyBSD-NEXT: movl $10, %esi
2066 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
2067 ; X64-DFlyBSD-NEXT: movl $123, %eax
2068 ; X64-DFlyBSD-NEXT: addq $40, %rsp
2069 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
2070 ; X64-DFlyBSD-NEXT: retq
2071 ; X64-DFlyBSD-NEXT: .LBB9_1:
2072 ; X64-DFlyBSD-NEXT: movl $40, %r10d
2073 ; X64-DFlyBSD-NEXT: movl $0, %r11d
2074 ; X64-DFlyBSD-NEXT: callq __morestack
2075 ; X64-DFlyBSD-NEXT: retq
2076 ; X64-DFlyBSD-NEXT: jmp .LBB9_2
2078 ; X64-MinGW-LABEL: test_nested_unused:
2079 ; X64-MinGW: # %bb.0:
2080 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
2081 ; X64-MinGW-NEXT: jbe .LBB9_1
2082 ; X64-MinGW-NEXT: .LBB9_2:
2083 ; X64-MinGW-NEXT: subq $72, %rsp
2084 ; X64-MinGW-NEXT: .seh_stackalloc 72
2085 ; X64-MinGW-NEXT: .seh_endprologue
2086 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
2087 ; X64-MinGW-NEXT: movl $10, %edx
2088 ; X64-MinGW-NEXT: callq dummy_use
2089 ; X64-MinGW-NEXT: movl $123, %eax
2090 ; X64-MinGW-NEXT: addq $72, %rsp
2091 ; X64-MinGW-NEXT: retq
2092 ; X64-MinGW-NEXT: .LBB9_1:
2093 ; X64-MinGW-NEXT: movl $72, %r10d
2094 ; X64-MinGW-NEXT: movl $32, %r11d
2095 ; X64-MinGW-NEXT: callq __morestack
2096 ; X64-MinGW-NEXT: retq
2097 ; X64-MinGW-NEXT: jmp .LBB9_2
2098 ; X64-MinGW-NEXT: .seh_endproc
2104 attributes #0 = { "split-stack" }
2106 ; X64-Linux-Large: .section ".note.GNU-split-stack","",@progbits
2107 ; X64-Linux-Large-NEXT: .section ".note.GNU-no-split-stack","",@progbits
2108 ; X64-Linux-Large-NEXT: .section ".note.GNU-stack","",@progbits
2109 ; X64-Linux-Large-NEXT: .rodata
2110 ; X64-Linux-Large-NEXT: __morestack_addr:
2111 ; X64-Linux-Large-NEXT: .quad __morestack
2116 ; X64-Linux: .section ".note.GNU-split-stack","",@progbits
2117 ; X64-Linux: .section ".note.GNU-no-split-stack","",@progbits
2119 ; X64-FreeBSD: .section ".note.GNU-split-stack","",@progbits
2120 ; X64-FreeBSD: .section ".note.GNU-no-split-stack","",@progbits
2125 ; X64-DFlyBSD: .section ".note.GNU-split-stack","",@progbits
2126 ; X64-DFlyBSD: .section ".note.GNU-no-split-stack","",@progbits