entry-armv.S (b22364c8eec89e6b0c081a237f3b6348df87796f) | entry-armv.S (f80dff9da07d81da16e3b842118d47b9febf9c01) |
---|---|
1/* 2 * linux/arch/arm/kernel/entry-armv.S 3 * 4 * Copyright (C) 1996,1997,1998 Russell King. 5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk) 6 * nommu support by Hyok S. Choi (hyok.choi@samsung.com) 7 * 8 * This program is free software; you can redistribute it and/or modify --- 13 unchanged lines hidden (view full) --- 22#include <asm/thread_notify.h> 23 24#include "entry-header.S" 25 26/* 27 * Interrupt handling. Preserves r7, r8, r9 28 */ 29 .macro irq_handler | 1/* 2 * linux/arch/arm/kernel/entry-armv.S 3 * 4 * Copyright (C) 1996,1997,1998 Russell King. 5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk) 6 * nommu support by Hyok S. Choi (hyok.choi@samsung.com) 7 * 8 * This program is free software; you can redistribute it and/or modify --- 13 unchanged lines hidden (view full) --- 22#include <asm/thread_notify.h> 23 24#include "entry-header.S" 25 26/* 27 * Interrupt handling. Preserves r7, r8, r9 28 */ 29 .macro irq_handler |
30 get_irqnr_preamble r5, lr |
|
301: get_irqnr_and_base r0, r6, r5, lr 31 movne r1, sp 32 @ 33 @ routine called with r0 = irq number, r1 = struct pt_regs * 34 @ 35 adrne lr, 1b 36 bne asm_do_IRQ 37 --- 56 unchanged lines hidden (view full) --- 94 ldmia r0, {r4 - r6} 95 add r0, sp, #S_PC @ here for interlock avoidance 96 mov r7, #-1 @ "" "" "" "" 97 str r4, [sp] @ save preserved r0 98 stmia r0, {r5 - r7} @ lr_<exception>, 99 @ cpsr_<exception>, "old_r0" 100 101 mov r0, sp | 311: get_irqnr_and_base r0, r6, r5, lr 32 movne r1, sp 33 @ 34 @ routine called with r0 = irq number, r1 = struct pt_regs * 35 @ 36 adrne lr, 1b 37 bne asm_do_IRQ 38 --- 56 unchanged lines hidden (view full) --- 95 ldmia r0, {r4 - r6} 96 add r0, sp, #S_PC @ here for interlock avoidance 97 mov r7, #-1 @ "" "" "" "" 98 str r4, [sp] @ save preserved r0 99 stmia r0, {r5 - r7} @ lr_<exception>, 100 @ cpsr_<exception>, "old_r0" 101 102 mov r0, sp |
102 and r2, r6, #0x1f | |
103 b bad_mode 104 105/* 106 * SVC mode handlers 107 */ 108 109#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5) 110#define SPFIX(code...) code --- 972 unchanged lines hidden --- | 103 b bad_mode 104 105/* 106 * SVC mode handlers 107 */ 108 109#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5) 110#define SPFIX(code...) code --- 972 unchanged lines hidden --- |