Merge branch 'master' into isa/arm64
[lunaix-os.git] / lunaix-os / arch / aarch64 / includes / asm / aa64_sysinst.h
1 #ifndef __LUNAIX_AA64_SYSINST_H
2 #define __LUNAIX_AA64_SYSINST_H
3
4 #include "aa64_asm.h"
5
6 #define tlbi_alle1      __sr_encode(1, 4, 8, 7, 4)
7 #define tlbi_aside1     __sr_encode(1, 0, 8, 7, 2)
8 #define tlbi_rvaae1     __sr_encode(1, 0, 8, 6, 3)
9 #define tlbi_rvae1      __sr_encode(1, 0, 8, 6, 1)
10 #define tlbi_vaae1      __sr_encode(1, 0, 8, 7, 3)
11 #define tlbi_vae1       __sr_encode(1, 0, 8, 7, 1)
12
13 #define sys_a0(op)    \
14     ({  asm ("sys " stringify(op)); })
15
16 #define sys_a1(op, xt)    \
17     ({  asm ("sys " stringify(op) ", %0" :: "r"(xt)); })
18
19 #define sysl(op)    \
20     ({  unsigned long _x;                               \
21         asm ("sysl %0, " stringify(op):"=r"(_x));       \
22         _x;                                             \
23     })
24
25 #endif /* __LUNAIX_AA64_SYSINST_H */