1 1.11 christos /* Copyright 2012-2024 Free Software Foundation, Inc. 2 1.1 christos 3 1.1 christos This file is part of GDB. 4 1.1 christos 5 1.1 christos This program is free software; you can redistribute it and/or modify 6 1.1 christos it under the terms of the GNU General Public License as published by 7 1.1 christos the Free Software Foundation; either version 3 of the License, or 8 1.1 christos (at your option) any later version. 9 1.1 christos 10 1.1 christos This program is distributed in the hope that it will be useful, 11 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 12 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 1.1 christos GNU General Public License for more details. 14 1.1 christos 15 1.1 christos You should have received a copy of the GNU General Public License 16 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 1.1 christos 18 1.1 christos /* 19 1.1 christos gcc -S -o gdb.arch/i386-sse-stack-align.{S,c} -Wall -m32 -msse 20 1.1 christos */ 21 1.1 christos 22 1.1 christos .file "i386-sse-stack-align.c" 23 1.1 christos .text 24 1.1 christos .type foo, @function 25 1.1 christos foo: 26 1.1 christos .LFB0: 27 1.1 christos .cfi_startproc 28 1.1 christos pushl %ebp 29 1.1 christos .cfi_def_cfa_offset 8 30 1.1 christos .cfi_offset 5, -8 31 1.1 christos movl %esp, %ebp 32 1.1 christos .cfi_def_cfa_register 5 33 1.1 christos subl $40, %esp 34 1.1 christos movaps %xmm0, -24(%ebp) 35 1.1 christos movaps %xmm1, -40(%ebp) 36 1.1 christos movaps -24(%ebp), %xmm0 37 1.1 christos movaps -40(%ebp), %xmm1 38 1.1 christos mulps %xmm1, %xmm0 39 1.1 christos addps -24(%ebp), %xmm0 40 1.1 christos leave 41 1.1 christos .cfi_restore 5 42 1.1 christos .cfi_def_cfa 4, 4 43 1.1 christos ret 44 1.1 christos .cfi_endproc 45 1.1 christos .LFE0: 46 1.1 christos .size foo, .-foo 47 1.1 christos .type f, @function 48 1.1 christos f: 49 1.1 christos .LFB1: 50 1.1 christos .cfi_startproc 51 1.1 christos pushl %ebp 52 1.1 christos .cfi_def_cfa_offset 8 53 1.1 christos .cfi_offset 5, -8 54 1.1 christos movl %esp, %ebp 55 1.1 christos .cfi_def_cfa_register 5 56 1.1 christos subl $40, %esp 57 1.1 christos movaps .LC0, %xmm0 58 1.1 christos movaps %xmm0, -24(%ebp) 59 1.1 christos movaps -24(%ebp), %xmm1 60 1.1 christos movaps -24(%ebp), %xmm0 61 1.1 christos call foo 62 1.1 christos movaps %xmm0, -40(%ebp) 63 1.1 christos leal -40(%ebp), %eax 64 1.1 christos movss (%eax), %xmm0 65 1.1 christos cvttss2si %xmm0, %eax 66 1.1 christos leave 67 1.1 christos .cfi_restore 5 68 1.1 christos .cfi_def_cfa 4, 4 69 1.1 christos ret 70 1.1 christos .cfi_endproc 71 1.1 christos .LFE1: 72 1.1 christos .size f, .-f 73 1.10 christos .type test_g0, @function 74 1.10 christos test_g0: 75 1.1 christos .LFB2: 76 1.1 christos .cfi_startproc 77 1.1 christos pushl %ebp 78 1.1 christos .cfi_def_cfa_offset 8 79 1.1 christos .cfi_offset 5, -8 80 1.1 christos movl %esp, %ebp 81 1.1 christos .cfi_def_cfa_register 5 82 1.1 christos subl $8, %esp 83 1.1 christos call f 84 1.1 christos leave 85 1.1 christos .cfi_restore 5 86 1.1 christos .cfi_def_cfa 4, 4 87 1.1 christos ret 88 1.1 christos .cfi_endproc 89 1.1 christos .LFE2: 90 1.10 christos .size test_g0, .-test_g0 91 1.10 christos .type test_g1, @function 92 1.10 christos test_g1: 93 1.1 christos .LFB3: 94 1.1 christos .cfi_startproc 95 1.1 christos pushl %ebp 96 1.1 christos .cfi_def_cfa_offset 8 97 1.1 christos .cfi_offset 5, -8 98 1.1 christos movl %esp, %ebp 99 1.1 christos .cfi_def_cfa_register 5 100 1.1 christos subl $8, %esp 101 1.1 christos call f 102 1.1 christos leave 103 1.1 christos .cfi_restore 5 104 1.1 christos .cfi_def_cfa 4, 4 105 1.1 christos ret 106 1.1 christos .cfi_endproc 107 1.1 christos .LFE3: 108 1.10 christos .size test_g1, .-test_g1 109 1.10 christos .type test_g2, @function 110 1.10 christos test_g2: 111 1.1 christos .LFB4: 112 1.1 christos .cfi_startproc 113 1.1 christos pushl %ebp 114 1.1 christos .cfi_def_cfa_offset 8 115 1.1 christos .cfi_offset 5, -8 116 1.1 christos movl %esp, %ebp 117 1.1 christos .cfi_def_cfa_register 5 118 1.1 christos subl $8, %esp 119 1.1 christos call f 120 1.1 christos leave 121 1.1 christos .cfi_restore 5 122 1.1 christos .cfi_def_cfa 4, 4 123 1.1 christos ret 124 1.1 christos .cfi_endproc 125 1.1 christos .LFE4: 126 1.10 christos .size test_g2, .-test_g2 127 1.10 christos .type test_g3, @function 128 1.10 christos test_g3: 129 1.1 christos .LFB5: 130 1.1 christos .cfi_startproc 131 1.1 christos pushl %ebp 132 1.1 christos .cfi_def_cfa_offset 8 133 1.1 christos .cfi_offset 5, -8 134 1.1 christos movl %esp, %ebp 135 1.1 christos .cfi_def_cfa_register 5 136 1.1 christos subl $8, %esp 137 1.1 christos call f 138 1.1 christos leave 139 1.1 christos .cfi_restore 5 140 1.1 christos .cfi_def_cfa 4, 4 141 1.1 christos ret 142 1.1 christos .cfi_endproc 143 1.1 christos .LFE5: 144 1.10 christos .size test_g3, .-test_g3 145 1.10 christos .type test_g4, @function 146 1.10 christos test_g4: 147 1.1 christos .LFB6: 148 1.1 christos .cfi_startproc 149 1.1 christos pushl %ebp 150 1.1 christos .cfi_def_cfa_offset 8 151 1.1 christos .cfi_offset 5, -8 152 1.1 christos movl %esp, %ebp 153 1.1 christos .cfi_def_cfa_register 5 154 1.1 christos subl $8, %esp 155 1.1 christos call f 156 1.1 christos leave 157 1.1 christos .cfi_restore 5 158 1.1 christos .cfi_def_cfa 4, 4 159 1.1 christos ret 160 1.1 christos .cfi_endproc 161 1.1 christos .LFE6: 162 1.10 christos .size test_g4, .-test_g4 163 1.1 christos .globl main 164 1.1 christos .type main, @function 165 1.1 christos main: 166 1.1 christos .LFB7: 167 1.1 christos .cfi_startproc 168 1.1 christos pushl %ebp 169 1.1 christos .cfi_def_cfa_offset 8 170 1.1 christos .cfi_offset 5, -8 171 1.1 christos movl %esp, %ebp 172 1.1 christos .cfi_def_cfa_register 5 173 1.1 christos pushl %ebx 174 1.1 christos andl $-16, %esp 175 1.1 christos subl $16, %esp 176 1.1 christos .cfi_offset 3, -12 177 1.10 christos call test_g0 178 1.1 christos movl %eax, %ebx 179 1.1 christos movl $1, (%esp) 180 1.10 christos call test_g1 181 1.1 christos addl %eax, %ebx 182 1.1 christos movl $2, 4(%esp) 183 1.1 christos movl $1, (%esp) 184 1.10 christos call test_g2 185 1.1 christos addl %eax, %ebx 186 1.1 christos movl $3, 8(%esp) 187 1.1 christos movl $2, 4(%esp) 188 1.1 christos movl $1, (%esp) 189 1.10 christos call test_g3 190 1.1 christos addl %eax, %ebx 191 1.1 christos movl $4, 12(%esp) 192 1.1 christos movl $3, 8(%esp) 193 1.1 christos movl $2, 4(%esp) 194 1.1 christos movl $1, (%esp) 195 1.10 christos call test_g4 196 1.1 christos addl %ebx, %eax 197 1.1 christos movl -4(%ebp), %ebx 198 1.1 christos leave 199 1.1 christos .cfi_restore 5 200 1.1 christos .cfi_def_cfa 4, 4 201 1.1 christos .cfi_restore 3 202 1.1 christos ret 203 1.1 christos .cfi_endproc 204 1.1 christos .LFE7: 205 1.1 christos .size main, .-main 206 1.1 christos .section .rodata 207 1.1 christos .align 16 208 1.1 christos .LC0: 209 1.1 christos .long 1065353216 210 1.1 christos .long 1073741824 211 1.1 christos .long 1077936128 212 1.1 christos .long 1082130432 213 1.1 christos .ident "GCC: (GNU) 4.6.4 20120612 (prerelease)" 214 1.1 christos .section .note.GNU-stack,"",@progbits 215