inline asm problem
TWISTI
twisti@fusion.at
Mon Mar 18 09:38:00 GMT 2002
On Mon, 2002-03-18 at 13:31, Hans-Peter Nilsson wrote:
> On 18 Mar 2002, Ian Lance Taylor wrote:
>
> > why not just do this:
> > __asm__ __volatile__ ("pmaddwd %0, %%mm1" : : "m" (filt_cos + 8));
>
> But don't forget to cast to char * so you're not surprised by
> address arithmetic on the short-sized items (often two bytes):
> __asm__ __volatile__ ("pmaddwd %0, %%mm1" : : "m" ((char *) filt_cos + 8));
> or just say filt_cos + 4.
>
> brgds, H-P
Thanks, that did help very much. I've another related problem:
Let's say i would like to address it like this: filt_cos + %eax * 8
Can i do this without
"movl %0, %%ebx" : : "m" (filt_cos)
"movl (%ebx, %eax, 8), %mm1"
Obviously
"movl (%0, %eax, 8), %%mm1" : : "m" (filt_cos)
does not work. Maybe another oneliner?
TWISTI
More information about the Binutils
mailing list