forked from Minki/linux
6e80f5e8c4
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>
48 lines
821 B
ArmAsm
48 lines
821 B
ArmAsm
/*
|
|
* arch/sh/kernel/cpu/sh2/ex.S
|
|
*
|
|
* The SH-2 exception vector table
|
|
*
|
|
* Copyright (C) 2005 Yoshinori Sato
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*/
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
!
|
|
! convert Exception Vector to Exception Number
|
|
!
|
|
exception_entry:
|
|
no = 0
|
|
.rept 256
|
|
mov.l r1,@-sp
|
|
bra exception_trampoline
|
|
mov #no,r1
|
|
no = no + 1
|
|
.endr
|
|
exception_trampoline:
|
|
mov.l r0,@-sp
|
|
mov.l $exception_handler,r0
|
|
extu.b r1,r1
|
|
jmp @r0
|
|
extu.w r1,r1
|
|
|
|
.align 2
|
|
$exception_entry:
|
|
.long exception_entry
|
|
$exception_handler:
|
|
.long exception_handler
|
|
!
|
|
! Exception Vector Base
|
|
!
|
|
.align 2
|
|
ENTRY(vbr_base)
|
|
vector = 0
|
|
.rept 256
|
|
.long exception_entry + vector * 6
|
|
vector = vector + 1
|
|
.endr
|