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: Manuel Lauss <manuel.lauss@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
788144656b
commit
f1fc6645a4
@@ -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 @@ spurious:
|
|||||||
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 */
|
||||||
|
Reference in New Issue
Block a user