| Index: gdb/testsuite/gdb.arch/i386-sse-stack-align.S
|
| diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.S b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..18cffdcd1bbadc7f433b48f583bf4d109afd06c3
|
| --- /dev/null
|
| +++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
|
| @@ -0,0 +1,214 @@
|
| +/* Copyright 2012 Free Software Foundation, Inc.
|
| +
|
| + This file is part of GDB.
|
| +
|
| + This program is free software; you can redistribute it and/or modify
|
| + it under the terms of the GNU General Public License as published by
|
| + the Free Software Foundation; either version 3 of the License, or
|
| + (at your option) any later version.
|
| +
|
| + This program is distributed in the hope that it will be useful,
|
| + but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| + GNU General Public License for more details.
|
| +
|
| + You should have received a copy of the GNU General Public License
|
| + along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
| +
|
| +/*
|
| + gcc -S -o gdb.arch/i386-sse-stack-align.{S,c} -Wall -m32 -msse
|
| + */
|
| +
|
| + .file "i386-sse-stack-align.c"
|
| + .text
|
| + .type foo, @function
|
| +foo:
|
| +.LFB0:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $40, %esp
|
| + movaps %xmm0, -24(%ebp)
|
| + movaps %xmm1, -40(%ebp)
|
| + movaps -24(%ebp), %xmm0
|
| + movaps -40(%ebp), %xmm1
|
| + mulps %xmm1, %xmm0
|
| + addps -24(%ebp), %xmm0
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE0:
|
| + .size foo, .-foo
|
| + .type f, @function
|
| +f:
|
| +.LFB1:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $40, %esp
|
| + movaps .LC0, %xmm0
|
| + movaps %xmm0, -24(%ebp)
|
| + movaps -24(%ebp), %xmm1
|
| + movaps -24(%ebp), %xmm0
|
| + call foo
|
| + movaps %xmm0, -40(%ebp)
|
| + leal -40(%ebp), %eax
|
| + movss (%eax), %xmm0
|
| + cvttss2si %xmm0, %eax
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE1:
|
| + .size f, .-f
|
| + .type g0, @function
|
| +g0:
|
| +.LFB2:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $8, %esp
|
| + call f
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE2:
|
| + .size g0, .-g0
|
| + .type g1, @function
|
| +g1:
|
| +.LFB3:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $8, %esp
|
| + call f
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE3:
|
| + .size g1, .-g1
|
| + .type g2, @function
|
| +g2:
|
| +.LFB4:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $8, %esp
|
| + call f
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE4:
|
| + .size g2, .-g2
|
| + .type g3, @function
|
| +g3:
|
| +.LFB5:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $8, %esp
|
| + call f
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE5:
|
| + .size g3, .-g3
|
| + .type g4, @function
|
| +g4:
|
| +.LFB6:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + subl $8, %esp
|
| + call f
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + ret
|
| + .cfi_endproc
|
| +.LFE6:
|
| + .size g4, .-g4
|
| + .globl main
|
| + .type main, @function
|
| +main:
|
| +.LFB7:
|
| + .cfi_startproc
|
| + pushl %ebp
|
| + .cfi_def_cfa_offset 8
|
| + .cfi_offset 5, -8
|
| + movl %esp, %ebp
|
| + .cfi_def_cfa_register 5
|
| + pushl %ebx
|
| + andl $-16, %esp
|
| + subl $16, %esp
|
| + .cfi_offset 3, -12
|
| + call g0
|
| + movl %eax, %ebx
|
| + movl $1, (%esp)
|
| + call g1
|
| + addl %eax, %ebx
|
| + movl $2, 4(%esp)
|
| + movl $1, (%esp)
|
| + call g2
|
| + addl %eax, %ebx
|
| + movl $3, 8(%esp)
|
| + movl $2, 4(%esp)
|
| + movl $1, (%esp)
|
| + call g3
|
| + addl %eax, %ebx
|
| + movl $4, 12(%esp)
|
| + movl $3, 8(%esp)
|
| + movl $2, 4(%esp)
|
| + movl $1, (%esp)
|
| + call g4
|
| + addl %ebx, %eax
|
| + movl -4(%ebp), %ebx
|
| + leave
|
| + .cfi_restore 5
|
| + .cfi_def_cfa 4, 4
|
| + .cfi_restore 3
|
| + ret
|
| + .cfi_endproc
|
| +.LFE7:
|
| + .size main, .-main
|
| + .section .rodata
|
| + .align 16
|
| +.LC0:
|
| + .long 1065353216
|
| + .long 1073741824
|
| + .long 1077936128
|
| + .long 1082130432
|
| + .ident "GCC: (GNU) 4.6.4 20120612 (prerelease)"
|
| + .section .note.GNU-stack,"",@progbits
|
|
|