On Mon, 18 Aug 2008, Anthony Liguori wrote: <
>
> This handles the case where v < vb->num_pages and ensures we get a
> small, negative, s64 as the result.
That's just horrible code.
Maybe the compiler notices that you're doing something stupid, but
basically, please don't do this.
> - return v - vb->num_pages;
> + if (v < vb->num_pages)
> + return -(s64)(vb->num_pages - v);
> + else
> + return v - vb->num_pages;
What's wrong with just doing
return (s64)v - vb->num_pages;
instead?
Casting 'v' to s64 guarantees that the subtraction will eb done in 64
bits, and the compiler can just generate the trivial non-conditional code.
Linus
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization