Re: [linux-audio-dev] [i686] xmm regs + gcc inline assembly

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] [i686] xmm regs + gcc inline assembly
From: Tim Goetze (tim_AT_quitte.de)
Date: Fri Feb 13 2004 - 22:54:29 EET


[Simon Jenkins]

>>so saying "=m" (d) causes xmm0 to be written to &d, not d, as
>>intended. if &d isn't 128-bit aligned, it will segfault now.
>>even if it is, that's not where we wanted the numbers from xmm0
>>to go ...
>>
>The discrepency here is because you originally said you were trying to
>get the data into a named array of floats:
>
> float t[4];
>
>but it turns out you're actually trying to get them into some memory
>to which you have a named pointer:
>
> float *d;
>
>Now, there are a great many circumstances in which you could treat
>such names interchangeably, but this isn't one of them.

indeed it isn't, you're right. in fact, if i'm not mistaken it's the
first time ever i see this distinction make a difference.

i'm not at all convinced that gcc is doing the right thing here;
acting on the difference seems nonsensical to me.

>The following code demonstrates
[...]

point taken. thanks!

when i look into the code in question the next time (it works well now
so not much incentive), i'll probably do a complete assembler rewrite.
no more messing with my pointers, mr. gcc, thanks.

tim


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Feb 13 2004 - 23:00:54 EET