On Thu, Jul 14, 2022 at 10:02:57AM -0700, Linus Torvalds wrote:
I like Peter's more obvious use of FASTYOP_LENGTH, but this is just disgusting:
#define FASTOP_SIZE (8 << ((FASTOP_LENGTH > 8) & 1) <<
((FASTOP_LENGTH > 16) & 1))
I mean, I understand what it's doing, but just two lines above it the code has a "ilog2()" use that already depends on the fact that you can use ilog2() as a constant compile-time expression.
And guess what? The code could just use roundup_pow_of_two(), which is designed exactly like ilog2() to be used for compile-time constant values.
But NR_FASTOP isn't used in ASM.
So the code should just use
#define FASTOP_SIZE roundup_pow_of_two(FASTOP_LENGTH)
and be a lot more legible, wouldn't it?
If only :/ FASTOP_SIZE is used in ASM, which means we've got to play by GNU-as rules, and them are aweful.