This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: How to get 16-byte stack alignment in leaf functions
- From: <sisyphus1 at optusnet dot com dot au>
- To: "Dave Allured - NOAA Affiliate" <dave dot allured at noaa dot gov>, <gcc-help at gcc dot gnu dot org>
- Date: Wed, 11 Sep 2013 09:35:36 +1000
- Subject: Re: How to get 16-byte stack alignment in leaf functions
- Authentication-results: sourceware.org; auth=none
- References: <CALqwTFMA9B5FLOF_3CcDwAyyO8LYBoD=f9ErnD11qKdxbCqs0Q at mail dot gmail dot com> <522EE995 dot 5030901 at redhat dot com> <CALqwTFMvRAB4WyQPY6-R8JeGizjfS2j2kZ8uA=zUfa7za36DpA at mail dot gmail dot com>
-----Original Message-----
From: Dave Allured - NOAA Affiliate
On Tue, Sep 10, 2013 at 3:42 AM, Andrew Haley <aph@redhat.com> wrote:
What is the faulting instruction?
movdqa, an SSE instruction that requires 16-byte alignment. This is
about a dozen instructions within the dynamic loader.
By some coincidence the same problem with movdqa cropped up (and a solution
found) in a perl forum:
http://www.perlmonks.org/?node_id=1052707
In a nutshell, the solution there was to invoke "__attribute__
((aligned(8)))", which meant that gcc generated movdqu instructions instead
of the faster movdqa.
I don't know if that necessarily helps here :-)
Cheers,
Rob