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

Re: Compiling XFree86 4.2.x--sig11



Kelledin <kelledin+DAXP@skarpsey.dyndns.org> writes:

> On Wednesday 20 November 2002 03:00 pm, Falk Hueffner wrote:
> > Kelledin <kelledin+DAXP@skarpsey.dyndns.org> writes:
> >
> > There's an obvious bug in Thorsten's patch:
> > > +           symval = ((long)symval > 16) + ((symval > 15) &
> > > 1);
> >
> > This ought to be both shifts. No idea whether that's causing
> > your problems, though.
> 
> Ah...it should be a right-shift operator (">>")?  I kinda 
> wondered why he was taking the result of a comparison statement 
> and doing arithmetic with it...

Yes. The low relocation is done with lda, which treats its 16-bit
argument as signed. So if bit 15 is set, you get an off-by-minus-one
error, which needs to be compensated with the ldah.

-- 
	Falk



Reply to: