This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: inline asm problem


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]