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. <[EMAIL PROTECTED]> Imagine a large red swirl here.

