Loading...
Note: File does not exist in v6.13.7.
1/* SPDX-License-Identifier: GPL-2.0 */
2#include <asm/assembler.h>
3
4/*
5 * Interrupt handling. Preserves r7, r8, r9
6 */
7 .macro arch_irq_handler_default
8 get_irqnr_preamble r6, lr
91: get_irqnr_and_base r0, r2, r6, lr
10 movne r1, sp
11 @
12 @ routine called with r0 = irq number, r1 = struct pt_regs *
13 @
14 badrne lr, 1b
15 bne asm_do_IRQ
16
17#ifdef CONFIG_SMP
18 /*
19 * XXX
20 *
21 * this macro assumes that irqstat (r2) and base (r6) are
22 * preserved from get_irqnr_and_base above
23 */
24 ALT_SMP(test_for_ipi r0, r2, r6, lr)
25 ALT_UP_B(9997f)
26 movne r1, sp
27 badrne lr, 1b
28 bne do_IPI
29#endif
309997:
31 .endm
32
33 .macro arch_irq_handler, symbol_name
34 .align 5
35 .global \symbol_name
36\symbol_name:
37 mov r8, lr
38 arch_irq_handler_default
39 ret r8
40 .endm