This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: 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


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