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