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: