This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Help with gmp-4.0.1 and gcc-3.3.1 on sparcv9?
On Thu, Oct 02, 2003 at 12:04:32PM -0500, Bradley Lucier wrote:
>
> On Wednesday, October 1, 2003, at 07:28 PM, Bradley Lucier wrote:
>
> >
> > On Wednesday, October 1, 2003, at 03:23 PM, Jakub Jelinek wrote:
> >
> >> Looks to be gmp bug:
> >> __asm__ ("subcc %4,%5,%1\n"
> >> " subccc %6,%7,%%g0\n"
> >> " subc %2,%3,%0"
> >> : "=r" (_xh), "=&r" (_r)
> >> : "%rJ" ((r)), "rI" (_xh), "%rJ" ((n0)), "rI" (_xl), "rJ" (((n0))
> >> >> 32), "rJ" ((_xl) >> 32)
> >> : "cc");
> >> Obviously, the %2 is not commutative with %3 and neither is %4 with
> >> %5.
> >> Just s/"%r/"r/g should fix it.
> >
> > I don't understand syntax for assembler statements; but replacing %r
> > by r in the second last line didn't fix it. (This is from the macro
> > for sub_ddmmss in longlong.h.)
>
> Never mind, there are bootstrap comparison failures with just the C
> compiler. I'll wait for a while before trying to test the branch again
> on sparcv9.
There are actually more bugs in that __asm too.
"rJ" should be used for the args which end up in rs1 (%2, %4, %6),
while "rI" should be used for the rest of input args (%3, %5, %7).
Also, in the asm pattern, where argument has J in it it should be %rN
instead of %N, ie. subcc %r4,%5,%1 etc.
Jakub