diff options
author | Jonas Gorski <jogo@openwrt.org> | 2014-07-12 14:49:35 +0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-07-30 17:27:47 +0400 |
commit | 86ee4333ba991654f21b7a9e7a7bff0b319f0800 (patch) | |
tree | 878141286a33f5809675f5274e5fcd479a3e15bd /arch/mips/include/asm/mach-bcm63xx | |
parent | a6dfde817cb45934e87d4493df0df3c12a6604e1 (diff) | |
download | linux-86ee4333ba991654f21b7a9e7a7bff0b319f0800.tar.xz |
MIPS: BCM63xx: Replace irq dispatch code with a generic version
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>
Diffstat (limited to 'arch/mips/include/asm/mach-bcm63xx')
0 files changed, 0 insertions, 0 deletions