cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

vectors.S (1151B)


      1#include "core-isa.h"
      2
      3.macro vector name
      4
      5.section .vector.\name, "ax"
      6.global vector_\name
      7vector_\name\():
      8    j       1f
      9    .literal_position
     101:
     11    wsr     a0, excsave1
     12    movi    a0, 1f
     13    ret.n
     14
     15.section .vector.\name\().text, "ax"
     16    .literal_position
     171:
     18    rsr     a0, excsave1
     19    wsr     a2, excsave1
     20    movi    a2, handler_\name
     21    l32i    a2, a2, 0
     22    beqz    a2, 1f
     23    jx      a2
     241:
     25    movi    a3, 1b
     26    movi    a2, 1
     27    simcall
     28
     29.align 4
     30.global handler_\name
     31handler_\name\(): .word 0
     32
     33.endm
     34
     35#if XCHAL_HAVE_WINDOWED
     36vector window_overflow_4
     37vector window_overflow_8
     38vector window_overflow_12
     39vector window_underflow_4
     40vector window_underflow_8
     41vector window_underflow_12
     42#endif
     43
     44#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 2
     45vector level2
     46#endif
     47#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 3
     48vector level3
     49#endif
     50#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 4
     51vector level4
     52#endif
     53#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 5
     54vector level5
     55#endif
     56#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 6
     57vector level6
     58#endif
     59#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 7
     60vector level7
     61#endif
     62
     63vector kernel
     64vector user
     65vector double