Commit f1fc6645 authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle

MIPS: Alchemy: reduce size of irq dispatcher

By replacing an extra do_IRQ with a goto, the assembly shrinks
from 260 to 212 bytes (gcc-4.3.4).
Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 78814465
...@@ -519,8 +519,8 @@ asmlinkage void plat_irq_dispatch(void) ...@@ -519,8 +519,8 @@ asmlinkage void plat_irq_dispatch(void)
unsigned long s, off; unsigned long s, off;
if (pending & CAUSEF_IP7) { if (pending & CAUSEF_IP7) {
do_IRQ(MIPS_CPU_IRQ_BASE + 7); off = MIPS_CPU_IRQ_BASE + 7;
return; goto handle;
} else if (pending & CAUSEF_IP2) { } else if (pending & CAUSEF_IP2) {
s = IC0_REQ0INT; s = IC0_REQ0INT;
off = AU1000_INTC0_INT_BASE; off = AU1000_INTC0_INT_BASE;
...@@ -542,7 +542,9 @@ asmlinkage void plat_irq_dispatch(void) ...@@ -542,7 +542,9 @@ asmlinkage void plat_irq_dispatch(void)
spurious_interrupt(); spurious_interrupt();
return; return;
} }
do_IRQ(__ffs(s) + off); off += __ffs(s);
handle:
do_IRQ(off);
} }
/* setup edge/level and assign request 0/1 */ /* setup edge/level and assign request 0/1 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment