#include "core-isa.h" .macro vector name .section .vector.\name, "ax" .global vector_\name vector_\name\(): j 1f .literal_position 1: wsr a0, excsave1 movi a0, 1f ret.n .section .vector.\name\().text, "ax" .literal_position 1: rsr a0, excsave1 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 #if XCHAL_HAVE_WINDOWED vector window_overflow_4 vector window_overflow_8 vector window_overflow_12 vector window_underflow_4 vector window_underflow_8 vector window_underflow_12 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 2 vector level2 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 3 vector level3 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 4 vector level4 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 5 vector level5 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 6 vector level6 #endif #if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 7 vector level7 #endif vector kernel vector user vector double