Path: blob/master/arch/arm/include/asm/entry-macro-multi.S
17311 views
#include <asm/assembler.h>12/*3* Interrupt handling. Preserves r7, r8, r94*/5.macro arch_irq_handler_default6get_irqnr_preamble r5, lr71: get_irqnr_and_base r0, r6, r5, lr8movne r1, sp9@10@ routine called with r0 = irq number, r1 = struct pt_regs *11@12adrne lr, BSYM(1b)13bne asm_do_IRQ1415#ifdef CONFIG_SMP16/*17* XXX18*19* this macro assumes that irqstat (r6) and base (r5) are20* preserved from get_irqnr_and_base above21*/22ALT_SMP(test_for_ipi r0, r6, r5, lr)23ALT_UP_B(9997f)24movne r1, sp25adrne lr, BSYM(1b)26bne do_IPI2728#ifdef CONFIG_LOCAL_TIMERS29test_for_ltirq r0, r6, r5, lr30movne r0, sp31adrne lr, BSYM(1b)32bne do_local_timer33#endif34#endif359997:36.endm3738.macro arch_irq_handler, symbol_name39.align 540.global \symbol_name41\symbol_name:42mov r4, lr43arch_irq_handler_default44mov pc, r445.endm464748