|  | .macro vector name | 
|  |  | 
|  | .section .vector.\name | 
|  | j       1f | 
|  | .section .vector.\name\().text | 
|  | 1: | 
|  | wsr     a2, excsave1 | 
|  | movi    a2, handler_\name | 
|  | l32i    a2, a2, 0 | 
|  | beqz    a2, 1f | 
|  | jx      a2 | 
|  | 1: | 
|  | movi    a3, 1b | 
|  | movi    a2, 1 | 
|  | simcall | 
|  |  | 
|  | .align 4 | 
|  | .global handler_\name | 
|  | handler_\name\(): .word 0 | 
|  |  | 
|  | .endm | 
|  |  | 
|  | vector window_overflow_4 | 
|  | vector window_overflow_8 | 
|  | vector window_overflow_12 | 
|  | vector window_underflow_4 | 
|  | vector window_underflow_8 | 
|  | vector window_underflow_12 | 
|  |  | 
|  | vector level2 | 
|  | vector level3 | 
|  | vector level4 | 
|  | vector level5 | 
|  | vector level6 | 
|  | vector level7 | 
|  |  | 
|  | vector kernel | 
|  | vector user | 
|  | vector double |