Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * include/asm-arm/unified.h - Unified Assembler Syntax helper macros
0004  *
0005  * Copyright (C) 2008 ARM Limited
0006  */
0007 
0008 #ifndef __ASM_UNIFIED_H
0009 #define __ASM_UNIFIED_H
0010 
0011 #if defined(__ASSEMBLY__)
0012     .syntax unified
0013 #else
0014 __asm__(".syntax unified");
0015 #endif
0016 
0017 #ifdef CONFIG_CPU_V7M
0018 #define AR_CLASS(x...)
0019 #define M_CLASS(x...)   x
0020 #else
0021 #define AR_CLASS(x...)  x
0022 #define M_CLASS(x...)
0023 #endif
0024 
0025 #ifdef CONFIG_THUMB2_KERNEL
0026 
0027 /* The CPSR bit describing the instruction set (Thumb) */
0028 #define PSR_ISETSTATE   PSR_T_BIT
0029 
0030 #define ARM(x...)
0031 #define THUMB(x...) x
0032 #ifdef __ASSEMBLY__
0033 #define W(instr)    instr.w
0034 #else
0035 #define WASM(instr) #instr ".w"
0036 #endif
0037 
0038 #else   /* !CONFIG_THUMB2_KERNEL */
0039 
0040 /* The CPSR bit describing the instruction set (ARM) */
0041 #define PSR_ISETSTATE   0
0042 
0043 #define ARM(x...)   x
0044 #define THUMB(x...)
0045 #ifdef __ASSEMBLY__
0046 #define W(instr)    instr
0047 #else
0048 #define WASM(instr) #instr
0049 #endif
0050 
0051 #endif  /* CONFIG_THUMB2_KERNEL */
0052 
0053 #endif  /* !__ASM_UNIFIED_H */