On Fri, May 16, 2008 at 11:12:54PM +0100, Nicholas Clark wrote:
> On Fri, May 16, 2008 at 03:20:34PM -0500, Patrick R. Michaud wrote:
> > On Fri, May 16, 2008 at 09:12:19PM +0100, Alberto Simões wrote:
> > > if (!base && !(i && scale) && (!emit_is8bit(disp) || 1)) {
> > >
> > > This is exactly
> > >
> > > if (!base && !(i && scale)) {
> >
> > It's not *exactly* that. The first version executes
> > emit_is8bit(disp), while the second one doesn't.
> >
> > You're correct that the return value of emit_is8bit(disp)
> > doesn't appear to matter to the C<if> statement itself.
>
> So shouldn't it be re-written as
>
> if (!base && !(i && scale)) {
> emit_is8bit(disp);
Yes.
In this case it turns out that emit_is8bit(disp) has
no side effects, so removing it entirely also works.
But it was indeed a weird line, and has been around
for a long time (circa r3800 or so).
Thanks!
Pm