Skip to content

Commit

Permalink
MIPS: Alchemy: reduce size of irq dispatcher
Browse files Browse the repository at this point in the history
By replacing an extra do_IRQ with a goto, the assembly shrinks
from 260 to 212 bytes (gcc-4.3.4).

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Manuel Lauss authored and Ralf Baechle committed Feb 27, 2010
1 parent 7881446 commit f1fc664
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions arch/mips/alchemy/common/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,8 +519,8 @@ asmlinkage void plat_irq_dispatch(void)
unsigned long s, off;

if (pending & CAUSEF_IP7) {
do_IRQ(MIPS_CPU_IRQ_BASE + 7);
return;
off = MIPS_CPU_IRQ_BASE + 7;
goto handle;
} else if (pending & CAUSEF_IP2) {
s = IC0_REQ0INT;
off = AU1000_INTC0_INT_BASE;
Expand All @@ -542,7 +542,9 @@ asmlinkage void plat_irq_dispatch(void)
spurious_interrupt();
return;
}
do_IRQ(__ffs(s) + off);
off += __ffs(s);
handle:
do_IRQ(off);
}

/* setup edge/level and assign request 0/1 */
Expand Down

0 comments on commit f1fc664

Please sign in to comment.