aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c')
-rw-r--r--gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c162
1 files changed, 162 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c b/gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c
new file mode 100644
index 0000000..3fcb41f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c
@@ -0,0 +1,162 @@
+/* { dg-do compile { target { *-*-linux* && maybe_x32 } } } */
+/* { dg-options "-O2 -mx32 -fno-pic -mtune=generic -msse2 -mapxf -mtune-ctrl=prologue_using_move,epilogue_using_move" } */
+/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
+/* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } } */
+
+/* end must be empty. */
+
+/*
+**end:
+**.LFB[0-9]+:
+** .cfi_startproc
+** ret
+** .cfi_endproc
+**...
+*/
+
+/* inc doesn't have any callee saved registers. */
+
+/*
+**inc:
+**.LFB[0-9]+:
+** .cfi_startproc
+** addl \$1, accumulator\(%rip\)
+** movq %rdi, %rax
+** movl \(%eax\), %eax
+** leal 4\(%rdi\), %edi
+** jmp \*%rax
+** .cfi_endproc
+**...
+*/
+
+/* dec doesn't have any callee saved registers. */
+
+/*
+**dec:
+**.LFB[0-9]+:
+** .cfi_startproc
+** subl \$1, accumulator\(%rip\)
+** movq %rdi, %rax
+** movl \(%eax\), %eax
+** leal 4\(%rdi\), %edi
+** jmp \*%rax
+** .cfi_endproc
+**...
+*/
+
+/* start must save and restore all caller saved registers. */
+
+/*
+**start:
+**.LFB[0-9]+:
+** .cfi_startproc
+** subl \$504, %esp
+**...
+** movq %rax, 256\(%rsp\)
+** movq %rdx, 264\(%rsp\)
+** movq %rcx, 272\(%rsp\)
+** movq %rbx, 280\(%rsp\)
+** movq %rsi, 288\(%rsp\)
+** movq %rdi, 296\(%rsp\)
+**...
+** movl \$code\+4, %edi
+** movq %rbp, 304\(%rsp\)
+** movq %r8, 312\(%rsp\)
+** movq %r9, 320\(%rsp\)
+** movq %r10, 328\(%rsp\)
+** movq %r11, 336\(%rsp\)
+** movq %r12, 344\(%rsp\)
+** movq %r13, 352\(%rsp\)
+** movq %r14, 360\(%rsp\)
+** movq %r15, 368\(%rsp\)
+** movq %r16, 376\(%rsp\)
+** movq %r17, 384\(%rsp\)
+** movq %r18, 392\(%rsp\)
+** movq %r19, 400\(%rsp\)
+** movq %r20, 408\(%rsp\)
+** movq %r21, 416\(%rsp\)
+** movq %r22, 424\(%rsp\)
+** movq %r23, 432\(%rsp\)
+** movq %r24, 440\(%rsp\)
+** movq %r25, 448\(%rsp\)
+** movq %r26, 456\(%rsp\)
+** movq %r27, 464\(%rsp\)
+** movq %r28, 472\(%rsp\)
+** movq %r29, 480\(%rsp\)
+** movq %r30, 488\(%rsp\)
+** movq %r31, 496\(%rsp\)
+**...
+** movl code\(%rip\), %ebp
+** movaps %xmm0, \(%rsp\)
+** movaps %xmm1, 16\(%rsp\)
+** movaps %xmm2, 32\(%rsp\)
+** movaps %xmm3, 48\(%rsp\)
+** movaps %xmm4, 64\(%rsp\)
+** movaps %xmm5, 80\(%rsp\)
+** movaps %xmm6, 96\(%rsp\)
+** movaps %xmm7, 112\(%rsp\)
+** movaps %xmm8, 128\(%rsp\)
+** movaps %xmm9, 144\(%rsp\)
+** movaps %xmm10, 160\(%rsp\)
+** movaps %xmm11, 176\(%rsp\)
+** movaps %xmm12, 192\(%rsp\)
+** movaps %xmm13, 208\(%rsp\)
+** movaps %xmm14, 224\(%rsp\)
+** movaps %xmm15, 240\(%rsp\)
+**...
+** call \*%rbp
+** movaps \(%rsp\), %xmm0
+** movaps 16\(%rsp\), %xmm1
+** movaps 32\(%rsp\), %xmm2
+** movaps 48\(%rsp\), %xmm3
+** movaps 64\(%rsp\), %xmm4
+** movaps 80\(%rsp\), %xmm5
+** movaps 96\(%rsp\), %xmm6
+** movaps 112\(%rsp\), %xmm7
+** movaps 128\(%rsp\), %xmm8
+** movaps 144\(%rsp\), %xmm9
+** movaps 160\(%rsp\), %xmm10
+** movaps 176\(%rsp\), %xmm11
+** movaps 192\(%rsp\), %xmm12
+** movaps 208\(%rsp\), %xmm13
+** movaps 224\(%rsp\), %xmm14
+** movaps 240\(%rsp\), %xmm15
+** movq 256\(%rsp\), %rax
+** movq 264\(%rsp\), %rdx
+** movq 272\(%rsp\), %rcx
+** movq 280\(%rsp\), %rbx
+** movq 288\(%rsp\), %rsi
+** movq 296\(%rsp\), %rdi
+** movq 304\(%rsp\), %rbp
+** movq 312\(%rsp\), %r8
+** movq 320\(%rsp\), %r9
+** movq 328\(%rsp\), %r10
+** movq 336\(%rsp\), %r11
+** movq 344\(%rsp\), %r12
+** movq 352\(%rsp\), %r13
+** movq 360\(%rsp\), %r14
+** movq 368\(%rsp\), %r15
+** movq 376\(%rsp\), %r16
+** movq 384\(%rsp\), %r17
+** movq 392\(%rsp\), %r18
+** movq 400\(%rsp\), %r19
+** movq 408\(%rsp\), %r20
+** movq 416\(%rsp\), %r21
+** movq 424\(%rsp\), %r22
+** movq 432\(%rsp\), %r23
+** movq 440\(%rsp\), %r24
+** movq 448\(%rsp\), %r25
+** movq 456\(%rsp\), %r26
+** movq 464\(%rsp\), %r27
+** movq 472\(%rsp\), %r28
+** movq 480\(%rsp\), %r29
+** movq 488\(%rsp\), %r30
+** movq 496\(%rsp\), %r31
+** addl \$504, %esp
+**...
+** ret
+** .cfi_endproc
+**...
+*/
+
+#include "no-callee-saved-19a.c"