1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * include/asm-arm/unified.h - Unified Assembler Syntax helper macros 4 * 5 * Copyright (C) 2008 ARM Limited 6 */ 7 8 #ifndef __ASM_UNIFIED_H 9 #define __ASM_UNIFIED_H 10 11 #if defined(__ASSEMBLY__) 12 .syntax unified 13 #else 14 __asm__(".syntax unified"); 15 #endif 16 17 #ifdef CONFIG_CPU_V7M 18 #define AR_CLASS(x...) 19 #define M_CLASS(x...) x 20 #else 21 #define AR_CLASS(x...) x 22 #define M_CLASS(x...) 23 #endif 24 25 #ifdef CONFIG_THUMB2_KERNEL 26 27 /* The CPSR bit describing the instruction set (Thumb) */ 28 #define PSR_ISETSTATE PSR_T_BIT 29 30 #define ARM(x...) 31 #define THUMB(x...) x 32 #ifdef __ASSEMBLY__ 33 #define W(instr) instr.w 34 #else 35 #define WASM(instr) #instr ".w" 36 #endif 37 38 #else /* !CONFIG_THUMB2_KERNEL */ 39 40 /* The CPSR bit describing the instruction set (ARM) */ 41 #define PSR_ISETSTATE 0 42 43 #define ARM(x...) x 44 #define THUMB(x...) 45 #ifdef __ASSEMBLY__ 46 #define W(instr) instr 47 #else 48 #define WASM(instr) #instr 49 #endif 50 51 #endif /* CONFIG_THUMB2_KERNEL */ 52 53 #endif /* !__ASM_UNIFIED_H */ 54