----- Original Message ----- From: "Daniel Jacobowitz" <dan@debian.org> To: "Bradley D. LaRonde" <brad@laronde.org> Cc: <linux-mips@linux-mips.org>; "Eric Christopher" <echristo@redhat.com> Sent: Monday, April 12, 2004 9:07 PM Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" intime.c > On Mon, Apr 12, 2004 at 09:05:34PM -0400, Bradley D. LaRonde wrote: > > ----- Original Message ----- > > From: "Eric Christopher" <echristo@redhat.com> > > To: "Bradley D. LaRonde" <brad@laronde.org> > > Cc: <linux-mips@linux-mips.org> > > Sent: Monday, April 12, 2004 9:02 PM > > Subject: Re: [PATCH] gcc 3.4 drops "accum" clobber, replace with "hi" > > intime.c > > > > > > > On Mon, 2004-04-12 at 17:53, Bradley D. LaRonde wrote: > > > > Uh oh, with this patch: > > > > > > > > ... > > > > time.c: In function `fixed_rate_gettimeoffset': > > > > time.c:242: error: can't find a register in class `HI_REG' while > > reloading > > > > `asm' > > > > ... > > > > > > > > > > > > > /* > > > > > * Due to possible jiffies inconsistencies, we need to check > > > > > @@ -339,7 +339,7 @@ > > > > > : "r" (timerhi), "m" (timerlo), > > > > > "r" (tmp), "r" (USECS_PER_JIFFY), > > > > > "r" (USECS_PER_JIFFY_FRAC) > > > > > - : "hi", "lo", "accum"); > > > > > + : "hi", "lo", "hi"); > > > > > cached_quotient = quotient; > > > > > > > > > Maybe this hunk where you use "hi" twice for the same asm statement? > > > > Yeah, that's messed up, but it fails here too: > > > > @@ -242,7 +242,7 @@ > > __asm__("multu %1,%2" > > : "=h" (res) > > : "r" (count), "r" (sll32_usecs_per_cycle) > > - : "lo", "accum"); > > + : "lo", "hi"); > > Because the asm is outputting something in HI - see the =h? Oh... yeah, I guess gcc knows that the output is clobbered. :-P So just remove the accum clobbers? Regards, Brad