aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/entry_32.S
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-04-30 05:17:22 -0400
committerKumar Gala <galak@kernel.crashing.org>2008-06-02 15:56:06 -0400
commit369e757b65d4a5e49bae7cfaf671e784f891cfbe (patch)
treeaa144c5db61f00384a552c33ace99c454fe5ea23 /arch/powerpc/kernel/entry_32.S
parentbcf0b0880710409420a4e3b15dbf4b9a63542c0b (diff)
[POWERPC] Rework EXC_LEVEL_EXCEPTION_PROLOG code
* Cleanup the code a bit my allocating an INT_FRAME on our exception stack there by make references go from GPR11-INT_FRAME_SIZE(r8) to just GPR11(r8) * simplify {lvl}_transfer_to_handler code by moving the copying of the temp registers we use if we come from user space into the PROLOG * If the exception came from kernel mode copy thread_info flags, preempt, and task pointer from the process thread_info. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/entry_32.S')
-rw-r--r--arch/powerpc/kernel/entry_32.S13
1 files changed, 0 insertions, 13 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 888a364043a8..c94aba54b5dd 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -44,29 +44,16 @@
44#endif 44#endif
45 45
46#ifdef CONFIG_BOOKE 46#ifdef CONFIG_BOOKE
47#include "head_booke.h"
48#define TRANSFER_TO_HANDLER_EXC_LEVEL(exc_level) \
49 mtspr exc_level##_SPRG,r8; \
50 BOOKE_LOAD_EXC_LEVEL_STACK(exc_level); \
51 lwz r0,GPR10-INT_FRAME_SIZE(r8); \
52 stw r0,GPR10(r11); \
53 lwz r0,GPR11-INT_FRAME_SIZE(r8); \
54 stw r0,GPR11(r11); \
55 mfspr r8,exc_level##_SPRG
56
57 .globl mcheck_transfer_to_handler 47 .globl mcheck_transfer_to_handler
58mcheck_transfer_to_handler: 48mcheck_transfer_to_handler:
59 TRANSFER_TO_HANDLER_EXC_LEVEL(MCHECK)
60 b transfer_to_handler_full 49 b transfer_to_handler_full
61 50
62 .globl debug_transfer_to_handler 51 .globl debug_transfer_to_handler
63debug_transfer_to_handler: 52debug_transfer_to_handler:
64 TRANSFER_TO_HANDLER_EXC_LEVEL(DEBUG)
65 b transfer_to_handler_full 53 b transfer_to_handler_full
66 54
67 .globl crit_transfer_to_handler 55 .globl crit_transfer_to_handler
68crit_transfer_to_handler: 56crit_transfer_to_handler:
69 TRANSFER_TO_HANDLER_EXC_LEVEL(CRIT)
70 /* fall through */ 57 /* fall through */
71#endif 58#endif
72 59