Lines Matching refs: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1640 ; X64-Darwin-LABEL: test_nostack:
1641 ; X64-Darwin: ## %bb.0:
1642 ; X64-Darwin-NEXT: retq
1648 ; X64-FreeBSD-LABEL: test_nostack:
1649 ; X64-FreeBSD: # %bb.0:
1650 ; X64-FreeBSD-NEXT: retq
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
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
1687 ; X64-Darwin-LABEL: test_nosplitstck:
1688 ; X64-Darwin: ## %bb.0:
1689 ; X64-Darwin-NEXT: retq
1695 ; X64-FreeBSD-LABEL: test_nosplitstck:
1696 ; X64-FreeBSD: # %bb.0:
1697 ; X64-FreeBSD-NEXT: retq
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
1733 ; X64-Linux-LABEL: test_sibling_call_empty_frame:
1734 ; X64-Linux: # %bb.0:
1735 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
1736 ; X64-Linux-NEXT: jbe .LBB8_1
1737 ; X64-Linux-NEXT: # %bb.2:
1738 ; X64-Linux-NEXT: jmp callee@PLT # TAILCALL
1739 ; X64-Linux-NEXT: .LBB8_1:
1740 ; X64-Linux-NEXT: movl $0, %r10d
1741 ; X64-Linux-NEXT: movl $0, %r11d
1742 ; X64-Linux-NEXT: callq __morestack
1743 ; X64-Linux-NEXT: retq
1744 ; X64-Linux-NEXT: jmp callee@PLT # TAILCALL
1746 ; X64-Linux-Large-LABEL: test_sibling_call_empty_frame:
1747 ; X64-Linux-Large: # %bb.0:
1748 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
1749 ; X64-Linux-Large-NEXT: jbe .LBB8_1
1750 ; X64-Linux-Large-NEXT: # %bb.2:
1751 ; X64-Linux-Large-NEXT: movabsq $callee, %rax
1752 ; X64-Linux-Large-NEXT: jmpq *%rax # TAILCALL
1753 ; X64-Linux-Large-NEXT: .LBB8_1:
1754 ; X64-Linux-Large-NEXT: movl $0, %r10d
1755 ; X64-Linux-Large-NEXT: movl $0, %r11d
1756 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1757 ; X64-Linux-Large-NEXT: retq
1758 ; X64-Linux-Large-NEXT: movabsq $callee, %rax
1759 ; X64-Linux-Large-NEXT: jmpq *%rax # TAILCALL
1788 ; X64-Darwin-LABEL: test_sibling_call_empty_frame:
1789 ; X64-Darwin: ## %bb.0:
1790 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
1791 ; X64-Darwin-NEXT: jbe LBB8_1
1792 ; X64-Darwin-NEXT: ## %bb.2:
1793 ; X64-Darwin-NEXT: jmp _callee ## TAILCALL
1794 ; X64-Darwin-NEXT: LBB8_1:
1795 ; X64-Darwin-NEXT: movl $0, %r10d
1796 ; X64-Darwin-NEXT: movl $0, %r11d
1797 ; X64-Darwin-NEXT: callq ___morestack
1798 ; X64-Darwin-NEXT: retq
1799 ; X64-Darwin-NEXT: jmp _callee ## TAILCALL
1814 ; X64-FreeBSD-LABEL: test_sibling_call_empty_frame:
1815 ; X64-FreeBSD: # %bb.0:
1816 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
1817 ; X64-FreeBSD-NEXT: jbe .LBB8_1
1818 ; X64-FreeBSD-NEXT: # %bb.2:
1819 ; X64-FreeBSD-NEXT: jmp callee@PLT # TAILCALL
1820 ; X64-FreeBSD-NEXT: .LBB8_1:
1821 ; X64-FreeBSD-NEXT: movl $0, %r10d
1822 ; X64-FreeBSD-NEXT: movl $0, %r11d
1823 ; X64-FreeBSD-NEXT: callq __morestack
1824 ; X64-FreeBSD-NEXT: retq
1825 ; X64-FreeBSD-NEXT: jmp callee@PLT # TAILCALL
1840 ; X64-DFlyBSD-LABEL: test_sibling_call_empty_frame:
1841 ; X64-DFlyBSD: # %bb.0:
1842 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
1843 ; X64-DFlyBSD-NEXT: jbe .LBB8_1
1844 ; X64-DFlyBSD-NEXT: # %bb.2:
1845 ; X64-DFlyBSD-NEXT: jmp callee@PLT # TAILCALL
1846 ; X64-DFlyBSD-NEXT: .LBB8_1:
1847 ; X64-DFlyBSD-NEXT: movl $0, %r10d
1848 ; X64-DFlyBSD-NEXT: movl $0, %r11d
1849 ; X64-DFlyBSD-NEXT: callq __morestack
1850 ; X64-DFlyBSD-NEXT: retq
1851 ; X64-DFlyBSD-NEXT: jmp callee@PLT # TAILCALL
1853 ; X64-MinGW-LABEL: test_sibling_call_empty_frame:
1854 ; X64-MinGW: # %bb.0:
1855 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
1856 ; X64-MinGW-NEXT: jbe .LBB8_1
1857 ; X64-MinGW-NEXT: # %bb.2:
1858 ; X64-MinGW-NEXT: jmp callee # TAILCALL
1859 ; X64-MinGW-NEXT: .LBB8_1:
1860 ; X64-MinGW-NEXT: movl $0, %r10d
1861 ; X64-MinGW-NEXT: movl $32, %r11d
1862 ; X64-MinGW-NEXT: callq __morestack
1863 ; X64-MinGW-NEXT: retq
1864 ; X64-MinGW-NEXT: jmp callee # TAILCALL
1898 ; X64-Linux-LABEL: test_nested_unused:
1899 ; X64-Linux: # %bb.0:
1900 ; X64-Linux-NEXT: cmpq %fs:112, %rsp
1901 ; X64-Linux-NEXT: jbe .LBB9_1
1902 ; X64-Linux-NEXT: .LBB9_2:
1903 ; X64-Linux-NEXT: subq $40, %rsp
1904 ; X64-Linux-NEXT: .cfi_def_cfa_offset 48
1905 ; X64-Linux-NEXT: movq %rsp, %rdi
1906 ; X64-Linux-NEXT: movl $10, %esi
1907 ; X64-Linux-NEXT: callq dummy_use@PLT
1908 ; X64-Linux-NEXT: movl $123, %eax
1909 ; X64-Linux-NEXT: addq $40, %rsp
1910 ; X64-Linux-NEXT: .cfi_def_cfa_offset 8
1911 ; X64-Linux-NEXT: retq
1912 ; X64-Linux-NEXT: .LBB9_1:
1913 ; X64-Linux-NEXT: movl $40, %r10d
1914 ; X64-Linux-NEXT: movl $0, %r11d
1915 ; X64-Linux-NEXT: callq __morestack
1916 ; X64-Linux-NEXT: retq
1917 ; X64-Linux-NEXT: jmp .LBB9_2
1919 ; X64-Linux-Large-LABEL: test_nested_unused:
1920 ; X64-Linux-Large: # %bb.0:
1921 ; X64-Linux-Large-NEXT: cmpq %fs:112, %rsp
1922 ; X64-Linux-Large-NEXT: jbe .LBB9_1
1923 ; X64-Linux-Large-NEXT: .LBB9_2:
1924 ; X64-Linux-Large-NEXT: subq $40, %rsp
1925 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 48
1926 ; X64-Linux-Large-NEXT: movabsq $dummy_use, %rax
1927 ; X64-Linux-Large-NEXT: movq %rsp, %rdi
1928 ; X64-Linux-Large-NEXT: movl $10, %esi
1929 ; X64-Linux-Large-NEXT: callq *%rax
1930 ; X64-Linux-Large-NEXT: movl $123, %eax
1931 ; X64-Linux-Large-NEXT: addq $40, %rsp
1932 ; X64-Linux-Large-NEXT: .cfi_def_cfa_offset 8
1933 ; X64-Linux-Large-NEXT: retq
1934 ; X64-Linux-Large-NEXT: .LBB9_1:
1935 ; X64-Linux-Large-NEXT: movl $40, %r10d
1936 ; X64-Linux-Large-NEXT: movl $0, %r11d
1937 ; X64-Linux-Large-NEXT: callq *__morestack_addr(%rip)
1938 ; X64-Linux-Large-NEXT: retq
1939 ; X64-Linux-Large-NEXT: jmp .LBB9_2
1984 ; X64-Darwin-LABEL: test_nested_unused:
1985 ; X64-Darwin: ## %bb.0:
1986 ; X64-Darwin-NEXT: cmpq %gs:816, %rsp
1987 ; X64-Darwin-NEXT: jbe LBB9_1
1988 ; X64-Darwin-NEXT: LBB9_2:
1989 ; X64-Darwin-NEXT: subq $40, %rsp
1990 ; X64-Darwin-NEXT: .cfi_def_cfa_offset 48
1991 ; X64-Darwin-NEXT: movq %rsp, %rdi
1992 ; X64-Darwin-NEXT: movl $10, %esi
1993 ; X64-Darwin-NEXT: callq _dummy_use
1994 ; X64-Darwin-NEXT: movl $123, %eax
1995 ; X64-Darwin-NEXT: addq $40, %rsp
1996 ; X64-Darwin-NEXT: retq
1997 ; X64-Darwin-NEXT: LBB9_1:
1998 ; X64-Darwin-NEXT: movl $40, %r10d
1999 ; X64-Darwin-NEXT: movl $0, %r11d
2000 ; X64-Darwin-NEXT: callq ___morestack
2001 ; X64-Darwin-NEXT: retq
2002 ; X64-Darwin-NEXT: jmp LBB9_2
2030 ; X64-FreeBSD-LABEL: test_nested_unused:
2031 ; X64-FreeBSD: # %bb.0:
2032 ; X64-FreeBSD-NEXT: cmpq %fs:24, %rsp
2033 ; X64-FreeBSD-NEXT: jbe .LBB9_1
2034 ; X64-FreeBSD-NEXT: .LBB9_2:
2035 ; X64-FreeBSD-NEXT: subq $40, %rsp
2036 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 48
2037 ; X64-FreeBSD-NEXT: movq %rsp, %rdi
2038 ; X64-FreeBSD-NEXT: movl $10, %esi
2039 ; X64-FreeBSD-NEXT: callq dummy_use@PLT
2040 ; X64-FreeBSD-NEXT: movl $123, %eax
2041 ; X64-FreeBSD-NEXT: addq $40, %rsp
2042 ; X64-FreeBSD-NEXT: .cfi_def_cfa_offset 8
2043 ; X64-FreeBSD-NEXT: retq
2044 ; X64-FreeBSD-NEXT: .LBB9_1:
2045 ; X64-FreeBSD-NEXT: movl $40, %r10d
2046 ; X64-FreeBSD-NEXT: movl $0, %r11d
2047 ; X64-FreeBSD-NEXT: callq __morestack
2048 ; X64-FreeBSD-NEXT: retq
2049 ; X64-FreeBSD-NEXT: jmp .LBB9_2
2077 ; X64-DFlyBSD-LABEL: test_nested_unused:
2078 ; X64-DFlyBSD: # %bb.0:
2079 ; X64-DFlyBSD-NEXT: cmpq %fs:32, %rsp
2080 ; X64-DFlyBSD-NEXT: jbe .LBB9_1
2081 ; X64-DFlyBSD-NEXT: .LBB9_2:
2082 ; X64-DFlyBSD-NEXT: subq $40, %rsp
2083 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 48
2084 ; X64-DFlyBSD-NEXT: movq %rsp, %rdi
2085 ; X64-DFlyBSD-NEXT: movl $10, %esi
2086 ; X64-DFlyBSD-NEXT: callq dummy_use@PLT
2087 ; X64-DFlyBSD-NEXT: movl $123, %eax
2088 ; X64-DFlyBSD-NEXT: addq $40, %rsp
2089 ; X64-DFlyBSD-NEXT: .cfi_def_cfa_offset 8
2090 ; X64-DFlyBSD-NEXT: retq
2091 ; X64-DFlyBSD-NEXT: .LBB9_1:
2092 ; X64-DFlyBSD-NEXT: movl $40, %r10d
2093 ; X64-DFlyBSD-NEXT: movl $0, %r11d
2094 ; X64-DFlyBSD-NEXT: callq __morestack
2095 ; X64-DFlyBSD-NEXT: retq
2096 ; X64-DFlyBSD-NEXT: jmp .LBB9_2
2098 ; X64-MinGW-LABEL: test_nested_unused:
2099 ; X64-MinGW: # %bb.0:
2100 ; X64-MinGW-NEXT: cmpq %gs:40, %rsp
2101 ; X64-MinGW-NEXT: jbe .LBB9_1
2102 ; X64-MinGW-NEXT: .LBB9_2:
2103 ; X64-MinGW-NEXT: subq $72, %rsp
2104 ; X64-MinGW-NEXT: .seh_stackalloc 72
2105 ; X64-MinGW-NEXT: .seh_endprologue
2106 ; X64-MinGW-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
2107 ; X64-MinGW-NEXT: movl $10, %edx
2108 ; X64-MinGW-NEXT: callq dummy_use
2109 ; X64-MinGW-NEXT: movl $123, %eax
2110 ; X64-MinGW-NEXT: addq $72, %rsp
2111 ; X64-MinGW-NEXT: retq
2112 ; X64-MinGW-NEXT: .LBB9_1:
2113 ; X64-MinGW-NEXT: movl $72, %r10d
2114 ; X64-MinGW-NEXT: movl $32, %r11d
2115 ; X64-MinGW-NEXT: callq __morestack
2116 ; X64-MinGW-NEXT: retq
2117 ; X64-MinGW-NEXT: jmp .LBB9_2
2118 ; X64-MinGW-NEXT: .seh_endproc
2126 ; X64-Linux-Large: .section ".note.GNU-split-stack","",@progbits
2127 ; X64-Linux-Large-NEXT: .section ".note.GNU-no-split-stack","",@progbits
2128 ; X64-Linux-Large-NEXT: .section ".note.GNU-stack","",@progbits
2129 ; X64-Linux-Large-NEXT: .rodata
2130 ; X64-Linux-Large-NEXT: __morestack_addr:
2131 ; X64-Linux-Large-NEXT: .quad __morestack
2136 ; X64-Linux: .section ".note.GNU-split-stack","",@progbits
2137 ; X64-Linux: .section ".note.GNU-no-split-stack","",@progbits
2139 ; X64-FreeBSD: .section ".note.GNU-split-stack","",@progbits
2140 ; X64-FreeBSD: .section ".note.GNU-no-split-stack","",@progbits
2145 ; X64-DFlyBSD: .section ".note.GNU-split-stack","",@progbits
2146 ; X64-DFlyBSD: .section ".note.GNU-no-split-stack","",@progbits