Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[deliverable/linux.git] / arch / arm / include / asm / entry-macro-multi.S
CommitLineData
2bc58a6f
MD
1#include <asm/assembler.h>
2
cd544ce7
MD
3/*
4 * Interrupt handling. Preserves r7, r8, r9
5 */
6 .macro arch_irq_handler_default
d9600c99
RK
7 get_irqnr_preamble r6, lr
81: get_irqnr_and_base r0, r2, r6, lr
cd544ce7
MD
9 movne r1, sp
10 @
11 @ routine called with r0 = irq number, r1 = struct pt_regs *
12 @
14327c66 13 badrne lr, 1b
cd544ce7
MD
14 bne asm_do_IRQ
15
16#ifdef CONFIG_SMP
17 /*
18 * XXX
19 *
d9600c99 20 * this macro assumes that irqstat (r2) and base (r6) are
cd544ce7
MD
21 * preserved from get_irqnr_and_base above
22 */
d9600c99 23 ALT_SMP(test_for_ipi r0, r2, r6, lr)
cd544ce7 24 ALT_UP_B(9997f)
4ec3eb13 25 movne r1, sp
14327c66 26 badrne lr, 1b
cd544ce7 27 bne do_IPI
cd544ce7
MD
28#endif
299997:
30 .endm
31
32 .macro arch_irq_handler, symbol_name
33 .align 5
34 .global \symbol_name
35\symbol_name:
d9600c99 36 mov r8, lr
cd544ce7 37 arch_irq_handler_default
6ebbf2ce 38 ret r8
cd544ce7 39 .endm
This page took 0.273121 seconds and 5 git commands to generate.