root/arch/sh/kernel/cpu/sh2/ex.S
/* SPDX-License-Identifier: GPL-2.0
 *
 * arch/sh/kernel/cpu/sh2/ex.S
 *
 * The SH-2 exception vector table
 *
 * Copyright (C) 2005 Yoshinori Sato
 */

#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