Merge tag 'v3.10.107' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / include / asm / entry-macro-multi.S
1 #include <asm/assembler.h>
2
3 /*
4 * Interrupt handling. Preserves r7, r8, r9
5 */
6 .macro arch_irq_handler_default
7 get_irqnr_preamble r6, lr
8 1: get_irqnr_and_base r0, r2, r6, lr
9 movne r1, sp
10 @
11 @ routine called with r0 = irq number, r1 = struct pt_regs *
12 @
13 adrne lr, BSYM(1b)
14 bne asm_do_IRQ
15
16 #ifdef CONFIG_SMP
17 /*
18 * XXX
19 *
20 * this macro assumes that irqstat (r2) and base (r6) are
21 * preserved from get_irqnr_and_base above
22 */
23 ALT_SMP(test_for_ipi r0, r2, r6, lr)
24 ALT_UP_B(9997f)
25 movne r1, sp
26 adrne lr, BSYM(1b)
27 bne do_IPI
28 #endif
29 9997:
30 .endm
31
32 .macro arch_irq_handler, symbol_name
33 .align 5
34 .global \symbol_name
35 \symbol_name:
36 mov r8, lr
37 arch_irq_handler_default
38 mov pc, r8
39 .endm