<div class="gmail_quote">On 6 January 2012 04:16, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com">newshound2@digitalmars.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 1/5/2012 5:42 PM, Manu wrote:<br>
</div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
-- Alignment --<br>
<br>
This type needs to be 16byte aligned. Unaligned loads/stores are very expensive,<br>
and also tend to produce extremely costly LHS hazards on most architectures when<br>
accessing vectors in arrays. If they are not aligned, they are useless... honestly.<br>
<br>
** Does this cause problems with class allocation? Are/can classes be allocated<br>
to an alignment as inherited from an aligned member? ... If not, this might be<br>
the bulk of the work.<br>
</blockquote>
<br></div>
The only real issue with alignment is getting the stack aligned to 16 bytes. This is already true of 64 bit code gen, and 32 bit code gen for OS X.<br>
</blockquote></div><div><br></div><div>It's important for all implementations of simd units, x32, x64, and others. As said, if aligning the x32 stack is too much trouble, I suggest silently passing by const ref on x86.</div>
<div><br></div><div>Are you talking about for parameter passing, or for local variable assignment on the stack?<br class="Apple-interchange-newline"></div><div>For parameter passing, I understand the x32 problems with aligning the arguments (I think it's possible to work around though), but there should be no problem with aligning the stack for allocating local variables.</div>