Aligning data in memory

Rory McGuire rjmcguire at gmail.com
Wed Sep 21 03:22:23 PDT 2011


Would that even be true in the case where you specify a alignment ( keeping
in mind that the alignment is for that specific variable)?



On Tue, Sep 20, 2011 at 7:25 PM, Peter Alexander <
peter.alexander.au at gmail.com> wrote:

> 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<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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110921/51436225/attachment.html>


More information about the Digitalmars-d mailing list