25#if defined ( __ICCARM__ )
26 #pragma system_include
27#elif defined (__clang__)
28 #pragma clang system_header
43#if (defined (__ARM_FEATURE_PAUTH) && (__ARM_FEATURE_PAUTH == 1))
50__STATIC_FORCEINLINE
void __get_PAC_KEY_P (uint32_t* pPacKey) {
52 "mrs r1, pac_key_p_0\n"
54 "mrs r1, pac_key_p_1\n"
56 "mrs r1, pac_key_p_2\n"
58 "mrs r1, pac_key_p_3\n"
60 : :
"r" (pPacKey) :
"memory",
"r1"
69__STATIC_FORCEINLINE
void __set_PAC_KEY_P (uint32_t* pPacKey) {
72 "msr pac_key_p_0, r1\n"
74 "msr pac_key_p_1, r1\n"
76 "msr pac_key_p_2, r1\n"
78 "msr pac_key_p_3, r1\n"
79 : :
"r" (pPacKey) :
"memory",
"r1"
88__STATIC_FORCEINLINE
void __get_PAC_KEY_U (uint32_t* pPacKey) {
90 "mrs r1, pac_key_u_0\n"
92 "mrs r1, pac_key_u_1\n"
94 "mrs r1, pac_key_u_2\n"
96 "mrs r1, pac_key_u_3\n"
98 : :
"r" (pPacKey) :
"memory",
"r1"
107__STATIC_FORCEINLINE
void __set_PAC_KEY_U (uint32_t* pPacKey) {
110 "msr pac_key_u_0, r1\n"
112 "msr pac_key_u_1, r1\n"
114 "msr pac_key_u_2, r1\n"
116 "msr pac_key_u_3, r1\n"
117 : :
"r" (pPacKey) :
"memory",
"r1"
121#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
128__STATIC_FORCEINLINE
void __TZ_get_PAC_KEY_P_NS (uint32_t* pPacKey) {
130 "mrs r1, pac_key_p_0_ns\n"
132 "mrs r1, pac_key_p_1_ns\n"
134 "mrs r1, pac_key_p_2_ns\n"
136 "mrs r1, pac_key_p_3_ns\n"
138 : :
"r" (pPacKey) :
"memory",
"r1"
147__STATIC_FORCEINLINE
void __TZ_set_PAC_KEY_P_NS (uint32_t* pPacKey) {
150 "msr pac_key_p_0_ns, r1\n"
152 "msr pac_key_p_1_ns, r1\n"
154 "msr pac_key_p_2_ns, r1\n"
156 "msr pac_key_p_3_ns, r1\n"
157 : :
"r" (pPacKey) :
"memory",
"r1"
166__STATIC_FORCEINLINE
void __TZ_get_PAC_KEY_U_NS (uint32_t* pPacKey) {
168 "mrs r1, pac_key_u_0_ns\n"
170 "mrs r1, pac_key_u_1_ns\n"
172 "mrs r1, pac_key_u_2_ns\n"
174 "mrs r1, pac_key_u_3_ns\n"
176 : :
"r" (pPacKey) :
"memory",
"r1"
185__STATIC_FORCEINLINE
void __TZ_set_PAC_KEY_U_NS (uint32_t* pPacKey) {
188 "msr pac_key_u_0_ns, r1\n"
190 "msr pac_key_u_1_ns, r1\n"
192 "msr pac_key_u_2_ns, r1\n"
194 "msr pac_key_u_3_ns, r1\n"
195 : :
"r" (pPacKey) :
"memory",
"r1"