xref: /openbmc/linux/arch/sh/kernel/cpu/sh2/ex.S (revision 597473720f4dc69749542bfcfed4a927a43d935e)
1*47d11326SKuninori Morimoto/* SPDX-License-Identifier: GPL-2.0
2*47d11326SKuninori Morimoto *
3de398406SYoshinori Sato * arch/sh/kernel/cpu/sh2/ex.S
4de398406SYoshinori Sato *
5de398406SYoshinori Sato * The SH-2 exception vector table
6de398406SYoshinori Sato *
7de398406SYoshinori Sato * Copyright (C) 2005 Yoshinori Sato
8de398406SYoshinori Sato */
9de398406SYoshinori Sato
10de398406SYoshinori Sato#include <linux/linkage.h>
11de398406SYoshinori Sato
12de398406SYoshinori Sato!
13de398406SYoshinori Sato! convert Exception Vector to Exception Number
14de398406SYoshinori Sato!
15de398406SYoshinori Satoexception_entry:
16de398406SYoshinori Satono	=	0
17de398406SYoshinori Sato	.rept	256
186e80f5e8SYoshinori Sato	mov.l	r1,@-sp
19de398406SYoshinori Sato	bra	exception_trampoline
206e80f5e8SYoshinori Sato	mov	#no,r1
21de398406SYoshinori Satono	=	no + 1
22de398406SYoshinori Sato	.endr
23de398406SYoshinori Satoexception_trampoline:
246e80f5e8SYoshinori Sato	mov.l	r0,@-sp
256e80f5e8SYoshinori Sato	mov.l	$exception_handler,r0
266e80f5e8SYoshinori Sato	extu.b	r1,r1
276e80f5e8SYoshinori Sato	jmp	@r0
286e80f5e8SYoshinori Sato	  extu.w	r1,r1
29de398406SYoshinori Sato
30de398406SYoshinori Sato	.align	2
31de398406SYoshinori Sato$exception_entry:
32de398406SYoshinori Sato	.long	exception_entry
33de398406SYoshinori Sato$exception_handler:
34de398406SYoshinori Sato	.long	exception_handler
35de398406SYoshinori Sato!
36de398406SYoshinori Sato! Exception Vector Base
37de398406SYoshinori Sato!
38de398406SYoshinori Sato	.align	2
39de398406SYoshinori SatoENTRY(vbr_base)
40de398406SYoshinori Satovector	=	0
41de398406SYoshinori Sato	.rept	256
426e80f5e8SYoshinori Sato	.long	exception_entry + vector * 6
43de398406SYoshinori Satovector	=	vector + 1
44de398406SYoshinori Sato	.endr
45