|
Message-ID: <55EC7834.8070209@cox.net> Date: Sun, 6 Sep 2015 12:30:28 -0500 From: JimF <jfoug@....net> To: john-dev@...ts.openwall.com Subject: Re: Large stack alignment On 9/6/2015 12:16 PM, Solar Designer wrote: > That's great, but I think there's still performance impact potential: > all those individual pointers may need their own registers, whereas > without such per-pointer alignment gcc would simply address everything > relative to a single frame pointer register. > > Alexander Could this be handled with a union, where you define all of the arrays in that union, and then simply move the whole thing forward X number of bytes? Or would this cause a double access, first to access the pointer of the union, then to offset from that pointer to find the element (then possibly a 3rd to access offset within that buffer) ? If not, then turning type buf1[X]; type buf2[Y]; into typedef struct {type buf1[x]; type buf2[Y]} buftype; char _buf[sizeof(buftype)+align]; buftype *buf = mem_align(_buf, align); How does that look? Yes, now we have to change all buf1[x] into buf->buf1[x] but do you see this as just compiler eye candy, or is there still compiler performance issues here ?
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.