1 #ifndef __ARM_ASM_DEFNS_H__
2 #define __ARM_ASM_DEFNS_H__
3 
4 #ifndef COMPILE_OFFSETS
5 /* NB. Auto-generated from arch/.../asm-offsets.c */
6 #include <asm/asm-offsets.h>
7 #endif
8 #include <xen/linkage.h>
9 #include <asm/processor.h>
10 
11 /* Macros for generic assembly code */
12 #if defined(CONFIG_ARM_32)
13 # define __OP32
14 # define ASM_REG(index) asm("r" # index)
15 #elif defined(CONFIG_ARM_64)
16 # define __OP32 "w"
17 /*
18  * Clang < 8.0 doesn't support register alllocation using the syntax rN.
19  * See https://reviews.llvm.org/rL328829.
20  */
21 # define ASM_REG(index) asm("x" # index)
22 #else
23 # error "unknown ARM variant"
24 #endif
25 
26 #define RODATA_SECT(section, label, msg)         \
27 .pushsection section, "aMS", %progbits, 1 ;     \
28 label:  .asciz msg;                             \
29 .popsection
30 
31 #endif /* __ARM_ASM_DEFNS_H__ */
32 /*
33  * Local variables:
34  * mode: C
35  * c-file-style: "BSD"
36  * c-basic-offset: 4
37  * indent-tabs-mode: nil
38  * End:
39  */
40