Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e80f5...
Commit: 6e80f5e8c4c685eb7bc34c3916e3d986b03f9981
Parent: cafd63b0076b78bc8f114abbeb724c7e5f5bfe5d
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
AuthorDate: Thu Jul 10 01:20:03 2008 +0900
Committer: Paul Mundt <lethal@linux-sh.org>
CommitDate: Mon Jul 28 18:10:34 2008 +0900
sh2(A) exception handler update
This patch is
By sh2
- Remove duplicate code
- Reduce stack usage
- Cleanup and little optimize
By sh2a
- Add missing handler(256 to 511)
- Use sh2a instructions handler
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
---
arch/sh/kernel/cpu/sh2/entry.S | 133 ++++++++-------------
arch/sh/kernel/cpu/sh2/ex.S | 15 ++-
arch/sh/kernel/cpu/sh2a/Makefile | 2 +-
arch/sh/kernel/cpu/sh2a/entry.S | 249 ++++++++++++++++++++++++++++++++++++++
arch/sh/kernel/cpu/sh2a/ex.S | 72 +++++++++++
arch/sh/kernel/traps_32.c | 4 +
6 files changed, 385 insertions(+), 90 deletions(-)
diff --git a/arch/sh/kernel/cpu/sh2/entry.S b/arch/sh/kernel/cpu/sh2/entry.S
index 0fc8906..ee894e5 100644
--- a/arch/sh/kernel/cpu/sh2/entry.S
+++ b/arch/sh/kernel/cpu/sh2/entry.S
@@ -3,7 +3,7 @@
*
* The SH-2 exception entry
*
- * Copyright (C) 2005,2006 Yoshinori Sato
+ * Copyright (C) 2005-2008 Yoshinori Sato
* Copyright (C) 2005 AXE,Inc.
*
* This file is subject to the terms and conditions of the GNU General Public
@@ -36,43 +36,41 @@ OFF_TRA = (16*4+6*4)
#include <asm/entry-macros.S>
ENTRY(exception_handler)
- ! already saved r0/r1
+ ! stack
+ ! r0 <- point sp
+ ! r1
+ ! pc
+ ! sr
+ ! r0 = temporary
+ ! r1 = vector (pseudo EXPEVT / INTEVT / TRA)
mov.l r2,@-sp
mov.l r3,@-sp
- mov r0,r1
cli
mov.l $cpu_mode,r2
mov.l @r2,r0
mov.l @(5*4,r15),r3 ! previous ...