How to get 16-byte stack alignment in leaf functions

sisyphus1@optusnet.com.au sisyphus1@optusnet.com.au
Tue Sep 10 23:36:00 GMT 2013



-----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




More information about the Gcc-help mailing list