inline asm problem
Ian Lance Taylor
ian@airs.com
Mon Mar 18 01:30:00 GMT 2002
More information about the Binutils mailing list
Mon Mar 18 01:30:00 GMT 2002
- Previous message (by thread): inline asm problem
- Next message (by thread): inline asm problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
TWISTI <twisti@fusion.at> writes: > I've already posted this in `gcc@gcc.gnu.org'. But maybe this is the > _more_ correct list. Here it goes: > > Can anyone tell me how the at&t syntax is for this small intel asm? > > short filt_cos[] = { 141, ... }; > > pmaddwd mm1, [filt_cos + 8] > > I've tried it this way: > > __asm__ __volatile__ ("pmaddwd 8(%0), %%mm1" : : "m" (filt_cos)); > > but: > /tmp/cctukwBb.s: Assembler messages: > /tmp/cctukwBb.s:1753: Error: junk `(.LC13)' after expression > > Then i tried this: > > __asm__ __volatile__ ("pmaddwd 8 + %0(,1), %%mm1" : : "m" (filt_cos)); > > works, but give wrong result. > > Is there an _one_liner_ solution? It looks to me like you are trying to add 8 within the inline assembler. But you've told gcc to use an arbitrary memory address. There is no reason to expect that gcc will expect you something to which you can add 8. You could try using a constraint of "o". But why not just do this: __asm__ __volatile__ ("pmaddwd %0, %%mm1" : : "m" (filt_cos + 8)); Ian
- Previous message (by thread): inline asm problem
- Next message (by thread): inline asm problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list