Aligning data in memory

Peter Alexander peter.alexander.au at gmail.com
Tue Sep 20 10:25:44 PDT 2011


On 19/09/11 9:17 AM, Rory McGuire wrote:
> surely you would have to use
>   movaps XMM0, v.v;
>
>   because the alignment would only happen inside the struct?
>
>
> On Sat, Sep 17, 2011 at 8:11 PM, Adam D. Ruppe
> <destructionator at gmail.com <mailto:destructionator at gmail.com>> wrote:
>
>     Perhaps:
>
>     void foo() {
>             struct V { align(16) float[4] v = [1.0f, 2.0f, 3.0f, 4.0f]; }
>             V v;
>             asm {
>                     movaps XMM0, v;
>             }
>     }
>
>
>     It compiles, but I'm not sure if it's actually correct.
>
>

v has offset 0 in the struct, so &v.v == &v, which is all the inline asm 
cares about.



More information about the Digitalmars-d mailing list