| 
									
										
										
										
											2006-11-05 16:15:19 +09:00
										 |  |  | /* | 
					
						
							|  |  |  |  * 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
 | 
					
						
							| 
									
										
										
										
											2008-07-10 01:20:03 +09:00
										 |  |  | 	mov.l	r1,@-sp
 | 
					
						
							| 
									
										
										
										
											2006-11-05 16:15:19 +09:00
										 |  |  | 	bra	exception_trampoline | 
					
						
							| 
									
										
										
										
											2008-07-10 01:20:03 +09:00
										 |  |  | 	mov	#no,r1 | 
					
						
							| 
									
										
										
										
											2006-11-05 16:15:19 +09:00
										 |  |  | no	=	no + 1 | 
					
						
							|  |  |  | 	.endr | 
					
						
							|  |  |  | exception_trampoline: | 
					
						
							| 
									
										
										
										
											2008-07-10 01:20:03 +09:00
										 |  |  | 	mov.l	r0,@-sp
 | 
					
						
							|  |  |  | 	mov.l	$exception_handler,r0 | 
					
						
							|  |  |  | 	extu.b	r1,r1 | 
					
						
							|  |  |  | 	jmp	@r0
 | 
					
						
							|  |  |  | 	  extu.w	r1,r1 | 
					
						
							| 
									
										
										
										
											2006-11-05 16:15:19 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	.align	2
 | 
					
						
							|  |  |  | $exception_entry: | 
					
						
							|  |  |  | 	.long	exception_entry
 | 
					
						
							|  |  |  | $exception_handler: | 
					
						
							|  |  |  | 	.long	exception_handler
 | 
					
						
							|  |  |  | ! | 
					
						
							|  |  |  | ! Exception Vector Base | 
					
						
							|  |  |  | ! | 
					
						
							|  |  |  | 	.align	2
 | 
					
						
							|  |  |  | ENTRY(vbr_base) | 
					
						
							|  |  |  | vector	=	0 | 
					
						
							|  |  |  | 	.rept	256
 | 
					
						
							| 
									
										
										
										
											2008-07-10 01:20:03 +09:00
										 |  |  | 	.long	exception_entry + vector * 6 | 
					
						
							| 
									
										
										
										
											2006-11-05 16:15:19 +09:00
										 |  |  | vector	=	vector + 1 | 
					
						
							|  |  |  | 	.endr |