drm/panel: panel-himax-hx83102: support for csot-pna957qt1-1 MIPI-DSI panel
[drm/drm-misc.git] / arch / arm64 / include / asm / compiler.h
blob9bbd7b7097ff2275907de54f5b63ba0e72fd2e1c
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_COMPILER_H
3 #define __ASM_COMPILER_H
5 #ifdef ARM64_ASM_ARCH
6 #define ARM64_ASM_PREAMBLE ".arch " ARM64_ASM_ARCH "\n"
7 #else
8 #define ARM64_ASM_PREAMBLE
9 #endif
11 #define xpaclri(ptr) \
12 ({ \
13 register unsigned long __xpaclri_ptr asm("x30") = (ptr); \
15 asm( \
16 ARM64_ASM_PREAMBLE \
17 " hint #7\n" \
18 : "+r" (__xpaclri_ptr)); \
20 __xpaclri_ptr; \
23 #ifdef CONFIG_ARM64_PTR_AUTH_KERNEL
24 #define ptrauth_strip_kernel_insn_pac(ptr) xpaclri(ptr)
25 #else
26 #define ptrauth_strip_kernel_insn_pac(ptr) (ptr)
27 #endif
29 #ifdef CONFIG_ARM64_PTR_AUTH
30 #define ptrauth_strip_user_insn_pac(ptr) xpaclri(ptr)
31 #else
32 #define ptrauth_strip_user_insn_pac(ptr) (ptr)
33 #endif
35 #if !defined(CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC)
36 #define __builtin_return_address(val) \
37 (void *)(ptrauth_strip_kernel_insn_pac((unsigned long)__builtin_return_address(val)))
38 #endif
40 #endif /* __ASM_COMPILER_H */