]> git.ipfire.org Git - thirdparty/linux.git/blame - arch/arm/include/asm/entry-macro-multi.S
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[thirdparty/linux.git] / arch / arm / include / asm / entry-macro-multi.S
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
2bc58a6f
MD
2#include <asm/assembler.h>
3
cd544ce7
MD
4/*
5 * Interrupt handling. Preserves r7, r8, r9
6 */
7 .macro arch_irq_handler_default
d9600c99
RK
8 get_irqnr_preamble r6, lr
91: get_irqnr_and_base r0, r2, r6, lr
cd544ce7
MD
10 movne r1, sp
11 @
12 @ routine called with r0 = irq number, r1 = struct pt_regs *
13 @
14327c66 14 badrne lr, 1b
cd544ce7
MD
15 bne asm_do_IRQ
16
17#ifdef CONFIG_SMP
18 /*
19 * XXX
20 *
d9600c99 21 * this macro assumes that irqstat (r2) and base (r6) are
cd544ce7
MD
22 * preserved from get_irqnr_and_base above
23 */
d9600c99 24 ALT_SMP(test_for_ipi r0, r2, r6, lr)
cd544ce7 25 ALT_UP_B(9997f)
4ec3eb13 26 movne r1, sp
14327c66 27 badrne lr, 1b
cd544ce7 28 bne do_IPI
cd544ce7
MD
29#endif
309997:
31 .endm
32
33 .macro arch_irq_handler, symbol_name
34 .align 5
35 .global \symbol_name
36\symbol_name:
d9600c99 37 mov r8, lr
cd544ce7 38 arch_irq_handler_default
6ebbf2ce 39 ret r8
cd544ce7 40 .endm