public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
[not found] <bug-37003-4@http.gcc.gnu.org/bugzilla/>
@ 2011-02-26 9:36 ` vastheman at users dot sourceforge.net
2011-02-26 9:36 ` vastheman at users dot sourceforge.net
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: vastheman at users dot sourceforge.net @ 2011-02-26 9:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
--- Comment #5 from Vas Crabb <vastheman at users dot sourceforge.net> 2011-02-26 09:33:44 UTC ---
I can confirm that this still occurs in gcc version 4.3.3 20090124 (Red Hat
4.3.3-13) and in gcc version 4.5.3 (Ubuntu/Linaro 4.5.2-3ubuntu3).
Using the same input, with the following options on gcc version 4.3.3 20090124
(Red Hat 4.3.3-13) (GCC):
gcc -march=core2 -msse2 -mfpmath=sse -O3 -xc++
This is the prologue of the generated code for the function. The Linux i686
ABI doesn't guarantee any more than 32-bit alignment of %esp on entry to a
function, and there is no code here to force alignment of %esp or %ebp:
_Z18create_geo_to_topoP7DMATRIXdd:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
movl %esp, %ebp
.cfi_offset 5, -8
.cfi_def_cfa_register 5
pushl %ebx
subl $148, %esp
movl 8(%ebp), %ebx
.cfi_offset 3, -12
Later in the function, we find the following code:
leal -56(%ebp), %eax
movapd %xmm0, -88(%ebp)
movsd %xmm5, -40(%ebp)
movl %eax, (%esp)
call _Z11geo_lla_xyzIP7DVECTORS1_EvT_T0_
movapd -88(%ebp), %xmm0
movsd -24(%ebp), %xmm3
It is using movapd to save and restore the contents of %xmm0 around the
function call. Since movapd requires the memory operand to fall on a 16-byte
boundary, this only works if, by chance, the stack was aligned appropriately on
entry to the function. In this case, GCC should probably use some other
instruction (e.g. movupd) to save the contents of the XMM register to avoid the
possibility of causing a general protection fault if the stack isn't aligned as
required.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
[not found] <bug-37003-4@http.gcc.gnu.org/bugzilla/>
2011-02-26 9:36 ` [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address vastheman at users dot sourceforge.net
@ 2011-02-26 9:36 ` vastheman at users dot sourceforge.net
2011-02-26 9:37 ` vastheman at users dot sourceforge.net
2011-02-26 10:50 ` vastheman at users dot sourceforge.net
3 siblings, 0 replies; 6+ messages in thread
From: vastheman at users dot sourceforge.net @ 2011-02-26 9:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
Vas Crabb <vastheman at users dot sourceforge.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vastheman at users dot
| |sourceforge.net
--- Comment #4 from Vas Crabb <vastheman at users dot sourceforge.net> 2011-02-26 09:30:56 UTC ---
I can confirm that this still occurs in gcc version 4.3.3 20090124 (Red Hat
4.3.3-13) and in gcc version 4.5.3 (Ubuntu/Linaro 4.5.2-3ubuntu3).
Using the same input, with the following options on gcc version 4.3.3 20090124
(Red Hat 4.3.3-13) (GCC):
gcc -march=core2 -msse2 -mfpmath=sse -O3 -xc++
This is the prologue of the generated code for the function. The Linux i686
ABI doesn't guarantee any more than 32-bit alignment of %esp on entry to a
function, and there is no code here to force alignment of %esp or %ebp:
_Z18create_geo_to_topoP7DMATRIXdd:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
movl %esp, %ebp
.cfi_offset 5, -8
.cfi_def_cfa_register 5
pushl %ebx
subl $148, %esp
movl 8(%ebp), %ebx
.cfi_offset 3, -12
Later in the function, we find the following code:
leal -56(%ebp), %eax
movapd %xmm0, -88(%ebp)
movsd %xmm5, -40(%ebp)
movl %eax, (%esp)
call _Z11geo_lla_xyzIP7DVECTORS1_EvT_T0_
movapd -88(%ebp), %xmm0
movsd -24(%ebp), %xmm3
It is using movapd to save and restore the contents of %xmm0 around the
function call. Since movapd re
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
[not found] <bug-37003-4@http.gcc.gnu.org/bugzilla/>
2011-02-26 9:36 ` [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address vastheman at users dot sourceforge.net
2011-02-26 9:36 ` vastheman at users dot sourceforge.net
@ 2011-02-26 9:37 ` vastheman at users dot sourceforge.net
2011-02-26 10:50 ` vastheman at users dot sourceforge.net
3 siblings, 0 replies; 6+ messages in thread
From: vastheman at users dot sourceforge.net @ 2011-02-26 9:37 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
--- Comment #6 from Vas Crabb <vastheman at users dot sourceforge.net> 2011-02-26 09:35:50 UTC ---
Sorry, I should mention that this happened when targeting 32-bit x86
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
[not found] <bug-37003-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2011-02-26 9:37 ` vastheman at users dot sourceforge.net
@ 2011-02-26 10:50 ` vastheman at users dot sourceforge.net
3 siblings, 0 replies; 6+ messages in thread
From: vastheman at users dot sourceforge.net @ 2011-02-26 10:50 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
--- Comment #7 from Vas Crabb <vastheman at users dot sourceforge.net> 2011-02-26 09:39:02 UTC ---
Created attachment 23477
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23477
assembly output from GCC 4.5.2 Red Hat i686
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
2008-08-01 17:35 [Bug c/37003] New: " gkumar007 at gmail dot com
2008-08-01 20:11 ` [Bug target/37003] " pinskia at gcc dot gnu dot org
@ 2009-09-17 9:24 ` ubizjak at gmail dot com
1 sibling, 0 replies; 6+ messages in thread
From: ubizjak at gmail dot com @ 2009-09-17 9:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from ubizjak at gmail dot com 2009-09-17 09:24 -------
Please try with latest version 4.4.x and reopen the bug if the test still
fails. Version 4.2 is not supported anymore.
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |WONTFIX
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address
2008-08-01 17:35 [Bug c/37003] New: " gkumar007 at gmail dot com
@ 2008-08-01 20:11 ` pinskia at gcc dot gnu dot org
2009-09-17 9:24 ` ubizjak at gmail dot com
1 sibling, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-08-01 20:11 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|major |normal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-02-26 9:39 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-37003-4@http.gcc.gnu.org/bugzilla/>
2011-02-26 9:36 ` [Bug target/37003] 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address vastheman at users dot sourceforge.net
2011-02-26 9:36 ` vastheman at users dot sourceforge.net
2011-02-26 9:37 ` vastheman at users dot sourceforge.net
2011-02-26 10:50 ` vastheman at users dot sourceforge.net
2008-08-01 17:35 [Bug c/37003] New: " gkumar007 at gmail dot com
2008-08-01 20:11 ` [Bug target/37003] " pinskia at gcc dot gnu dot org
2009-09-17 9:24 ` ubizjak at gmail dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).