86ee4333ba
The generic version uses a variable length of u32 registers instead of u32/u64. This allows easier support for "wider" registers without having to rewrite everything. This "generic" version is as fast as the old version in the best case (i == next set bit), and twice as fast in the worst case in 64 bits. Using a macro was chosen over a (forced) inline version because gcc generated more compact code with the macro. The change from (signed) int to unsigned int for i and to_call was intentional as the value can be only between 0 and (width - 1) anyway, and allowed gcc to optimise the code a bit further. Signed-off-by: Jonas Gorski <jogo@openwrt.org> Cc: linux-mips@linux-mips.org Cc: John Crispin <blogic@openwrt.org> Cc: Maxime Bizon <mbizon@freebox.fr> Cc: Florian Fainelli <florian@openwrt.org> Cc: Kevin Cernekee <cernekee@gmail.com> Cc: Gregory Fong <gregory.0xf0@gmail.com> Patchwork: https://patchwork.linux-mips.org/patch/7316/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
||
---|---|---|
.. | ||
boards | ||
clk.c | ||
cpu.c | ||
cs.c | ||
dev-dsp.c | ||
dev-enet.c | ||
dev-flash.c | ||
dev-hsspi.c | ||
dev-pcmcia.c | ||
dev-rng.c | ||
dev-spi.c | ||
dev-uart.c | ||
dev-usb-usbd.c | ||
dev-wdt.c | ||
early_printk.c | ||
gpio.c | ||
irq.c | ||
Kconfig | ||
Makefile | ||
nvram.c | ||
Platform | ||
prom.c | ||
reset.c | ||
setup.c | ||
timer.c |