entry-common.S (012e060c95e547eceea4a12c6f58592473bf4011) | entry-common.S (60ac133aac9e07b94f2cb6bf571bf8aef69248c3) |
---|---|
1/* 2 * linux/arch/arm/kernel/entry-common.S 3 * 4 * Copyright (C) 2000 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 92 unchanged lines hidden (view full) --- 101#ifdef CONFIG_CPU_ARM710 102 .macro arm710_bug_check, instr, temp 103 and \temp, \instr, #0x0f000000 @ check for SWI 104 teq \temp, #0x0f000000 105 bne .Larm700bug 106 .endm 107 108.Larm700bug: | 1/* 2 * linux/arch/arm/kernel/entry-common.S 3 * 4 * Copyright (C) 2000 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 92 unchanged lines hidden (view full) --- 101#ifdef CONFIG_CPU_ARM710 102 .macro arm710_bug_check, instr, temp 103 and \temp, \instr, #0x0f000000 @ check for SWI 104 teq \temp, #0x0f000000 105 bne .Larm700bug 106 .endm 107 108.Larm700bug: |
109 ldr r0, [sp, #S_PSR] @ Get calling cpsr 110 sub lr, lr, #4 111 str lr, [r8] 112 msr spsr_cxsf, r0 | |
113 ldmia sp, {r0 - lr}^ @ Get calling r0 - lr 114 mov r0, r0 | 109 ldmia sp, {r0 - lr}^ @ Get calling r0 - lr 110 mov r0, r0 |
115 ldr lr, [sp, #S_PC] @ Get PC | |
116 add sp, sp, #S_FRAME_SIZE | 111 add sp, sp, #S_FRAME_SIZE |
117 movs pc, lr | 112 subs pc, lr, #4 |
118#else 119 .macro arm710_bug_check, instr, temp 120 .endm 121#endif 122 123 .align 5 124ENTRY(vector_swi) 125 sub sp, sp, #S_FRAME_SIZE --- 170 unchanged lines hidden --- | 113#else 114 .macro arm710_bug_check, instr, temp 115 .endm 116#endif 117 118 .align 5 119ENTRY(vector_swi) 120 sub sp, sp, #S_FRAME_SIZE --- 170 unchanged lines hidden --- |