mirror of https://gitee.com/openkylin/qemu.git
40 lines
602 B
ArmAsm
40 lines
602 B
ArmAsm
|
.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
|