[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: hpux asm vs GNU as



On Sun, Oct 10, 2004 at 05:41:01PM -0700, Randolph Chung wrote:
> > >         addil   lt'overflow,%r19,%r1
> > >         add     %arg0,%arg1,%ret0
> > >         ldw     rt'overflow(%r1),%r20
> > >         addc    0,0,%r22
> > >         stw     %r22,0(%r20)
> > > 
> > > Look like it expext only 2 arguments and get three...
> um, no, this is not right.
> 
> addil is hardwired to put the result in r1. gas as doesn't let you put
> the %r1 there.
> 
> just remove the ,%r1 from the first line. it does the same thing as what
> you have.
> 
> GNU as has several idiosyncracies. it works with what gcc generates, the
> rest is sometimes iffy :)

Thanks a lot for the explanation.

I decided to rewrite that code with gcc __asm__ inline to avoid the
function call overhead (and trouble). I have completed 4 functions
already.

Now I have a question, how can I move values from integer registers 
to floating point registers ? Is it really required to commit the
value to memory for this task?

Cheers,
-- 
Bill. <ballombe@debian.org>

Imagine a large red swirl here. 



Reply to: