root/arch/sh/kernel/cpu/sh2a/ex.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0
   2  *
   3  * arch/sh/kernel/cpu/sh2a/ex.S
   4  *
   5  * The SH-2A exception vector table
   6  *
   7  * Copyright (C) 2008 Yoshinori Sato
   8  */
   9 
  10 #include <linux/linkage.h>
  11 
  12 !
  13 ! convert Exception Vector to Exception Number
  14 !
  15 
  16 ! exception no 0 to 255
  17 exception_entry0:
  18 no      =       0
  19         .rept   256
  20         mov.l   r1,@-sp
  21         bra     exception_trampoline0
  22         mov     #no,r1
  23 no      =       no + 1
  24         .endr
  25 exception_trampoline0:
  26         mov.l   r0,@-sp
  27         mov.l   1f,r0
  28         extu.b  r1,r1
  29         jmp     @r0
  30           extu.w        r1,r1
  31          
  32         .align  2
  33 1:      .long   exception_handler
  34 
  35 ! exception no 256 to 511
  36 exception_entry1:
  37 no      =       0
  38         .rept   256
  39         mov.l   r1,@-sp
  40         bra     exception_trampoline1
  41         mov     #no,r1
  42 no      =       no + 1
  43         .endr
  44 exception_trampoline1:
  45         mov.l   r0,@-sp
  46         extu.b  r1,r1
  47         movi20  #0x100,r0
  48         add     r0,r1
  49         mov.l   1f,r0
  50         jmp     @r0
  51           extu.w        r1,r1
  52         
  53         .align  2
  54 1:      .long   exception_handler
  55 
  56         !
  57 ! Exception Vector Base
  58 !
  59         .align  2
  60 ENTRY(vbr_base)
  61 vector  =       0
  62         .rept   256
  63         .long   exception_entry0 + vector * 6
  64 vector  =       vector + 1
  65         .endr
  66 vector  =       0
  67         .rept   256
  68         .long   exception_entry1 + vector * 6
  69 vector  =       vector + 1
  70         .endr

/* [<][>][^][v][top][bottom][index][help] */